set proper addresses

master
plazmoid 1 week ago
parent f389b6f856
commit 8991e2124f
  1. 12
      mass-transfer-2/config.yaml
  2. 42
      mass-transfer-2/src/main.rs

@ -1,10 +1,10 @@
transfers:
- sender:
pubkey: BqrHGjskCWo9Sx6gWeoVHVZbpi6KoE9q6BspdaaGDkmc
privkey: BEYTkFt8uZp2uKtXrWTvt8CzVHjF9BvjvMQnWKvAwGrB
receiver: Sysvar1nstructions1111111111111111111111111
pubkey: 6VKVAHy2GcQ8EexKgp4RPRQMEW5j12k7bjHFB8acPe8e
privkey: GiLKdLTczFTD5ZQKmcWJHmMz2LYyFVHRznezoHmsaD9p
receiver: DyoR8dJyoZ983TpHBEH6uDzBsqgEAEkFjvK19nKYDtKi
- sender:
pubkey: EvsGrL9cXhCJn3KxfHnxKjRJwZgHt2tmHuvn7WMq1Vxu
privkey: 6dWCFhZXSHsdQapb9wks6qR8EvkjgEQhZtcJnR5GS1dc
receiver: HEvSKofvBgfaexv23kMabbYqxasxU3mQ4ibBMEmJWHny
pubkey: HP9QKWx6dhCFQm2XX3CbGdyutL3MUeDrozcQNuf7J8rc
privkey: DA3bffxJouzoxwRxS6dkrLRMC4i3W86zNoA6kPfgSYTq
receiver: AFUr4kCcxx9BFUqJ3qtbNZNzWiU99PTC8mKr5spdkJHN
solana_url: https://api.devnet.solana.com

@ -74,7 +74,6 @@ async fn main() -> Result<(), Box<dyn Error>> {
config.solana_url.clone(),
CommitmentConfig::confirmed(),
));
let accounts_from = config
.transfers
.iter()
@ -86,6 +85,11 @@ async fn main() -> Result<(), Box<dyn Error>> {
.map(|s| s.receiver)
.collect::<Vec<_>>();
//**// create account
// create_account(client.clone(), &config.transfers[0].sender, &Keypair::new()).await?;
// return Ok(());
//**//
// for acc in &accounts_from {
// println!("requesting airdrop for {acc}");
// let signature = client.request_airdrop(&acc, LAMPORTS_PER_SOL).await?;
@ -96,7 +100,10 @@ async fn main() -> Result<(), Box<dyn Error>> {
print_balances(client.clone(), all_accounts.clone()).await?;
let transfer_amount = LAMPORTS_PER_SOL / 100;
println!("sending {transfer_amount} SOL");
println!(
"sending {} SOL",
transfer_amount as f64 / LAMPORTS_PER_SOL as f64
);
let transactions = run_batch(config.transfers.iter().map(|tr| {
let instruction =
@ -136,6 +143,37 @@ async fn wait_for_confirmation(
Ok(())
}
async fn create_account(
client: Arc<RpcClient>,
payer: &Keypair,
new_account: &Keypair,
) -> Result<(), ClientError> {
let data_len = 0;
let rent_exemption_amount = client
.get_minimum_balance_for_rent_exemption(data_len)
.await?;
println!("pubkey: {}", new_account.pubkey());
println!(
"privkey: {}",
bs58::encode(new_account.secret().as_bytes()).into_string()
);
let instruction = system_instruction::create_account(
&payer.pubkey(),
&new_account.pubkey(),
rent_exemption_amount,
data_len as u64,
&Pubkey::from_str("11111111111111111111111111111111").unwrap(),
);
let mut transaction = Transaction::new_with_payer(&[instruction], Some(&payer.pubkey()));
transaction.sign(
&[&payer, &new_account],
client.get_latest_blockhash().await?,
);
client.send_and_confirm_transaction(&transaction).await?;
println!("account {} created", new_account.pubkey());
Ok(())
}
async fn run_batch<T>(
tasks: impl IntoIterator<Item = impl Future<Output = Result<T, ClientError>>>,
) -> Result<Vec<T>, ClientError> {

Loading…
Cancel
Save