A hierarchical deterministic wallet is a digital wallet commonly used to store the keys for holders of cryptocurrencies.
Step 2: Wallet Initialisation
Copy const { Wallet , prepareTransaction } = require ( 'expand-network' );
const wallet = new Wallet ({ privateKey : 'SENDER_PRIVATE_KEY' , xApiKey : xApiKey});
Step 3: Prepare Transaction
Copy const chainId = '1' ; // Replace with other chainId to toggle between chains
const preparedTx = {
"from" : "SENDER_WALLET_ADDRESS" ,
"value" : "10000" ,
"to" : "RECEIVER_WALLET_ADDRESS" ,
"chainId" : "1" ,
"gas" : "25000" ,
"xApiKey" : "YOUR_API_KEY"
};
Copy const signedTx = await wallet .signTransaction (preparedTx);
signedTx .chainId = '1' ;
console .log (signedTx);
Copy const tx = await wallet .sendTransaction (signedTx);
console .log ( tx .data);
Sample code to approve a fungible token using any HD wallet:
Copy const { Wallet , prepareTransaction } = require ( 'expand-network' );
const xApiKey = 'YOUR_API_KEY' ; //Replace this with your API key
async function main () {
const chainId = '1' ;
const preparedTx = await prepareTransaction ( 'https://api.expand.network/fungibletoken/approve' , {
"from" : "OWNER_WALLET_ADDRESS" ,
"value" : "10000" ,
"to" : "SPENDER_WALLET_ADDRESS" ,
"chainId" : "1" ,
"gas" : "25000" ,
"xApiKey" : xApiKey
};
const wallet = new Wallet ({ privateKey : 'SENDER_PRIVATE_KEY' , xApiKey : xApiKey});
const signedTx = await wallet .signTransaction (preparedTx);
signedTx .chainId = '1' ;
console .log (signedTx);
const tx = await wallet .sendTransaction (signedTx);
console .log ( tx .data);
}
main ();