mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-14 07:26:51 +00:00
c26fde97ccce566dc8ea4b40bad2dec88cbd7694
ORE
ORE is a fair launch, proof of work, digital currency everyone can mine.
API
Consts– Program constants.Entrypoint– The program entrypoint.Error– Custom program errors.Event– Custom program events.Instruction– Declared instructions and arguments.
Instructions
Auth– Declares a proof pubkey for processing for mining.Claim– Distributes claimable rewards as tokens from the treasury to a miner.Close– Closes a proof account returns the rent to the owner.Open– Creates a new proof account for a prospective miner.Mine– Verifies a hash provided by a miner and issues claimable rewards.Stake– Stakes ORE with a miner to increase their multiplier.Reset– Resets the program for a new epoch.Update– Updates a proof account's miner authority.Upgrade– Migrates ORE v1 tokens to ORE v2, one-for-one.Initialize– Initializes the Ore program, creating the bus, mint, and treasury accounts.
State
Bus- An account (8 total) which tracks and limits the amount ORE mined each epoch.Config– A singleton account which manages program-wide variables.Proof- An account (1 per user) which tracks a miner's current hash and current stake.Treasury– A singleton account which has authority to mint ORE and holds onto user stake.
Tests
To run the test suite, use the Solana toolchain:
cargo test-sbf
For line coverage, use llvm-cov:
cargo llvm-cov
Description
Languages
Rust
99.5%
Shell
0.5%