executeWooCommerceTransaction method
Implementation
Future<BoltPayResponse> executeWooCommerceTransaction() async {
String packageId = env == ENV.devnet
? BoltPayConstants.devnetWOOCommercePackageId
: env == ENV.testnet
? BoltPayConstants.testnetWOOCommercePackageId
: BoltPayConstants.mainnetWOOCommercePackageId;
String treasury = env == ENV.devnet
? BoltPayConstants.devnetWOOCommerceTreasury
: env == ENV.testnet
? BoltPayConstants.testnetWOOCommerceTreasury
: BoltPayConstants.mainnetWOOCommerceTreasury;
final gasBudget = BigInt.from(10000000);
var txb = TransactionBlock();
txb.setGasBudget(gasBudget);
// SUI TX
int suiAmount = (double.parse(amount) * (1000000000)).toInt();
var coin = txb.splitCoins(txb.gas, [txb.pureInt(suiAmount)]);
txb.moveCall(
'$packageId::${BoltPayConstants.wooCommerceModule}::${BoltPayConstants.createTXfunction}',
arguments: [
coin,
txb.object(treasury),
txb.pureString(wooCommerceName ?? ''),
txb.pureAddress(merchantWalletAddress),
txb.pureInt((suiAmount)),
txb.pureInt(int.parse(orderId)),
],
typeArguments: [
coinType
]);
SuiExecuteTransactionResponse suiExecuteTransactionResponse =
await suiClient.signAndExecuteTransactionBlock(suiAccount, txb,
responseOptions:
SuiTransactionBlockResponseOptions(showEffects: true));
return _handleResponse(suiExecuteTransactionResponse);
}