19 releases (11 stable)

2.1.9 Aug 30, 2024
2.1.8 Aug 25, 2024
2.0.0 Jul 31, 2024

#19 in #mining

Download history 468/week @ 2024-07-17 1102/week @ 2024-07-24 17727/week @ 2024-07-31 8458/week @ 2024-08-07 2933/week @ 2024-08-14 3799/week @ 2024-08-21 2282/week @ 2024-08-28 1390/week @ 2024-09-04 884/week @ 2024-09-11 630/week @ 2024-09-18 568/week @ 2024-09-25 502/week @ 2024-10-02 508/week @ 2024-10-09 592/week @ 2024-10-16 1036/week @ 2024-10-23 2025/week @ 2024-10-30

4,221 downloads per month
Used in 15 crates

Apache-2.0

19KB
484 lines

ORE

ORE is a cryptocurrency everyone can mine.

API

  • Consts – Program constants.
  • Error – Custom program errors.
  • Event – Custom program events.
  • Instruction – Declared instructions and arguments.

Instructions

  • Claim – Distributes ORE from the treasury to a miner.
  • Close – Closes a proof account returns the rent to the owner.
  • Open – Opens a new proof account for a miner.
  • Mine – Verifies a hash and increments a miner's claimable balance.
  • 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 program and creates the global 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

Dependencies

~16–25MB
~429K SLoC