transferTokenToHome method
Implementation
Future<List<dynamic>> transferTokenToHome(
String walletAddress,
String foreignBridgeMediator,
String tokenAddress,
num tokensAmount,
int tokenDecimals, {
String network = 'mainnet',
}) async {
EthereumAddress token = EthereumAddress.fromHex(tokenAddress);
Decimal tokensAmountDecimal = Decimal.parse(tokensAmount.toString());
Decimal decimals = Decimal.parse(pow(10, tokenDecimals).toString());
BigInt amount = BigInt.parse((tokensAmountDecimal * decimals).toString());
Map approveTokenData = await approveTokenOffChain(
walletAddress,
tokenAddress,
tokensAmount: tokensAmount,
network: network,
spenderContract: foreignBridgeMediator,
);
String data = await getEncodedDataForContractCall(
'HomeMultiAMBErc20ToErc677',
foreignBridgeMediator,
'relayTokens',
[token, amount],
);
print('relayTokens data: $data');
Map<String, dynamic> transferToHomeData = await callContractOffChain(
walletAddress,
foreignBridgeMediator,
data,
network: network,
ethAmount: 0,
);
return [approveTokenData, transferToHomeData];
}