diff --git a/lib/gem-farm/common/gem-bank/index.ts b/lib/gem-farm/common/gem-bank/index.ts index 3372558..13a7510 100644 --- a/lib/gem-farm/common/gem-bank/index.ts +++ b/lib/gem-farm/common/gem-bank/index.ts @@ -8,6 +8,7 @@ import { import { Connection, Keypair, PublicKey } from "@solana/web3.js" import { SignerWalletAdapter } from "@solana/wallet-adapter-base" import { NodeWallet, programs } from "@metaplex/js" +import { IDL } from "@gemworks/gem-farm-ts/dist/types/gem_bank" //when we only want to view vaults, no need to connect a real wallet. export function createFakeWallet() { @@ -28,8 +29,7 @@ export async function initGemBank( wallet?: SignerWalletAdapter ) { const walletToUse = wallet ?? createFakeWallet() - const idl = await (await fetch("gem_bank.json")).json() - return new GemBank(conn, walletToUse as any, idl) + return new GemBank(conn, walletToUse as any, IDL) } export class GemBank extends GemBankClient { diff --git a/lib/gem-farm/common/gem-farm/index.ts b/lib/gem-farm/common/gem-farm/index.ts index f4ddadb..e59fe2c 100644 --- a/lib/gem-farm/common/gem-farm/index.ts +++ b/lib/gem-farm/common/gem-farm/index.ts @@ -13,15 +13,15 @@ import { GEM_BANK_PROG_ID } from "@gemworks/gem-farm-ts" import { programs } from "@metaplex/js" +import { IDL as GemBankIDL } from "@gemworks/gem-farm-ts/dist/types/gem_bank" +import { IDL as GemFarmIDL} from "@gemworks/gem-farm-ts/dist/types/gem_farm" export async function initGemFarm( conn: Connection, wallet?: SignerWalletAdapter ) { const walletToUse = wallet ?? createFakeWallet() - const farmIdl = await (await fetch("gem_farm.json")).json() - const bankIdl = await (await fetch("gem_bank.json")).json() - return new GemFarm(conn, walletToUse as any, farmIdl, bankIdl) + return new GemFarm(conn, walletToUse as any, GemFarmIDL, GemBankIDL) } export class GemFarm extends GemFarmClient { diff --git a/package.json b/package.json index 5273343..1b3d312 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@emotion/react": "^11.8.2", - "@gemworks/gem-farm-ts": "^0.22.11", + "@gemworks/gem-farm-ts": "^0.24.1", "@mdx-js/react": "1.6.22", "@metaplex/js": "^4.12.0", "@solana/wallet-adapter-react": "^0.15.4", diff --git a/public/gem_bank.json b/public/gem_bank.json deleted file mode 100644 index 65e7fb7..0000000 --- a/public/gem_bank.json +++ /dev/null @@ -1,651 +0,0 @@ -{ - "version": "0.1.0", - "name": "gem_bank", - "instructions": [ - { - "name": "initBank", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": true - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "setBankFlags", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "flags", - "type": "u32" - } - ] - }, - { - "name": "initVault", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "creator", - "isMut": false, - "isSigner": true - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "owner", - "type": "publicKey" - }, - { - "name": "name", - "type": "string" - } - ] - }, - { - "name": "setVaultLock", - "accounts": [ - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - } - ], - "args": [ - { - "name": "vaultLock", - "type": "bool" - } - ] - }, - { - "name": "updateVaultOwner", - "accounts": [ - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "owner", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "newOwner", - "type": "publicKey" - } - ] - }, - { - "name": "depositGem", - "accounts": [ - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "owner", - "isMut": true, - "isSigner": true - }, - { - "name": "authority", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBox", - "isMut": true, - "isSigner": false - }, - { - "name": "gemDepositReceipt", - "isMut": true, - "isSigner": false - }, - { - "name": "gemSource", - "isMut": true, - "isSigner": false - }, - { - "name": "gemMint", - "isMut": false, - "isSigner": false - }, - { - "name": "gemRarity", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpRarity", - "type": "u8" - }, - { - "name": "amount", - "type": "u64" - } - ] - }, - { - "name": "withdrawGem", - "accounts": [ - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "owner", - "isMut": true, - "isSigner": true - }, - { - "name": "authority", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBox", - "isMut": true, - "isSigner": false - }, - { - "name": "gemDepositReceipt", - "isMut": true, - "isSigner": false - }, - { - "name": "gemDestination", - "isMut": true, - "isSigner": false - }, - { - "name": "gemMint", - "isMut": false, - "isSigner": false - }, - { - "name": "gemRarity", - "isMut": false, - "isSigner": false - }, - { - "name": "receiver", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpGemBox", - "type": "u8" - }, - { - "name": "bumpGdr", - "type": "u8" - }, - { - "name": "bumpRarity", - "type": "u8" - }, - { - "name": "amount", - "type": "u64" - } - ] - }, - { - "name": "addToWhitelist", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - }, - { - "name": "addressToWhitelist", - "isMut": false, - "isSigner": false - }, - { - "name": "whitelistProof", - "isMut": true, - "isSigner": false - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "whitelistType", - "type": "u8" - } - ] - }, - { - "name": "removeFromWhitelist", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - }, - { - "name": "fundsReceiver", - "isMut": true, - "isSigner": false - }, - { - "name": "addressToRemove", - "isMut": false, - "isSigner": false - }, - { - "name": "whitelistProof", - "isMut": true, - "isSigner": false - } - ], - "args": [ - { - "name": "bump", - "type": "u8" - } - ] - }, - { - "name": "updateBankManager", - "accounts": [ - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "newManager", - "type": "publicKey" - } - ] - }, - { - "name": "recordRarityPoints", - "accounts": [ - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "bankManager", - "isMut": false, - "isSigner": true - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "rarityConfigs", - "type": { - "vec": { - "defined": "RarityConfig" - } - } - } - ] - } - ], - "accounts": [ - { - "name": "Bank", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u16" - }, - { - "name": "bankManager", - "type": "publicKey" - }, - { - "name": "flags", - "type": "u32" - }, - { - "name": "whitelistedCreators", - "type": "u32" - }, - { - "name": "whitelistedMints", - "type": "u32" - }, - { - "name": "vaultCount", - "type": "u64" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 64 - ] - } - } - ] - } - }, - { - "name": "GemDepositReceipt", - "type": { - "kind": "struct", - "fields": [ - { - "name": "vault", - "type": "publicKey" - }, - { - "name": "gemBoxAddress", - "type": "publicKey" - }, - { - "name": "gemMint", - "type": "publicKey" - }, - { - "name": "gemCount", - "type": "u64" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "Rarity", - "type": { - "kind": "struct", - "fields": [ - { - "name": "points", - "type": "u16" - } - ] - } - }, - { - "name": "Vault", - "type": { - "kind": "struct", - "fields": [ - { - "name": "bank", - "type": "publicKey" - }, - { - "name": "owner", - "type": "publicKey" - }, - { - "name": "creator", - "type": "publicKey" - }, - { - "name": "authority", - "type": "publicKey" - }, - { - "name": "authoritySeed", - "type": "publicKey" - }, - { - "name": "authorityBumpSeed", - "type": { - "array": [ - "u8", - 1 - ] - } - }, - { - "name": "locked", - "type": "bool" - }, - { - "name": "name", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "gemBoxCount", - "type": "u64" - }, - { - "name": "gemCount", - "type": "u64" - }, - { - "name": "rarityPoints", - "type": "u64" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 64 - ] - } - } - ] - } - }, - { - "name": "WhitelistProof", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whitelistType", - "type": "u8" - }, - { - "name": "whitelistedAddress", - "type": "publicKey" - }, - { - "name": "bank", - "type": "publicKey" - } - ] - } - } - ], - "types": [ - { - "name": "RarityConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "rarityPoints", - "type": "u16" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/public/gem_farm.json b/public/gem_farm.json deleted file mode 100644 index cdcc7e4..0000000 --- a/public/gem_farm.json +++ /dev/null @@ -1,1685 +0,0 @@ -{ - "version": "0.1.0", - "name": "gem_farm", - "instructions": [ - { - "name": "initFarm", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": true - }, - { - "name": "farmManager", - "isMut": false, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": true, - "isSigner": false - }, - { - "name": "farmTreasury", - "isMut": false, - "isSigner": false - }, - { - "name": "rewardAPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardAMint", - "isMut": false, - "isSigner": false - }, - { - "name": "rewardBPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardBMint", - "isMut": false, - "isSigner": false - }, - { - "name": "bank", - "isMut": true, - "isSigner": true - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "feeAcc", - "isMut": true, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpTreasury", - "type": "u8" - }, - { - "name": "rewardTypeA", - "type": { - "defined": "RewardType" - } - }, - { - "name": "rewardTypeB", - "type": { - "defined": "RewardType" - } - }, - { - "name": "farmConfig", - "type": { - "defined": "FarmConfig" - } - }, - { - "name": "maxCounts", - "type": { - "option": { - "defined": "MaxCounts" - } - } - } - ] - }, - { - "name": "updateFarm", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "config", - "type": { - "option": { - "defined": "FarmConfig" - } - } - }, - { - "name": "manager", - "type": { - "option": "publicKey" - } - }, - { - "name": "maxCounts", - "type": { - "option": { - "defined": "MaxCounts" - } - } - } - ] - }, - { - "name": "payoutFromTreasury", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": false, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "farmTreasury", - "isMut": true, - "isSigner": false - }, - { - "name": "destination", - "isMut": true, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpTreasury", - "type": "u8" - }, - { - "name": "lamports", - "type": "u64" - } - ] - }, - { - "name": "addToBankWhitelist", - "accounts": [ - { - "name": "farm", - "isMut": false, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "addressToWhitelist", - "isMut": false, - "isSigner": false - }, - { - "name": "whitelistProof", - "isMut": true, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "whitelistType", - "type": "u8" - } - ] - }, - { - "name": "removeFromBankWhitelist", - "accounts": [ - { - "name": "farm", - "isMut": false, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": true, - "isSigner": false - }, - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "addressToRemove", - "isMut": false, - "isSigner": false - }, - { - "name": "whitelistProof", - "isMut": true, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpWl", - "type": "u8" - } - ] - }, - { - "name": "initFarmer", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": false, - "isSigner": true - }, - { - "name": "bank", - "isMut": true, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - }, - { - "name": "payer", - "isMut": true, - "isSigner": true - }, - { - "name": "feeAcc", - "isMut": true, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "stake", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": true, - "isSigner": true - }, - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpFarmer", - "type": "u8" - } - ] - }, - { - "name": "unstake", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "farmTreasury", - "isMut": true, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": true, - "isSigner": true - }, - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpTreasury", - "type": "u8" - }, - { - "name": "bumpFarmer", - "type": "u8" - }, - { - "name": "skipRewards", - "type": "bool" - } - ] - }, - { - "name": "claim", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": true, - "isSigner": true - }, - { - "name": "rewardAPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardAMint", - "isMut": false, - "isSigner": false - }, - { - "name": "rewardADestination", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardBPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardBMint", - "isMut": false, - "isSigner": false - }, - { - "name": "rewardBDestination", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpFarmer", - "type": "u8" - }, - { - "name": "bumpPotA", - "type": "u8" - }, - { - "name": "bumpPotB", - "type": "u8" - } - ] - }, - { - "name": "flashDeposit", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": true, - "isSigner": true - }, - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "vault", - "isMut": true, - "isSigner": false - }, - { - "name": "vaultAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBox", - "isMut": true, - "isSigner": false - }, - { - "name": "gemDepositReceipt", - "isMut": true, - "isSigner": false - }, - { - "name": "gemSource", - "isMut": true, - "isSigner": false - }, - { - "name": "gemMint", - "isMut": false, - "isSigner": false - }, - { - "name": "gemRarity", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpFarmer", - "type": "u8" - }, - { - "name": "bumpVaultAuth", - "type": "u8" - }, - { - "name": "bumpRarity", - "type": "u8" - }, - { - "name": "amount", - "type": "u64" - } - ] - }, - { - "name": "refreshFarmer", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bump", - "type": "u8" - } - ] - }, - { - "name": "refreshFarmerSigned", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmer", - "isMut": true, - "isSigner": false - }, - { - "name": "identity", - "isMut": false, - "isSigner": true - } - ], - "args": [ - { - "name": "bump", - "type": "u8" - }, - { - "name": "reenroll", - "type": "bool" - } - ] - }, - { - "name": "authorizeFunder", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "funderToAuthorize", - "isMut": false, - "isSigner": false - }, - { - "name": "authorizationProof", - "isMut": true, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "deauthorizeFunder", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "funderToDeauthorize", - "isMut": false, - "isSigner": false - }, - { - "name": "authorizationProof", - "isMut": true, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bump", - "type": "u8" - } - ] - }, - { - "name": "fundReward", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "authorizationProof", - "isMut": false, - "isSigner": false - }, - { - "name": "authorizedFunder", - "isMut": true, - "isSigner": true - }, - { - "name": "rewardPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardSource", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardMint", - "isMut": false, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpProof", - "type": "u8" - }, - { - "name": "bumpPot", - "type": "u8" - }, - { - "name": "variableRateConfig", - "type": { - "option": { - "defined": "VariableRateConfig" - } - } - }, - { - "name": "fixedRateConfig", - "type": { - "option": { - "defined": "FixedRateConfig" - } - } - } - ] - }, - { - "name": "cancelReward", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "rewardPot", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardDestination", - "isMut": true, - "isSigner": false - }, - { - "name": "rewardMint", - "isMut": false, - "isSigner": false - }, - { - "name": "receiver", - "isMut": true, - "isSigner": false - }, - { - "name": "tokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - }, - { - "name": "rent", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "bumpPot", - "type": "u8" - } - ] - }, - { - "name": "lockReward", - "accounts": [ - { - "name": "farm", - "isMut": true, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "rewardMint", - "isMut": false, - "isSigner": false - } - ], - "args": [] - }, - { - "name": "addRaritiesToBank", - "accounts": [ - { - "name": "farm", - "isMut": false, - "isSigner": false - }, - { - "name": "farmManager", - "isMut": true, - "isSigner": true - }, - { - "name": "farmAuthority", - "isMut": false, - "isSigner": false - }, - { - "name": "bank", - "isMut": false, - "isSigner": false - }, - { - "name": "gemBank", - "isMut": false, - "isSigner": false - }, - { - "name": "systemProgram", - "isMut": false, - "isSigner": false - } - ], - "args": [ - { - "name": "bumpAuth", - "type": "u8" - }, - { - "name": "rarityConfigs", - "type": { - "vec": { - "defined": "RarityConfig" - } - } - } - ] - } - ], - "accounts": [ - { - "name": "AuthorizationProof", - "type": { - "kind": "struct", - "fields": [ - { - "name": "authorizedFunder", - "type": "publicKey" - }, - { - "name": "farm", - "type": "publicKey" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "Farm", - "type": { - "kind": "struct", - "fields": [ - { - "name": "version", - "type": "u16" - }, - { - "name": "farmManager", - "type": "publicKey" - }, - { - "name": "farmTreasury", - "type": "publicKey" - }, - { - "name": "farmAuthority", - "type": "publicKey" - }, - { - "name": "farmAuthoritySeed", - "type": "publicKey" - }, - { - "name": "farmAuthorityBumpSeed", - "type": { - "array": [ - "u8", - 1 - ] - } - }, - { - "name": "bank", - "type": "publicKey" - }, - { - "name": "config", - "type": { - "defined": "FarmConfig" - } - }, - { - "name": "farmerCount", - "type": "u64" - }, - { - "name": "stakedFarmerCount", - "type": "u64" - }, - { - "name": "gemsStaked", - "type": "u64" - }, - { - "name": "rarityPointsStaked", - "type": "u64" - }, - { - "name": "authorizedFunderCount", - "type": "u64" - }, - { - "name": "rewardA", - "type": { - "defined": "FarmReward" - } - }, - { - "name": "rewardB", - "type": { - "defined": "FarmReward" - } - }, - { - "name": "maxCounts", - "type": { - "defined": "MaxCounts" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - }, - { - "name": "reserved2", - "type": { - "array": [ - "u8", - 16 - ] - } - }, - { - "name": "reserved3", - "type": { - "array": [ - "u8", - 4 - ] - } - } - ] - } - }, - { - "name": "Farmer", - "type": { - "kind": "struct", - "fields": [ - { - "name": "farm", - "type": "publicKey" - }, - { - "name": "identity", - "type": "publicKey" - }, - { - "name": "vault", - "type": "publicKey" - }, - { - "name": "state", - "type": { - "defined": "FarmerState" - } - }, - { - "name": "gemsStaked", - "type": "u64" - }, - { - "name": "rarityPointsStaked", - "type": "u64" - }, - { - "name": "minStakingEndsTs", - "type": "u64" - }, - { - "name": "cooldownEndsTs", - "type": "u64" - }, - { - "name": "rewardA", - "type": { - "defined": "FarmerReward" - } - }, - { - "name": "rewardB", - "type": { - "defined": "FarmerReward" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - } - ], - "types": [ - { - "name": "FarmConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "minStakingPeriodSec", - "type": "u64" - }, - { - "name": "cooldownPeriodSec", - "type": "u64" - }, - { - "name": "unstakingFeeLamp", - "type": "u64" - } - ] - } - }, - { - "name": "MaxCounts", - "type": { - "kind": "struct", - "fields": [ - { - "name": "maxFarmers", - "type": "u32" - }, - { - "name": "maxGems", - "type": "u32" - }, - { - "name": "maxRarityPoints", - "type": "u32" - } - ] - } - }, - { - "name": "FundsTracker", - "type": { - "kind": "struct", - "fields": [ - { - "name": "totalFunded", - "type": "u64" - }, - { - "name": "totalRefunded", - "type": "u64" - }, - { - "name": "totalAccruedToStakers", - "type": "u64" - } - ] - } - }, - { - "name": "TimeTracker", - "type": { - "kind": "struct", - "fields": [ - { - "name": "durationSec", - "type": "u64" - }, - { - "name": "rewardEndTs", - "type": "u64" - }, - { - "name": "lockEndTs", - "type": "u64" - } - ] - } - }, - { - "name": "FarmReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "rewardMint", - "type": "publicKey" - }, - { - "name": "rewardPot", - "type": "publicKey" - }, - { - "name": "rewardType", - "type": { - "defined": "RewardType" - } - }, - { - "name": "fixedRate", - "type": { - "defined": "FixedRateReward" - } - }, - { - "name": "variableRate", - "type": { - "defined": "VariableRateReward" - } - }, - { - "name": "funds", - "type": { - "defined": "FundsTracker" - } - }, - { - "name": "times", - "type": { - "defined": "TimeTracker" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "FarmerReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "paidOutReward", - "type": "u64" - }, - { - "name": "accruedReward", - "type": "u64" - }, - { - "name": "variableRate", - "type": { - "defined": "FarmerVariableRateReward" - } - }, - { - "name": "fixedRate", - "type": { - "defined": "FarmerFixedRateReward" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "FarmerVariableRateReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "lastRecordedAccruedRewardPerRarityPoint", - "type": { - "defined": "Number128" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 16 - ] - } - } - ] - } - }, - { - "name": "FarmerFixedRateReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "beginStakingTs", - "type": "u64" - }, - { - "name": "beginScheduleTs", - "type": "u64" - }, - { - "name": "lastUpdatedTs", - "type": "u64" - }, - { - "name": "promisedSchedule", - "type": { - "defined": "FixedRateSchedule" - } - }, - { - "name": "promisedDuration", - "type": "u64" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 16 - ] - } - } - ] - } - }, - { - "name": "TierConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "rewardRate", - "type": "u64" - }, - { - "name": "requiredTenure", - "type": "u64" - } - ] - } - }, - { - "name": "FixedRateSchedule", - "type": { - "kind": "struct", - "fields": [ - { - "name": "baseRate", - "type": "u64" - }, - { - "name": "tier1", - "type": { - "option": { - "defined": "TierConfig" - } - } - }, - { - "name": "tier2", - "type": { - "option": { - "defined": "TierConfig" - } - } - }, - { - "name": "tier3", - "type": { - "option": { - "defined": "TierConfig" - } - } - }, - { - "name": "denominator", - "type": "u64" - } - ] - } - }, - { - "name": "FixedRateConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "schedule", - "type": { - "defined": "FixedRateSchedule" - } - }, - { - "name": "amount", - "type": "u64" - }, - { - "name": "durationSec", - "type": "u64" - } - ] - } - }, - { - "name": "FixedRateReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "schedule", - "type": { - "defined": "FixedRateSchedule" - } - }, - { - "name": "reservedAmount", - "type": "u64" - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "RarityConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "mint", - "type": "publicKey" - }, - { - "name": "rarityPoints", - "type": "u16" - } - ] - } - }, - { - "name": "Number128", - "type": { - "kind": "struct", - "fields": [ - { - "name": "n", - "type": "u128" - } - ] - } - }, - { - "name": "VariableRateConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "durationSec", - "type": "u64" - } - ] - } - }, - { - "name": "VariableRateReward", - "type": { - "kind": "struct", - "fields": [ - { - "name": "rewardRate", - "type": { - "defined": "Number128" - } - }, - { - "name": "rewardLastUpdatedTs", - "type": "u64" - }, - { - "name": "accruedRewardPerRarityPoint", - "type": { - "defined": "Number128" - } - }, - { - "name": "reserved", - "type": { - "array": [ - "u8", - 32 - ] - } - } - ] - } - }, - { - "name": "RewardType", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Variable" - }, - { - "name": "Fixed" - } - ] - } - }, - { - "name": "FarmerState", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Unstaked" - }, - { - "name": "Staked" - }, - { - "name": "PendingCooldown" - } - ] - } - }, - { - "name": "FixedRateRewardTier", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Base" - }, - { - "name": "Tier1" - }, - { - "name": "Tier2" - }, - { - "name": "Tier3" - } - ] - } - } - ] -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 6f1920b..81d46de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -207,14 +207,14 @@ "@ethersproject/logger" "^5.6.0" hash.js "1.1.7" -"@gemworks/gem-farm-ts@^0.22.11": - version "0.22.11" - resolved "https://registry.yarnpkg.com/@gemworks/gem-farm-ts/-/gem-farm-ts-0.22.11.tgz#216758e125679b19f4a3558b9933c6db923f0ec9" - integrity sha512-ux+Qg9wp3sb9caz7ioWzbPlDzUNRg4rQmSqkjuaG9h4eUvq8N73yScLONCeA23wKzhzW1k92+Oeylh8v5KWgIA== +"@gemworks/gem-farm-ts@^0.24.1": + version "0.24.1" + resolved "https://registry.yarnpkg.com/@gemworks/gem-farm-ts/-/gem-farm-ts-0.24.1.tgz#2497f80affa54121ffb04da766791ecd1ea7cf0b" + integrity sha512-/CnX1CcE4m/FDD/slixCs9RXox3ZUpnvs1ccHPlSbSmRZpbOMltcUQy6xqi7i0zITzSI90i0iXfCuRnV2CwGiw== dependencies: "@metaplex-foundation/mpl-token-metadata" "^0.0.2" "@metaplex/js" "^4.9.0" - "@project-serum/anchor" "0.22.0" + "@project-serum/anchor" "0.24.2" "@solana/spl-token" "^0.1.8" "@solana/wallet-adapter-base" "^0.8.1" "@solana/web3.js" "^1.31.0" @@ -477,13 +477,13 @@ resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" integrity sha512-HaW78NszGzRZd9SeoI3JD11JqY+lubnaOx7Pewj5pfjqWXOEATpeKIFb9Z4t2WBUK2iryiXX3lzWwmYWgUL0Ug== -"@project-serum/anchor@0.22.0": - version "0.22.0" - resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.22.0.tgz#79d182851346fb46d471577c63eabdf6f199c03e" - integrity sha512-EJOE790pAQjm07loh7/JYzfcgfYv3SChBb2b9lhVdjjiimSEQrf3ESy+CGMAqcFAsyr699Ewj5k7RizY1y31cg== +"@project-serum/anchor@0.24.2": + version "0.24.2" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.24.2.tgz#a3c52a99605c80735f446ca9b3a4885034731004" + integrity sha512-0/718g8/DnEuwAidUwh5wLYphUYXhUbiClkuRNhvNoa+1Y8a4g2tJyxoae+emV+PG/Gikd/QUBNMkIcimiIRTA== dependencies: "@project-serum/borsh" "^0.2.5" - "@solana/web3.js" "^1.17.0" + "@solana/web3.js" "^1.36.0" base64-js "^1.5.1" bn.js "^5.1.2" bs58 "^4.0.1" @@ -492,7 +492,6 @@ cross-fetch "^3.1.5" crypto-hash "^1.3.0" eventemitter3 "^4.0.7" - find "^0.3.0" js-sha256 "^0.9.0" pako "^2.0.3" snake-case "^3.0.4" @@ -759,26 +758,6 @@ "@solana/wallet-adapter-tokenpocket" "^0.4.2" "@solana/wallet-adapter-torus" "^0.11.10" -"@solana/web3.js@^1.17.0": - version "1.37.2" - resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.37.2.tgz#41f2daf402743d2cdda85c65a7a4e71d86b795e9" - integrity sha512-rgPidynwPTu8iLmS++aQbDGiPPtwjRmu+uQxF9jTNT7v3ifKIlS4HccMdjj4WDcYx8h2mUtQX5xkdk6liSbdvg== - dependencies: - "@babel/runtime" "^7.12.5" - "@ethersproject/sha2" "^5.5.0" - "@solana/buffer-layout" "^4.0.0" - bn.js "^5.0.0" - borsh "^0.7.0" - bs58 "^4.0.1" - buffer "6.0.1" - cross-fetch "^3.1.4" - jayson "^3.4.4" - js-sha3 "^0.8.0" - rpc-websockets "^7.4.2" - secp256k1 "^4.0.2" - superstruct "^0.14.2" - tweetnacl "^1.0.0" - "@solana/web3.js@^1.20.0", "@solana/web3.js@^1.21.0", "@solana/web3.js@^1.30.2", "@solana/web3.js@^1.31.0", "@solana/web3.js@^1.34.0", "@solana/web3.js@^1.36.0": version "1.37.0" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.37.0.tgz#167b5b5d4aedc151237d9230b6142da068b0af34" @@ -2221,13 +2200,6 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" -find@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/find/-/find-0.3.0.tgz#4082e8fc8d8320f1a382b5e4f521b9bc50775cb8" - integrity sha512-iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw== - dependencies: - traverse-chain "~0.1.0" - flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3597,11 +3569,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= -traverse-chain@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/traverse-chain/-/traverse-chain-0.1.0.tgz#61dbc2d53b69ff6091a12a168fd7d433107e40f1" - integrity sha1-YdvC1Ttp/2CRoSoWj9fUMxB+QPE= - tsconfig-paths@^3.11.0, tsconfig-paths@^3.9.0: version "3.14.1" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a"