Token Transfer
Transfer assets from proxy account in Solana to EVM.
const amount = "0.1";
const sender = signer.address;
const tokenMint = "AbLwGR8A1wvsiLWrzzA5eYPoQw51NVMcMMTPvAv5LTJ";
const receiver = sender;
const sourceChain = CHAIN_ID_BSC;
const receipt = await ethClient.directTransfer(amount, sender, tokenMint, receiver);const sequence = parseSequenceFromLogEth(receipt, getBridgeAddressForChain(sourceChain));
const emitterAddress = getEmitterAddressEth(BSC_ZEBEC_BRIDGE_ADDRESS);
const { vaaBytes } = await getSignedVAAWithRetry(
WORMHOLE_RPC_HOSTS,
sourceChain,
emitterAddress,
sequence,
);const payerAddress = wallet.publicKey.toString();
const bridgeAddress = getBridgeAddressForChain(targetChain);
const vaaBuf = Buffer.from(vaaBytes);
setDefaultWasm("node"); // use bundler for browser
// posting vaa in solana
await postVaaSolanaWithRetry(
connection,
wallet.signTransaction,
bridgeAddress,
payerAddress,
vaaBuf,
MAX_VAA_UPLOAD_RETRIES_SOLANA,
);
const { parse_vaa } = await importCoreWasm();
const parsedVaa = parse_vaa(vaaBytes);
const parsedPayload = parseZebecPayload(Buffer.from(parsedVaa.payload));
const result = await solanaClient.directTokenTransfer(
vaaBytes,
<DirectTokenTransferPayload>parsedPayload
);Last updated