From d34a2c848de76728f0b1d5c862076688b8fffb03 Mon Sep 17 00:00:00 2001 From: zpoken <82594516+zpoken@users.noreply.github.com> Date: Wed, 12 Mar 2025 14:09:11 +0200 Subject: [PATCH] Update scripts for update and claim vesting admin --- solana/app/deploy/devnet/constants.ts | 5 +++ .../deploy/devnet/update/claimVestingAdmin.ts | 37 ++++++++++++++++ .../update/updateAndClaimVestingAdmin.ts | 43 +++++++++++++++++++ .../devnet/update/updateVestingAdmin.ts | 19 ++++---- 4 files changed, 93 insertions(+), 11 deletions(-) create mode 100644 solana/app/deploy/devnet/update/claimVestingAdmin.ts create mode 100644 solana/app/deploy/devnet/update/updateAndClaimVestingAdmin.ts diff --git a/solana/app/deploy/devnet/constants.ts b/solana/app/deploy/devnet/constants.ts index 74098f3f..2ab82e4e 100644 --- a/solana/app/deploy/devnet/constants.ts +++ b/solana/app/deploy/devnet/constants.ts @@ -82,6 +82,11 @@ export const VESTING_ADMIN_KEYPAIR = loadKeypair( homedir() + VESTING_ADMIN_PATH, ); +export const NEW_VESTING_ADMIN_PATH = "/.config/solana/newVestingAdmin.json"; +export const NEW_VESTING_ADMIN_KEYPAIR = loadKeypair( + homedir() + NEW_VESTING_ADMIN_PATH, +); + export const USER_AUTHORITY_PATH = "/.config/solana/user.json"; export const USER_AUTHORITY_KEYPAIR = loadKeypair( homedir() + USER_AUTHORITY_PATH, diff --git a/solana/app/deploy/devnet/update/claimVestingAdmin.ts b/solana/app/deploy/devnet/update/claimVestingAdmin.ts new file mode 100644 index 00000000..6d423c0a --- /dev/null +++ b/solana/app/deploy/devnet/update/claimVestingAdmin.ts @@ -0,0 +1,37 @@ +// Usage: npx ts-node app/deploy/devnet/update/claimVestingAdmin.ts + +import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; +import { Connection } from "@solana/web3.js"; +import { + RPC_NODE, + NEW_VESTING_ADMIN_KEYPAIR, +} from "../constants"; +import { Staking } from "../../../../target/types/staking"; +import fs from "fs"; + +async function main() { + try { + const connection = new Connection(RPC_NODE); + const provider = new AnchorProvider( + connection, + new Wallet(NEW_VESTING_ADMIN_KEYPAIR), + {}, + ); + + let program: Program; + program = new Program( + JSON.parse(fs.readFileSync("./target/idl/staking.json").toString()), + provider, + ); + + await program.methods + .claimVestingAdmin() + .accounts({ newVestingAdmin: NEW_VESTING_ADMIN_KEYPAIR.publicKey }) + .signers([NEW_VESTING_ADMIN_KEYPAIR]) + .rpc(); + } catch (err) { + console.error("Error:", err); + } +} + +main(); diff --git a/solana/app/deploy/devnet/update/updateAndClaimVestingAdmin.ts b/solana/app/deploy/devnet/update/updateAndClaimVestingAdmin.ts new file mode 100644 index 00000000..0ef1d52b --- /dev/null +++ b/solana/app/deploy/devnet/update/updateAndClaimVestingAdmin.ts @@ -0,0 +1,43 @@ +// Usage: npx ts-node app/deploy/devnet/update/updateAndClaimVestingAdmin.ts + +import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; +import { Connection } from "@solana/web3.js"; +import { + DEPLOYER_AUTHORITY_KEYPAIR, + RPC_NODE, + VESTING_ADMIN_KEYPAIR, +} from "../constants"; +import { Staking } from "../../../../target/types/staking"; +import fs from "fs"; + +async function main() { + try { + const connection = new Connection(RPC_NODE); + const provider = new AnchorProvider( + connection, + new Wallet(DEPLOYER_AUTHORITY_KEYPAIR), + {}, + ); + + let program: Program; + program = new Program( + JSON.parse(fs.readFileSync("./target/idl/staking.json").toString()), + provider, + ); + + await program.methods + .updateVestingAdmin() + .accounts({ newVestingAdmin: VESTING_ADMIN_KEYPAIR.publicKey }) + .rpc(); + + await program.methods + .claimVestingAdmin() + .accounts({ newVestingAdmin: VESTING_ADMIN_KEYPAIR.publicKey }) + .signers([VESTING_ADMIN_KEYPAIR]) + .rpc(); + } catch (err) { + console.error("Error:", err); + } +} + +main(); diff --git a/solana/app/deploy/devnet/update/updateVestingAdmin.ts b/solana/app/deploy/devnet/update/updateVestingAdmin.ts index b1e26704..e8c869a8 100644 --- a/solana/app/deploy/devnet/update/updateVestingAdmin.ts +++ b/solana/app/deploy/devnet/update/updateVestingAdmin.ts @@ -1,11 +1,10 @@ // Usage: npx ts-node app/deploy/devnet/update/updateVestingAdmin.ts import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; -import { Connection } from "@solana/web3.js"; +import { Connection, PublicKey } from "@solana/web3.js"; import { - DEPLOYER_AUTHORITY_KEYPAIR, - RPC_NODE, VESTING_ADMIN_KEYPAIR, + RPC_NODE, } from "../constants"; import { Staking } from "../../../../target/types/staking"; import fs from "fs"; @@ -15,7 +14,7 @@ async function main() { const connection = new Connection(RPC_NODE); const provider = new AnchorProvider( connection, - new Wallet(DEPLOYER_AUTHORITY_KEYPAIR), + new Wallet(VESTING_ADMIN_KEYPAIR), {}, ); @@ -25,15 +24,13 @@ async function main() { provider, ); - await program.methods - .updateVestingAdmin() - .accounts({ newVestingAdmin: VESTING_ADMIN_KEYPAIR.publicKey }) - .rpc(); + const NEW_VESTING_ADMIN_ADDRESS = new PublicKey( + "E1R3XdHgEYmsoLdZSQmhWrcD979bn5qK1bzr7pqMn2UQ", + ); await program.methods - .claimVestingAdmin() - .accounts({ newVestingAdmin: VESTING_ADMIN_KEYPAIR.publicKey }) - .signers([VESTING_ADMIN_KEYPAIR]) + .updateVestingAdmin() + .accounts({ newVestingAdmin: NEW_VESTING_ADMIN_ADDRESS }) .rpc(); } catch (err) { console.error("Error:", err);