From 1ca9f6d8c17fe3d652b33cd8c8bc45b92569b6c3 Mon Sep 17 00:00:00 2001 From: Giannis Chatziveroglou Date: Wed, 7 Dec 2022 15:57:14 -0800 Subject: [PATCH] change program id + bump version --- .github/workflows/test.yml | 2 +- Anchor.toml | 8 ++++---- Cargo.lock | 14 +++++++------- Makefile | 10 +++++----- README.md | 2 +- package.json | 2 +- programs/cardinal-rewards-center/Cargo.toml | 6 +++--- programs/cardinal-rewards-center/src/errors.rs | 4 ++-- .../src/payment/state.rs | 6 ++++-- sdk/constants.ts | 18 +++++++----------- sdk/idl/cardinal_rewards_center.ts | 12 ++++++------ sdk/idl/cardinal_rewards_center_idl.json | 6 +++--- .../claim-rewards-sol.test.ts | 17 +++++++++++++---- 13 files changed, 57 insertions(+), 50 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b7125488..87ab6019 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -116,7 +116,7 @@ jobs: run: cargo build-bpf - name: Run local validator - run: solana-test-validator --url https://api.mainnet-beta.solana.com --clone metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s --clone PwDiXFxQsGra4sFFTT8r1QWRMd4vfumiWC1jfWNfdYT --clone 3dxFgrZt9DLn1J5ZB1bDwjeDvbESzNxA11KggRcywKbm --clone AmJdpbtEzFBVWhznaEQM3V4fNZBa8FWj36Lu2BtnaDYt --clone CUeHFsFqfbLfBGSbuNbaAi4wK6V835PoRg1CqCLo8tpM --bpf-program rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U ./target/deploy/cardinal_rewards_center.so --reset --quiet & echo $$! > validator.PID + run: solana-test-validator --url https://api.devnet.solana.com --clone metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s --clone PwDiXFxQsGra4sFFTT8r1QWRMd4vfumiWC1jfWNfdYT --clone HqiCY5NqfHfyhyjheQ4ENo5J2XSQBpeqhNoeESkDWBpU --clone 382KXQfzC26jbFmLZBmKoZ6eRz53iwGfxXwoGyyyH8po --clone SdFEeJxn7XxcnYEMNpnoMMSsTfmA1bHfiRdu6qra7zL --bpf-program crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd ./target/deploy/cardinal_rewards_center.so --reset --quiet & echo $$! > validator.PID - run: sleep 6 - run: solana airdrop 1000 $(solana-keygen pubkey ./tests/test-keypairs/test-key.json) --url http://localhost:8899 - run: yarn test diff --git a/Anchor.toml b/Anchor.toml index 5f9e3986..b72e8f0b 100644 --- a/Anchor.toml +++ b/Anchor.toml @@ -3,13 +3,13 @@ cluster = "localnet" wallet = "./tests/test-key.json" [programs.mainnet] -cardinal_rewards_center = "rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U" +cardinal_rewards_center = "crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd" [programs.devnet] -cardinal_rewards_center = "rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U" +cardinal_rewards_center = "crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd" [programs.testnet] -cardinal_rewards_center = "rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U" +cardinal_rewards_center = "crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd" [programs.localnet] -cardinal_rewards_center = "rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U" +cardinal_rewards_center = "crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd" diff --git a/Cargo.lock b/Cargo.lock index ba6a3e65..8c90875a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -403,7 +403,7 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "cardinal-rewards-center" -version = "2.0.0" +version = "2.1.0" dependencies = [ "anchor-lang", "anchor-spl", @@ -1305,18 +1305,18 @@ dependencies = [ [[package]] name = "shank" -version = "0.0.4" +version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a6c6cad96abd1fd950d1df186ec02e786566161f03adadbb7cf157ae9a82d8" +checksum = "b63e565b5e95ad88ab38f312e89444c749360641c509ef2de0093b49f55974a5" dependencies = [ "shank_macro", ] [[package]] name = "shank_macro" -version = "0.0.4" +version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b3bf722b43cea02627c7fd89925f5861f7aa27604c1852720f8eee1a73523d" +checksum = "63927d22a1e8b74bda98cc6e151fcdf178b7abb0dc6c4f81e0bbf5ffe2fc4ec8" dependencies = [ "proc-macro2", "quote", @@ -1326,9 +1326,9 @@ dependencies = [ [[package]] name = "shank_macro_impl" -version = "0.0.4" +version = "0.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90a37f762b0529d64a9e3401ac3829e132f58fa9bc50b1fd6ad7b5a1a414a228" +checksum = "40ce03403df682f80f4dc1efafa87a4d0cb89b03726d0565e6364bdca5b9a441" dependencies = [ "anyhow", "proc-macro2", diff --git a/Makefile b/Makefile index 17060f24..658b0c87 100644 --- a/Makefile +++ b/Makefile @@ -12,12 +12,12 @@ build: yarn idl:generate && yarn lint && yarn build start: - solana-test-validator --url https://api.mainnet-beta.solana.com \ + solana-test-validator --url https://api.devnet.solana.com \ --clone metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s --clone PwDiXFxQsGra4sFFTT8r1QWRMd4vfumiWC1jfWNfdYT \ - --clone 3dxFgrZt9DLn1J5ZB1bDwjeDvbESzNxA11KggRcywKbm \ - --clone AmJdpbtEzFBVWhznaEQM3V4fNZBa8FWj36Lu2BtnaDYt \ - --clone CUeHFsFqfbLfBGSbuNbaAi4wK6V835PoRg1CqCLo8tpM \ - --bpf-program rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U ./target/deploy/cardinal_rewards_center.so \ + --clone HqiCY5NqfHfyhyjheQ4ENo5J2XSQBpeqhNoeESkDWBpU \ + --clone 382KXQfzC26jbFmLZBmKoZ6eRz53iwGfxXwoGyyyH8po \ + --clone SdFEeJxn7XxcnYEMNpnoMMSsTfmA1bHfiRdu6qra7zL \ + --bpf-program crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd ./target/deploy/cardinal_rewards_center.so \ --reset --quiet & echo $$! sleep 10 solana-keygen pubkey ./tests/test-keypairs/test-key.json diff --git a/README.md b/README.md index c76fb990..065df3ca 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Cardinal rewards center is a modular smart contract for staking tokens and distr Program addresses are the same on devnet, testnet, and mainnet-beta. -- RewardsCenter: [`rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U`](https://explorer.solana.com/address/rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U) +- RewardsCenter: [`crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd`](https://explorer.solana.com/address/crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd) ## State map diff --git a/package.json b/package.json index ae2be856..65a41496 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@cardinal/rewards-center", - "version": "2.0.0", + "version": "2.1.0", "description": "Cardinal rewards center", "keywords": [ "solana", diff --git a/programs/cardinal-rewards-center/Cargo.toml b/programs/cardinal-rewards-center/Cargo.toml index f21dcd00..d9c772e0 100644 --- a/programs/cardinal-rewards-center/Cargo.toml +++ b/programs/cardinal-rewards-center/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cardinal-rewards-center" -version = "2.0.0" +version = "2.1.0" description = "Cardinal rewards center" edition = "2021" homepage = "https://cardinal.so" @@ -23,8 +23,8 @@ default = [] anchor-lang = { version = "0.25.0", features = ["init-if-needed"] } anchor-spl = "0.25.0" solana-program = "1.10.41" -spl-token = { version = "3.1.1", features = ["no-entrypoint"] } -mpl-token-metadata = { version = "1.3.3", features = ["no-entrypoint"] } +spl-token = { version = "3.2.0", features = ["no-entrypoint"] } +mpl-token-metadata = { version = "=1.3.3", features = ["no-entrypoint"] } [dev-dependencies] proptest = { version = "1.0" } diff --git a/programs/cardinal-rewards-center/src/errors.rs b/programs/cardinal-rewards-center/src/errors.rs index 7426844e..30dd7f56 100644 --- a/programs/cardinal-rewards-center/src/errors.rs +++ b/programs/cardinal-rewards-center/src/errors.rs @@ -67,8 +67,8 @@ pub enum ErrorCode { InvalidBoostPayerTokenAccount, #[msg("Invalid boost payment recipient token account")] InvalidBoostPaymentRecipientTokenAccount, - #[msg("Invalid payment manager")] - InvalidPaymentManager, + #[msg("Invalid payment info")] + InvalidPaymentInfo, #[msg("Cannot boost a fungible token stake entry")] CannotBoostFungibleToken, diff --git a/programs/cardinal-rewards-center/src/payment/state.rs b/programs/cardinal-rewards-center/src/payment/state.rs index 69da4ba8..9976ccc2 100644 --- a/programs/cardinal-rewards-center/src/payment/state.rs +++ b/programs/cardinal-rewards-center/src/payment/state.rs @@ -43,7 +43,9 @@ pub enum Action { pub fn assert_payment_info(stake_pool: Pubkey, action: Action, payment_info: Pubkey) -> Result<()> { let default_allowed_payment_infos = match action { _ => [ - "7cKQgnFTzLtdNWgMuQVQG4LjWShsGsgXx284VBr5eRsM".to_string(), // cardinal-default 0.005 + "382KXQfzC26jbFmLZBmKoZ6eRz53iwGfxXwoGyyyH8po".to_string(), // cardinal-test-wsol + "HqiCY5NqfHfyhyjheQ4ENo5J2XSQBpeqhNoeESkDWBpU".to_string(), // cardinal-test (native) + "SdFEeJxn7XxcnYEMNpnoMMSsTfmA1bHfiRdu6qra7zL".to_string(), // cardinal-default 0.005 ] .to_vec(), }; @@ -51,7 +53,7 @@ pub fn assert_payment_info(stake_pool: Pubkey, action: Action, payment_info: Pub _ => default_allowed_payment_infos, }; if !allowed_payment_infos.contains(&payment_info.to_string()) { - return Err(error!(ErrorCode::InvalidPaymentManager)); + return Err(error!(ErrorCode::InvalidPaymentInfo)); } Ok(()) } diff --git a/sdk/constants.ts b/sdk/constants.ts index 42a3ba5e..b19c9aab 100644 --- a/sdk/constants.ts +++ b/sdk/constants.ts @@ -15,19 +15,19 @@ import { IDL } from "./idl/cardinal_rewards_center"; export const REWARDS_CENTER_IDL = IDL; export const REWARDS_CENTER_ADDRESS = new PublicKey( - "rwcn6Ry17ChPXpJCN2hoK5kwpgFarQqzycXwVJ3om7U" + "crcBwD7wUjzwsy8tJsVCzZvBTHeq5GoboGg84YraRyd" ); -export const SOL_PAYMENT_INFO = new PublicKey( - "3dxFgrZt9DLn1J5ZB1bDwjeDvbESzNxA11KggRcywKbm" +export const WRAPPED_SOL_PAYMENT_INFO = new PublicKey( + "382KXQfzC26jbFmLZBmKoZ6eRz53iwGfxXwoGyyyH8po" ); -export const WRAPPED_SOL_PAYMENT_INFO = new PublicKey( - "AmJdpbtEzFBVWhznaEQM3V4fNZBa8FWj36Lu2BtnaDYt" +export const SOL_PAYMENT_INFO = new PublicKey( + "HqiCY5NqfHfyhyjheQ4ENo5J2XSQBpeqhNoeESkDWBpU" ); -export const DUST_PAYMENT_INFO = new PublicKey( - "AmJdpbtEzFBVWhznaEQM3V4fNZBa8FWj36Lu2BtnaDYt" +export const DEFAULT_PAYMENT_INFO = new PublicKey( + "SdFEeJxn7XxcnYEMNpnoMMSsTfmA1bHfiRdu6qra7zL" ); export type IDLAccountInfo = { @@ -43,10 +43,6 @@ export type IDLAccount = { } & IDLAccountInfo[T]; }; -export const CLAIM_REWARDS_PAYMENT_INFO = new PublicKey( - "CUeHFsFqfbLfBGSbuNbaAi4wK6V835PoRg1CqCLo8tpM" -); - export type RewardDistributor = IDLAccount["rewardDistributor"]; export type RewardEntry = IDLAccount["rewardEntry"]; export type StakePool = IDLAccount["stakePool"]; diff --git a/sdk/idl/cardinal_rewards_center.ts b/sdk/idl/cardinal_rewards_center.ts index 8a00ba42..72a5f9de 100644 --- a/sdk/idl/cardinal_rewards_center.ts +++ b/sdk/idl/cardinal_rewards_center.ts @@ -1,5 +1,5 @@ export type CardinalRewardsCenter = { - version: "2.0.0"; + version: "2.1.0"; name: "cardinal_rewards_center"; instructions: [ { @@ -2042,8 +2042,8 @@ export type CardinalRewardsCenter = { }, { code: 6064; - name: "InvalidPaymentManager"; - msg: "Invalid payment manager"; + name: "InvalidPaymentInfo"; + msg: "Invalid payment info"; }, { code: 6065; @@ -2174,7 +2174,7 @@ export type CardinalRewardsCenter = { }; export const IDL: CardinalRewardsCenter = { - version: "2.0.0", + version: "2.1.0", name: "cardinal_rewards_center", instructions: [ { @@ -4217,8 +4217,8 @@ export const IDL: CardinalRewardsCenter = { }, { code: 6064, - name: "InvalidPaymentManager", - msg: "Invalid payment manager", + name: "InvalidPaymentInfo", + msg: "Invalid payment info", }, { code: 6065, diff --git a/sdk/idl/cardinal_rewards_center_idl.json b/sdk/idl/cardinal_rewards_center_idl.json index e2903af3..e1543066 100644 --- a/sdk/idl/cardinal_rewards_center_idl.json +++ b/sdk/idl/cardinal_rewards_center_idl.json @@ -1,5 +1,5 @@ { - "version": "2.0.0", + "version": "2.1.0", "name": "cardinal_rewards_center", "instructions": [ { @@ -2042,8 +2042,8 @@ }, { "code": 6064, - "name": "InvalidPaymentManager", - "msg": "Invalid payment manager" + "name": "InvalidPaymentInfo", + "msg": "Invalid payment info" }, { "code": 6065, diff --git a/tests/reward-distribution/claim-rewards-sol.test.ts b/tests/reward-distribution/claim-rewards-sol.test.ts index d7cbfe4e..63dd15b3 100644 --- a/tests/reward-distribution/claim-rewards-sol.test.ts +++ b/tests/reward-distribution/claim-rewards-sol.test.ts @@ -15,8 +15,8 @@ import { import { BN } from "bn.js"; import { - CLAIM_REWARDS_PAYMENT_INFO, claimRewards, + DEFAULT_PAYMENT_INFO, fetchIdlAccount, findRewardDistributorId, findRewardEntryId, @@ -43,7 +43,7 @@ const REWARD_AMOUNT = 2; let mintId: PublicKey; let rewardMintId: PublicKey; -const PAYMENT_AMOUNT = 0.002 * LAMPORTS_PER_SOL; +const PAYMENT_AMOUNT = 0.005 * LAMPORTS_PER_SOL; beforeAll(async () => { provider = await getProvider(); @@ -125,7 +125,7 @@ test("Init reward distributor", async () => { defaultMultiplier: new BN(1), multiplierDecimals: 0, maxRewardSecondsReceived: null, - claimRewardsPaymentInfo: CLAIM_REWARDS_PAYMENT_INFO, + claimRewardsPaymentInfo: DEFAULT_PAYMENT_INFO, }) .accounts({ rewardDistributor: rewardDistributorId, @@ -173,7 +173,7 @@ test("Init reward distributor", async () => { expect(rewardDistributor.parsed.multiplierDecimals).toBe(0); expect(Number(rewardDistributor.parsed.defaultMultiplier)).toBe(1); expect(rewardDistributor.parsed.claimRewardsPaymentInfo.toString()).toBe( - CLAIM_REWARDS_PAYMENT_INFO.toString() + DEFAULT_PAYMENT_INFO.toString() ); // reward account check @@ -250,6 +250,15 @@ test("Claim rewards", async () => { const balanceBefore = await provider.connection.getBalance( provider.wallet.publicKey ); + + await claimRewards( + provider.connection, + provider.wallet, + stakePoolIdentifier, + [{ mintId }], + [rewardDistributorId] + ); + await executeTransactions( provider.connection, await claimRewards(