getProvideLiquidityJettonTxParams method

Future<SenderArguments> getProvideLiquidityJettonTxParams({
  1. required InternalAddress userWalletAddress,
  2. required InternalAddress sendTokenAddress,
  3. required InternalAddress otherTokenAddress,
  4. required BigInt sendAmount,
  5. required BigInt minLpOut,
  6. BigInt? gasAmount,
  7. BigInt? forwardGasAmount,
  8. BigInt? queryId,
})

Implementation

Future<SenderArguments> getProvideLiquidityJettonTxParams({
  required InternalAddress userWalletAddress,
  required InternalAddress sendTokenAddress,
  required InternalAddress otherTokenAddress,
  required BigInt sendAmount,
  required BigInt minLpOut,
  BigInt? gasAmount,
  BigInt? forwardGasAmount,
  BigInt? queryId,
}) async {
  final jettonWalletAddress = await stonfiProvider!
      .open(JettonMaster(sendTokenAddress))
      .getWalletAddress(userWalletAddress);
  final routerWalletAddress = await stonfiProvider!
      .open(JettonMaster(otherTokenAddress))
      .getWalletAddress(this.address);

  final forwardPayload = createProvideLiquidityBody(
    routerWalletAddress: routerWalletAddress,
    minLpOut: minLpOut,
  );

  final forwardTonAmount =
      forwardGasAmount ?? gasConstants.provideLpJetton.forwardGasAmount;

  final body = createJettonTransferMessage(
    queryId: queryId ?? BigInt.zero,
    amount: sendAmount,
    destination: this.address,
    responseDestination: userWalletAddress,
    forwardTonAmount: forwardTonAmount,
    forwardPayload: forwardPayload,
  );

  final value = gasAmount ?? gasConstants.provideLpJetton.gasAmount!;

  return SenderArguments(value: value, to: jettonWalletAddress, body: body);
}