Struct multiversx_sdk::wallet::Wallet
source · pub struct Wallet { /* private fields */ }
Implementations§
source§impl Wallet
impl Wallet
sourcepub fn get_private_key_from_mnemonic(
mnemonic: Mnemonic,
account: u32,
address_index: u32
) -> PrivateKey
pub fn get_private_key_from_mnemonic(
mnemonic: Mnemonic,
account: u32,
address_index: u32
) -> PrivateKey
sourcepub fn from_private_key(priv_key: &str) -> Result<Self>
pub fn from_private_key(priv_key: &str) -> Result<Self>
Examples found in repository?
examples/vm_query.rs (lines 9-11)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let req = VmValueRequest {
sc_address: Address::from_bech32_string(
"erd1qqqqqqqqqqqqqpgqhn3ae8dpc957t7jadn7kywtg503dy7pnj9ts3umqxx",
)
.unwrap(),
func_name: "get".to_string(),
args: vec![],
caller: addr.clone(),
value: "0".to_string(),
};
let result = blockchain.execute_vmquery(&req).await;
println!("{result:#?}");
}
More examples
examples/sign_tx.rs (lines 9-11)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "0".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
let tx_hash = blockchain.send_transaction(&unsign_tx).await.unwrap();
println!("tx_hash {tx_hash}");
}
examples/sign_txs.rs (lines 9-11)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "1000000000000000000".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let mut txs: Vec<Transaction> = vec![];
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
unsign_tx.version = 2;
unsign_tx.options = 1;
unsign_tx.nonce += 1;
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
let tx_hash = blockchain.send_transactions(&txs).await.unwrap();
println!("tx_hashes {tx_hash:?}");
}
pub fn from_pem_file(file_path: &str) -> Result<Self>
sourcepub fn address(&self) -> Address
pub fn address(&self) -> Address
Examples found in repository?
examples/vm_query.rs (line 13)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let req = VmValueRequest {
sc_address: Address::from_bech32_string(
"erd1qqqqqqqqqqqqqpgqhn3ae8dpc957t7jadn7kywtg503dy7pnj9ts3umqxx",
)
.unwrap(),
func_name: "get".to_string(),
args: vec![],
caller: addr.clone(),
value: "0".to_string(),
};
let result = blockchain.execute_vmquery(&req).await;
println!("{result:#?}");
}
More examples
examples/sign_tx.rs (line 13)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "0".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
let tx_hash = blockchain.send_transaction(&unsign_tx).await.unwrap();
println!("tx_hash {tx_hash}");
}
examples/sign_txs.rs (line 13)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "1000000000000000000".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let mut txs: Vec<Transaction> = vec![];
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
unsign_tx.version = 2;
unsign_tx.options = 1;
unsign_tx.nonce += 1;
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
let tx_hash = blockchain.send_transactions(&txs).await.unwrap();
println!("tx_hashes {tx_hash:?}");
}
sourcepub fn sign_tx(&self, unsign_tx: &Transaction) -> [u8; 64]
pub fn sign_tx(&self, unsign_tx: &Transaction) -> [u8; 64]
Examples found in repository?
examples/sign_tx.rs (line 36)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "0".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
let tx_hash = blockchain.send_transaction(&unsign_tx).await.unwrap();
println!("tx_hash {tx_hash}");
}
More examples
examples/sign_txs.rs (line 38)
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
async fn main() {
let wl = Wallet::from_private_key(
"1648ad209d6b157a289884933e3bb30f161ec7113221ec16f87c3578b05830b0",
)
.unwrap();
let addr = wl.address();
let blockchain = CommunicationProxy::new(DEVNET_GATEWAY.to_string());
let network_config = blockchain.get_network_config().await.unwrap();
let arg = blockchain
.get_default_transaction_arguments(&addr, &network_config)
.await
.unwrap();
let mut unsign_tx = Transaction {
nonce: arg.nonce,
value: "1000000000000000000".to_string(),
receiver: addr.clone(),
sender: addr.clone(),
gas_price: arg.gas_price,
gas_limit: arg.gas_limit,
data: arg.data,
signature: None,
chain_id: arg.chain_id,
version: arg.version,
options: arg.options,
};
let mut txs: Vec<Transaction> = vec![];
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
unsign_tx.version = 2;
unsign_tx.options = 1;
unsign_tx.nonce += 1;
let signature = wl.sign_tx(&unsign_tx);
unsign_tx.signature = Some(hex::encode(signature));
txs.push(unsign_tx.clone());
let tx_hash = blockchain.send_transactions(&txs).await.unwrap();
println!("tx_hashes {tx_hash:?}");
}