getSwapTonToJettonTxParams method

Future<SenderArguments> getSwapTonToJettonTxParams({
  1. required InternalAddress userWalletAddress,
  2. required Pton proxyTon,
  3. required InternalAddress askJettonAddress,
  4. required BigInt offerAmount,
  5. required BigInt minAskAmount,
  6. InternalAddress? refundAddress,
  7. InternalAddress? excessesAddress,
  8. InternalAddress? referralAddress,
  9. BigInt? referralValue,
  10. Cell? customPayload,
  11. BigInt? customPayloadForwardGasAmount,
  12. Cell? refundPayload,
  13. BigInt? refundForwardGasAmount,
  14. BigInt? gasAmount,
  15. BigInt? forwardGasAmount,
  16. BigInt? queryId,
})

Implementation

Future<SenderArguments> getSwapTonToJettonTxParams({
  required InternalAddress userWalletAddress,
  required Pton proxyTon,
  required InternalAddress askJettonAddress,
  required BigInt offerAmount,
  required BigInt minAskAmount,
  InternalAddress? refundAddress,
  InternalAddress? excessesAddress,
  InternalAddress? referralAddress,
  BigInt? referralValue,
  Cell? customPayload,
  BigInt? customPayloadForwardGasAmount,
  Cell? refundPayload,
  BigInt? refundForwardGasAmount,
  BigInt? gasAmount,
  BigInt? forwardGasAmount,
  BigInt? queryId,
}) async {
  final contractAddress = this.address;

  final askJettonWalletAddress = await stonfiProvider!
      .open(JettonMaster(askJettonAddress))
      .getWalletAddress(contractAddress);

  final forwardPayload = createSwapBody(
    askJettonWalletAddress: askJettonWalletAddress,
    receiverAddress: userWalletAddress,
    minAskAmount: minAskAmount,
    refundAddress: refundAddress ?? userWalletAddress,
    excessesAddress: excessesAddress,
    referralAddress: referralAddress,
    referralValue: referralValue,
    customPayload: customPayload,
    customPayloadForwardGasAmount: customPayloadForwardGasAmount,
    refundPayload: refundPayload,
    refundForwardGasAmount: refundForwardGasAmount,
  );

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

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