Skip to content

Commit 4ce50d5

Browse files
committed
new program id for vesting. update cli.
1 parent db06fa7 commit 4ce50d5

File tree

6 files changed

+67
-11
lines changed

6 files changed

+67
-11
lines changed

Anchor.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ seeds = true
66
skip-lint = false
77

88
[programs.devnet]
9-
merkle_distributor = "CdDCDhVL9LB4nZULev3hAdwrc1bcYuXCVEydP63kKfdJ"
9+
merkle_distributor = "6iPn4u8RCcVsNQ3yW2VeknuozKaNPhdhEHySbhCo6y2e"
1010

1111
[registry]
1212
url = "https://api.apr.dev"

Cargo.lock

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ edition = "2021"
2727
publish = false
2828

2929
[workspace.dependencies]
30+
dotenv = "0.15.0"
3031
anchor-lang = "0.28.0"
3132
anchor-spl = "0.28.0"
3233
axum = "0.6.2"

cli/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ solana-program = { workspace = true }
1313
solana-rpc-client = { workspace = true }
1414
solana-sdk = { workspace = true }
1515
spl-associated-token-account = { workspace = true }
16+
dotenv = { workspace = true }
17+
bs58 = { version = "0.5.0", features = ["alloc"] }

cli/src/bin/cli.rs

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extern crate jito_merkle_tree;
22
extern crate merkle_distributor;
33

4-
use std::path::PathBuf;
4+
use std::{path::PathBuf, str::FromStr};
55

66
use anchor_lang::{prelude::Pubkey, AccountDeserialize, InstructionData, Key, ToAccountMetas};
77
use anchor_spl::token;
@@ -15,7 +15,7 @@ use solana_program::instruction::Instruction;
1515
use solana_rpc_client::rpc_client::RpcClient;
1616
use solana_sdk::{
1717
account::Account, commitment_config::CommitmentConfig,
18-
compute_budget::ComputeBudgetInstruction, signature::read_keypair_file, signer::Signer,
18+
compute_budget::ComputeBudgetInstruction, signature::{read_keypair_file, Keypair}, signer::Signer,
1919
transaction::Transaction,
2020
};
2121
use spl_associated_token_account::{
@@ -144,17 +144,30 @@ fn main() {
144144
}
145145

146146
fn process_new_claim(args: &Args, claim_args: &ClaimArgs) {
147-
let keypair = read_keypair_file(&args.keypair_path).expect("Failed reading keypair file");
147+
use dotenv::dotenv;
148+
dotenv().ok();
149+
150+
let env_siner_private_key = std::env::var("SIGNER_PRIV_KEY").expect("SIGNER_PRIV_KEY must be set.");
151+
let private_key_bytes = bs58::decode(env_siner_private_key).into_vec().unwrap();
152+
153+
let keypair = Keypair::from_bytes(&private_key_bytes).unwrap();
154+
println!("This is pubkey {}", keypair.pubkey().to_string());
155+
148156
let claimant = keypair.pubkey();
149157
println!("Claiming tokens for user {}...", claimant);
150158

151-
let merkle_tree = AirdropMerkleTree::new_from_file(&claim_args.merkle_tree_path)
159+
let merkle_tree = AirdropMerkleTree::new_from_csv(&claim_args.merkle_tree_path)
152160
.expect("failed to load merkle tree from file");
153161

154162
let (distributor, _bump) =
155163
get_merkle_distributor_pda(&args.program_id, &args.mint, args.airdrop_version);
156164

157165
// Get user's node in claim
166+
let claimant_wallet = Pubkey::from_str("1ryziZbFQW4fcWck9wW4vU4KD4qxPHKhmAht6pXPFWo").unwrap();
167+
168+
169+
let node = merkle_tree.get_node(&claimant_wallet);
170+
println!("Claiming node: {:?}", node.proof);
158171
let node = merkle_tree.get_node(&claimant);
159172

160173
let (claim_status_pda, _bump) = get_claim_status_pda(&args.program_id, &claimant, &distributor);
@@ -180,12 +193,15 @@ fn process_new_claim(args: &Args, claim_args: &ClaimArgs) {
180193
}
181194
}
182195

196+
let from = get_associated_token_address(&distributor, &args.mint);
197+
println!("from: {from}");
198+
183199
let new_claim_ix = Instruction {
184200
program_id: args.program_id,
185201
accounts: merkle_distributor::accounts::NewClaim {
186202
distributor,
187203
claim_status: claim_status_pda,
188-
from: get_associated_token_address(&distributor, &args.mint),
204+
from: from,
189205
to: claimant_ata,
190206
claimant,
191207
token_program: token::ID,
@@ -213,7 +229,15 @@ fn process_new_claim(args: &Args, claim_args: &ClaimArgs) {
213229
}
214230

215231
fn process_claim(args: &Args, claim_args: &ClaimArgs) {
216-
let keypair = read_keypair_file(&args.keypair_path).expect("Failed reading keypair file");
232+
use dotenv::dotenv;
233+
dotenv().ok();
234+
235+
let env_siner_private_key = std::env::var("SIGNER_PRIV_KEY").expect("SIGNER_PRIV_KEY must be set.");
236+
let private_key_bytes = bs58::decode(env_siner_private_key).into_vec().unwrap();
237+
238+
let keypair = Keypair::from_bytes(&private_key_bytes).unwrap();
239+
println!("This is pubkey {}", keypair.pubkey().to_string());
240+
217241
let claimant = keypair.pubkey();
218242

219243
let priority_fee = args.priority.unwrap_or(0);
@@ -227,6 +251,14 @@ fn process_claim(args: &Args, claim_args: &ClaimArgs) {
227251

228252
let client = RpcClient::new_with_commitment(&args.rpc_url, CommitmentConfig::confirmed());
229253

254+
// let merkle_tree = AirdropMerkleTree::new_from_csv(&claim_args.merkle_tree_path)
255+
// .expect("failed to load merkle tree from file");
256+
257+
// let claimant_wallet = Pubkey::from_str("1ryziZbFQW4fcWck9wW4vU4KD4qxPHKhmAht6pXPFWo").unwrap();
258+
// let node = merkle_tree.get_node(&claimant_wallet);
259+
// println!("Claiming node: {:?}", node);
260+
// panic!("stop");
261+
230262
match client.get_account(&claim_status_pda) {
231263
Ok(_) => {}
232264
Err(e) => {
@@ -319,8 +351,21 @@ fn check_distributor_onchain_matches(
319351
fn process_new_distributor(args: &Args, new_distributor_args: &NewDistributorArgs) {
320352
let client = RpcClient::new_with_commitment(&args.rpc_url, CommitmentConfig::finalized());
321353

322-
let keypair = read_keypair_file(&args.keypair_path).expect("Failed reading keypair file");
323-
let merkle_tree = AirdropMerkleTree::new_from_file(&new_distributor_args.merkle_tree_path)
354+
use dotenv::dotenv;
355+
dotenv().ok();
356+
357+
let env_siner_private_key = std::env::var("SIGNER_PRIV_KEY").expect("SIGNER_PRIV_KEY must be set.");
358+
let private_key_bytes = bs58::decode(env_siner_private_key).into_vec().unwrap();
359+
360+
let keypair = Keypair::from_bytes(&private_key_bytes).unwrap();
361+
println!("This is pubkey {}", keypair.pubkey().to_string());
362+
363+
let ret_back = get_associated_token_address(
364+
&keypair.pubkey(),
365+
&args.mint,
366+
);
367+
368+
let merkle_tree = AirdropMerkleTree::new_from_csv(&new_distributor_args.merkle_tree_path)
324369
.expect("failed to read");
325370
let (distributor_pubkey, _bump) =
326371
get_merkle_distributor_pda(&args.program_id, &args.mint, args.airdrop_version);
@@ -345,7 +390,7 @@ fn process_new_distributor(args: &Args, new_distributor_args: &NewDistributorArg
345390
let new_distributor_ix = Instruction {
346391
program_id: args.program_id,
347392
accounts: merkle_distributor::accounts::NewDistributor {
348-
clawback_receiver: new_distributor_args.clawback_receiver_token_account,
393+
clawback_receiver: ret_back,
349394
mint: args.mint,
350395
token_vault,
351396
distributor: distributor_pubkey,

programs/merkle-distributor/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ security_txt! {
3030
source_code: "https://github.com/jito-foundation/distributor"
3131
}
3232

33-
declare_id!("CdDCDhVL9LB4nZULev3hAdwrc1bcYuXCVEydP63kKfdJ");
33+
declare_id!("6iPn4u8RCcVsNQ3yW2VeknuozKaNPhdhEHySbhCo6y2e");
3434

3535
#[program]
3636
pub mod merkle_distributor {

0 commit comments

Comments
 (0)