@stonez/legion-farm-ts
@stonez/legion-farm-ts
npm i @stonez/legion-farm-ts
@stonez/legion-farm-ts

@stonez/legion-farm-ts

Configurable staking for NFT Projects on Solana

by gemworks

0.0.7 (see all)License:MITTypeScript:Built-In
npm i @stonez/legion-farm-ts
Readme

Gem Farm 💎

by Gemworks

Gem Farm is a collection of on-chain Solana programs for NFT ("gem" 💎) staking.

It consists of:

  • Gem Bank 🏦 - responsible for storing NFTs, lets you configure which mints are/not allowed into the vaults
  • Gem Farm 🧑‍🌾 - responsible for issuing rewards, lets you configure fixed/variable rates, lock up periods, fees, rarities & more

Gem Bank is used under the hood by Gem Farm.

Official deployment 🚀

Both programs are now officially deployed across all 3 networks (mainnet, devnet, testnet):

bank: bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m
farm: farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE

You can interact with them using this front-end (or build your own).

Deploy your own version 🛠

  • git clone the repo
  • Make sure you have solana-cli installed, keypair configured, and at least 10 sol on devnet beforehand
  • Update path to your keypair in Anchor.toml that begins with wallet =
  • Run anchor build to build the programs
  • We need to update the program IDs:
    • Run solana-keygen pubkey ./target/deploy/gem_bank-keypair.json - insert the new Bank prog ID in the following locations:
      • ./Anchor.toml
      • ./programs/gem_bank/src/lib.rs
      • ./src/index.ts (replace GEM_BANK_PROG_ID)
    • And solana-keygen pubkey ./target/deploy/gem_farm-keypair.json - insert the new Farm prog ID in the following locations:
      • ./Anchor.toml
      • ./programs/gem_farm/src/lib.rs
      • ./src/index.ts (replace GEM_FARM_PROG_ID)
  • Run anchor build to build one more time
  • Run anchor deploy --provider.cluster devnet to deploy to devnet
  • Now copy the IDLs into the apps:
    • cp ./target/idl/gem_bank.json ./app/gem-bank/public
    • cp ./target/idl/gem_bank.json ./app/gem-farm/public
    • cp ./target/idl/gem_farm.json ./app/gem-farm/public
  • alternatively you can run the script I prepared ./scripts/cp_idl.sh
  • (!) IMPORTANT - run yarn inside the root of the repo
  • finally start the apps!
    • eg cd into app/gem-bank and run yarn && yarn serve
  • don't forget to open Chrome's console with CMD+SHIFT+I to get feedback from the app when you click buttons. It currently doesn't have a notifications system

Note that deploying your own version will cost you ~20 SOL.

Debug cryptic errors ⚠️

If you get a cryptic error back that looks something like this:

Transaction failed 0x1798

The steps to take are as follows:

  • translate the 0x number into decimal (eg using this) - eg 0x1798 becomes 6040
  • if the number is 6XXX, this is a custom error from the app. Go to errors.rs found here and find the error numbered 40 (the remainder of the decimal)
  • any other number besides 6XXX means an anchor error - go here to decipher it

Docs ✏️

Extensive documentation is available here.

The answer you're looking for is probably there. Pls don't DM with random questions.

License 🧾

MIT

Downloads/wk

7

GitHub Stars

300

LAST COMMIT

9mos ago

MAINTAINERS

1

CONTRIBUTORS

3

OPEN ISSUES

60

OPEN PRs

6
VersionTagPublished
0.0.7
latest
4mos ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate