implGetProvideLiquidityTonTxParams method

Future<SenderArguments> implGetProvideLiquidityTonTxParams({
  1. required InternalAddress userWalletAddress,
  2. required Pton proxyTon,
  3. required InternalAddress otherTokenAddress,
  4. required BigInt sendAmount,
  5. required BigInt minLpOut,
  6. required BigInt forwardGasAmount,
  7. InternalAddress? refundAddress,
  8. InternalAddress? excessesAddress,
  9. bool bothPositive = false,
  10. Cell? customPayload,
  11. BigInt? customPayloadForwardGasAmount,
  12. BigInt? queryId,
})

Implementation

Future<SenderArguments> implGetProvideLiquidityTonTxParams({
  required InternalAddress userWalletAddress,
  required Pton proxyTon,
  required InternalAddress otherTokenAddress,
  required BigInt sendAmount,
  required BigInt minLpOut,
  required BigInt forwardGasAmount,
  InternalAddress? refundAddress,
  InternalAddress? excessesAddress,
  bool bothPositive = false,
  Cell? customPayload,
  BigInt? customPayloadForwardGasAmount,
  BigInt? queryId,
}) async {
  final contractAddress = this.address;

  final routerWalletAddress = await stonfiProvider!
      .open(JettonMaster(otherTokenAddress))
      .getWalletAddress(contractAddress);

  final forwardPayload = createProvideLiquidityBody(
    refundAddress: refundAddress ?? userWalletAddress,
    receiverAddress: userWalletAddress,
    excessesAddress: excessesAddress,
    customPayload: customPayload,
    customPayloadForwardGasAmount: customPayloadForwardGasAmount,
    bothPositive: bothPositive,
    routerWalletAddress: routerWalletAddress,
    minLpOut: minLpOut,
  );

  final forwardTonAmount = forwardGasAmount;

  return await proxyTon.getTonTransferTxParams(
    queryId: queryId ?? BigInt.zero,
    tonAmount: sendAmount,
    destinationAddress: contractAddress,
    refundAddress: userWalletAddress,
    forwardPayload: forwardPayload,
    forwardTonAmount: forwardTonAmount,
  );
}