UNPKG

@depay/web3-payments-evm

Version:

JavaScript library to scan crypto wallets for liquefiable assets and perform cost-effective, auto-converted payments on-chain.

687 lines (637 loc) 158 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@depay/web3-exchanges'), require('@depay/web3-tokens'), require('@depay/web3-blockchains'), require('@depay/solana-web3.js'), require('ethers'), require('@depay/web3-client')) : typeof define === 'function' && define.amd ? define(['exports', '@depay/web3-exchanges', '@depay/web3-tokens', '@depay/web3-blockchains', '@depay/solana-web3.js', 'ethers', '@depay/web3-client'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Web3Payments = {}, global.Web3Exchanges, global.Web3Tokens, global.Web3Blockchains, global.SolanaWeb3js, global.ethers, global.Web3Client)); })(this, (function (exports, Exchanges, Token, Blockchains, solanaWeb3_js, ethers, web3Client) { 'use strict'; function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var Exchanges__default = /*#__PURE__*/_interopDefaultLegacy(Exchanges); var Token__default = /*#__PURE__*/_interopDefaultLegacy(Token); var Blockchains__default = /*#__PURE__*/_interopDefaultLegacy(Blockchains); const config = { endpoints: { routesBest: 'https://public.depay.com/routes/best' } }; const API = [{"inputs":[{"internalType":"address","name":"_PERMIT2","type":"address"},{"internalType":"address","name":"_FORWARDER","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExchangeCallFailed","type":"error"},{"inputs":[],"name":"ExchangeCallMissing","type":"error"},{"inputs":[],"name":"ExchangeNotApproved","type":"error"},{"inputs":[],"name":"ForwardingPaymentFailed","type":"error"},{"inputs":[],"name":"InsufficientBalanceInAfterPayment","type":"error"},{"inputs":[],"name":"InsufficientBalanceOutAfterPayment","type":"error"},{"inputs":[],"name":"InsufficientProtocolAmount","type":"error"},{"inputs":[],"name":"NativeFeePaymentFailed","type":"error"},{"inputs":[],"name":"NativePaymentFailed","type":"error"},{"inputs":[],"name":"PaymentDeadlineReached","type":"error"},{"inputs":[],"name":"PaymentToZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"WrongAmountPaidIn","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"exchange","type":"address"}],"name":"Disabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"exchange","type":"address"}],"name":"Enabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"deadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"feeAmount2","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"slippageInAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"slippageOutAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenInAddress","type":"address"},{"indexed":false,"internalType":"address","name":"tokenOutAddress","type":"address"},{"indexed":false,"internalType":"address","name":"feeReceiverAddress","type":"address"},{"indexed":false,"internalType":"address","name":"feeReceiverAddress2","type":"address"}],"name":"Payment","type":"event"},{"inputs":[],"name":"FORWARDER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"exchange","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"enable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchanges","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount2","type":"uint256"},{"internalType":"uint256","name":"protocolAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"tokenInAddress","type":"address"},{"internalType":"address","name":"exchangeAddress","type":"address"},{"internalType":"address","name":"tokenOutAddress","type":"address"},{"internalType":"address","name":"paymentReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress2","type":"address"},{"internalType":"uint8","name":"exchangeType","type":"uint8"},{"internalType":"uint8","name":"receiverType","type":"uint8"},{"internalType":"bool","name":"permit2","type":"bool"},{"internalType":"bytes","name":"exchangeCallData","type":"bytes"},{"internalType":"bytes","name":"receiverCallData","type":"bytes"}],"internalType":"struct IDePayRouterV3.Payment","name":"payment","type":"tuple"},{"components":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct IPermit2.TokenPermissions","name":"permitted","type":"tuple"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct IPermit2.PermitTransferFrom","name":"permitTransferFrom","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct IDePayRouterV3.PermitTransferFromAndSignature","name":"permitTransferFromAndSignature","type":"tuple"}],"name":"pay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount2","type":"uint256"},{"internalType":"uint256","name":"protocolAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"tokenInAddress","type":"address"},{"internalType":"address","name":"exchangeAddress","type":"address"},{"internalType":"address","name":"tokenOutAddress","type":"address"},{"internalType":"address","name":"paymentReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress2","type":"address"},{"internalType":"uint8","name":"exchangeType","type":"uint8"},{"internalType":"uint8","name":"receiverType","type":"uint8"},{"internalType":"bool","name":"permit2","type":"bool"},{"internalType":"bytes","name":"exchangeCallData","type":"bytes"},{"internalType":"bytes","name":"receiverCallData","type":"bytes"}],"internalType":"struct IDePayRouterV3.Payment","name":"payment","type":"tuple"}],"name":"pay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"paymentAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount","type":"uint256"},{"internalType":"uint256","name":"feeAmount2","type":"uint256"},{"internalType":"uint256","name":"protocolAmount","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"address","name":"tokenInAddress","type":"address"},{"internalType":"address","name":"exchangeAddress","type":"address"},{"internalType":"address","name":"tokenOutAddress","type":"address"},{"internalType":"address","name":"paymentReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress","type":"address"},{"internalType":"address","name":"feeReceiverAddress2","type":"address"},{"internalType":"uint8","name":"exchangeType","type":"uint8"},{"internalType":"uint8","name":"receiverType","type":"uint8"},{"internalType":"bool","name":"permit2","type":"bool"},{"internalType":"bytes","name":"exchangeCallData","type":"bytes"},{"internalType":"bytes","name":"receiverCallData","type":"bytes"}],"internalType":"struct IDePayRouterV3.Payment","name":"payment","type":"tuple"},{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"},{"internalType":"uint48","name":"nonce","type":"uint48"}],"internalType":"struct IPermit2.PermitDetails","name":"details","type":"tuple"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"sigDeadline","type":"uint256"}],"internalType":"struct IPermit2.PermitSingle","name":"permitSingle","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"pay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]; var routers$2 = { ethereum: { address: '0x365f7B56D2fB16C8Af89D7d33b420E4e013461e8', api: API }, bsc: { address: '0x5F565EDfB9C446976a9F9910631cfeDb6A87220c', api: API }, polygon: { address: '0xe04b08Dfc6CaA0F4Ec523a3Ae283Ece7efE00019', api: API }, avalanche: { address: '0x39E7C98BF4ac3E4C394dD600397f5f7Ee3779BE8', api: API }, gnosis: { address: '0x328FE8bbd30487BB7b5A8eEb909f892E9E229271', api: API }, arbitrum: { address: '0x328FE8bbd30487BB7b5A8eEb909f892E9E229271', api: API }, optimism: { address: '0x558302715e3011Be6695605c11A65526D2ba2245', api: API }, base: { address: '0x48825133EF08327535D0b24d73779E82BE6Ea4d9', api: API }, worldchain: { address: '0x886eb82a7e5E7310F66A0E83748662A17E391eb0', api: API }, }; var routers$1 = { solana: { address: 'DePayR1gQfDmViCPKctnZXNtUgqRwnEqMax8LX9ho1Zg', exchanges: { orca: 'whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc', raydiumCP: 'CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C', raydiumCL: 'CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK', }, alt: '8bYq3tcwX1NM2K2JYMjrEqAPtCXFPCjzPazFothc618e', api: { createEscrowSolAccount: { anchorDiscriminator: new solanaWeb3_js.BN("2482112285991870004"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), ]) }, createEscrowTokenAccount: { anchorDiscriminator: new solanaWeb3_js.BN("16156440424245087"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), ]) }, routeSol: { anchorDiscriminator: new solanaWeb3_js.BN("6497164560834983274"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeToken: { anchorDiscriminator: new solanaWeb3_js.BN("13483873682232752277"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaSwap: { anchorDiscriminator: new solanaWeb3_js.BN("9797248061404332986"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.bool("aToB"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("13662217913752830165"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.bool("aToB"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("16115018480206947614"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.bool("aToB"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaTwoHopSwap: { anchorDiscriminator: new solanaWeb3_js.BN("15695720599845325801"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.bool("aToBOne"), solanaWeb3_js.bool("aToBTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaTwoHopSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("15074061855608091530"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.bool("aToBOne"), solanaWeb3_js.bool("aToBTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeOrcaTwoHopSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("2678451299937372540"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.bool("aToBOne"), solanaWeb3_js.bool("aToBTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumClSwap: { anchorDiscriminator: new solanaWeb3_js.BN("2954182973248174268"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumClSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("18389700643710627390"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumClSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("564150378912976829"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumClTwoHopSwap: { anchorDiscriminator: new solanaWeb3_js.BN("3828760301615328551"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), solanaWeb3_js.u8("remainingAccountsSplit"), ]) }, routeRaydiumClTwoHopSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("11373220799455718953"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), solanaWeb3_js.u8("remainingAccountsSplit"), ]) }, routeRaydiumClTwoHopSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("1635173573630140652"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), solanaWeb3_js.u8("remainingAccountsSplit"), ]) }, routeRaydiumCpSwap: { anchorDiscriminator: new solanaWeb3_js.BN("7437765211943645137"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumCpSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("9045257739866411286"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumCpSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("432305509198797158"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountIn"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumCpTwoHopSwap: { anchorDiscriminator: new solanaWeb3_js.BN("3384279312781294015"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumCpTwoHopSwapSolOut: { anchorDiscriminator: new solanaWeb3_js.BN("18428464202744806632"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) }, routeRaydiumCpTwoHopSwapSolIn: { anchorDiscriminator: new solanaWeb3_js.BN("16266677464406446072"), layout: solanaWeb3_js.struct([ solanaWeb3_js.u64("anchorDiscriminator"), solanaWeb3_js.u64("amountInOne"), solanaWeb3_js.u64("amountInTwo"), solanaWeb3_js.u64("paymentAmount"), solanaWeb3_js.u64("feeAmount"), solanaWeb3_js.u64("feeAmount2"), solanaWeb3_js.u64("protocolAmount"), solanaWeb3_js.i64("deadline"), ]) } } }, }; var routers = {... routers$2, ...routers$1}; function _optionalChain$2(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } const EXCHANGE_PROXIES = { 'arbitrum': { [Blockchains__default["default"].arbitrum.wrapped.address]: '0x7E655088214d0657251A51aDccE9109CFd23B5B5' }, 'avalanche': { [Blockchains__default["default"].avalanche.wrapped.address]: '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59' }, 'base': { [Blockchains__default["default"].base.wrapped.address]: '0xD1711710843B125a6a01FfDF9b95fDc3064BeF7A' }, 'bsc': { [Blockchains__default["default"].bsc.wrapped.address]: '0xeEb80d14abfB058AA78DE38813fe705c3e3b243E' }, 'ethereum': { [Blockchains__default["default"].ethereum.wrapped.address]: '0x298f4980525594b3b982779cf74ba76819708D43' }, 'fantom': { [Blockchains__default["default"].fantom.wrapped.address]: '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59' }, 'gnosis': { [Blockchains__default["default"].gnosis.wrapped.address]: '0x2d0a6275eaDa0d03226919ce6D93661E589B2d59' }, 'optimism': { [Blockchains__default["default"].optimism.wrapped.address]: '0x69594057e2C0224deb1180c7a5Df9ec9d5B611B5' }, 'polygon': { [Blockchains__default["default"].polygon.wrapped.address]: '0xaE59C9d3E055BdFAa583E169aA5Ebe395689476a' }, 'worldchain': { [Blockchains__default["default"].worldchain.wrapped.address]: '0x2CA727BC33915823e3D05fe043d310B8c5b2dC5b' }, 'solana': {} }; const getTransaction$3 = async({ paymentRoute, options })=> { let deadline = _optionalChain$2([options, 'optionalAccess', _ => _.deadline]) || Math.ceil(new Date())+(1800*1000); // 30 minutes in ms (default) const transaction = { blockchain: paymentRoute.blockchain, to: transactionAddress({ paymentRoute, options }), api: transactionApi({ paymentRoute, options }), method: transactionMethod({ paymentRoute, options }), params: await transactionParams({ paymentRoute, options, deadline }), value: transactionValue({ paymentRoute }) }; transaction.deadline = deadline; return transaction }; const transactionAddress = ({ paymentRoute, options })=> { if(paymentRoute.directTransfer && !paymentRoute.fee && !paymentRoute.fee2 && _optionalChain$2([options, 'optionalAccess', _2 => _2.wallet, 'optionalAccess', _3 => _3.name]) !== 'World App') { if(paymentRoute.toToken.address == Blockchains__default["default"][paymentRoute.blockchain].currency.address) { return paymentRoute.toAddress } else { return paymentRoute.toToken.address } } else { return routers$2[paymentRoute.blockchain].address } }; const transactionApi = ({ paymentRoute, options })=> { if(paymentRoute.directTransfer && !paymentRoute.fee && !paymentRoute.fee2 && _optionalChain$2([options, 'optionalAccess', _4 => _4.wallet, 'optionalAccess', _5 => _5.name]) !== 'World App') { if(paymentRoute.toToken.address == Blockchains__default["default"][paymentRoute.blockchain].currency.address) { return undefined } else { return Token__default["default"][paymentRoute.blockchain].DEFAULT } } else { return routers$2[paymentRoute.blockchain].api } }; const transactionMethod = ({ paymentRoute, options })=> { if(paymentRoute.directTransfer && !paymentRoute.fee && !paymentRoute.fee2 && _optionalChain$2([options, 'optionalAccess', _6 => _6.wallet, 'optionalAccess', _7 => _7.name]) !== 'World App') { if(paymentRoute.toToken.address == Blockchains__default["default"][paymentRoute.blockchain].currency.address) { return undefined } else { // standard token transfer return 'transfer' } } else { return 'pay' } }; const getExchangeType = ({ exchangeRoute, blockchain })=> { if( typeof exchangeRoute === 'undefined' ) { return 0 } if(exchangeRoute.exchange[blockchain].router.address === Blockchains__default["default"][blockchain].wrapped.address) { return 2 // push } else { return 1 // pull } }; const getExchangeCallData = ({ exchangeTransaction })=>{ const contract = new ethers.ethers.Contract(exchangeTransaction.to, exchangeTransaction.api); const method = exchangeTransaction.method; const params = exchangeTransaction.params; let contractMethod; let fragment; fragment = contract.interface.fragments.find((fragment) => { return( fragment.name == method && (fragment.inputs && params && typeof(params) === 'object' ? fragment.inputs.length == Object.keys(params).length : true) ) }); let paramsToEncode; if(fragment.inputs.length === 1 && fragment.inputs[0].type === 'tuple') { contractMethod = method; paramsToEncode = [params[fragment.inputs[0].name]]; } else { contractMethod = `${method}(${fragment.inputs.map((input)=>input.type).join(',')})`; paramsToEncode = fragment.inputs.map((input) => { if(input.type === 'tuple') { let tuple = {}; input.components.forEach((component, index)=>{ tuple[component.name] = params[input.name][index]; }); contractMethod = method; return tuple } else { return params[input.name] } }); } return contract.interface.encodeFunctionData(contractMethod, paramsToEncode) }; const getPermit2SignatureTransferNonce = async({ address, blockchain })=>{ const getBitmap = (address, word)=>web3Client.request({ blockchain: blockchain, address: Blockchains__default["default"][blockchain].permit2, api: [{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"AllowanceExpired","type":"error"},{"inputs":[],"name":"ExcessiveInvalidation","type":"error"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidContractSignature","type":"error"},{"inputs":[],"name":"InvalidNonce","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidSignatureLength","type":"error"},{"inputs":[],"name":"InvalidSigner","type":"error"},{"inputs":[],"name":"LengthMismatch","type":"error"},{"inputs":[{"internalType":"uint256","name":"signatureDeadline","type":"uint256"}],"name":"SignatureExpired","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint160","name":"amount","type":"uint160"},{"indexed":false,"internalType":"uint48","name":"expiration","type":"uint48"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"spender","type":"address"}],"name":"Lockdown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint48","name":"newNonce","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"oldNonce","type":"uint48"}],"name":"NonceInvalidation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint160","name":"amount","type":"uint160"},{"indexed":false,"internalType":"uint48","name":"expiration","type":"uint48"},{"indexed":false,"internalType":"uint48","name":"nonce","type":"uint48"}],"name":"Permit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"word","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"mask","type":"uint256"}],"name":"UnorderedNonceInvalidation","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"},{"internalType":"uint48","name":"nonce","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint48","name":"newNonce","type":"uint48"}],"name":"invalidateNonces","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wordPos","type":"uint256"},{"internalType":"uint256","name":"mask","type":"uint256"}],"name":"invalidateUnorderedNonces","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"internalType":"struct IAllowanceTransfer.TokenSpenderPair[]","name":"approvals","type":"tuple[]"}],"name":"lockdown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"nonceBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"},{"internalType":"uint48","name":"nonce","type":"uint48"}],"internalType":"struct IAllowanceTransfer.PermitDetails[]","name":"details","type":"tuple[]"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"sigDeadline","type":"uint256"}],"internalType":"struct IAllowanceTransfer.PermitBatch","name":"permitBatch","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"uint48","name":"expiration","type":"uint48"},{"internalType":"uint48","name":"nonce","type":"uint48"}],"internalType":"struct IAllowanceTransfer.PermitDetails","name":"details","type":"tuple"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"sigDeadline","type":"uint256"}],"internalType":"struct IAllowanceTransfer.PermitSingle","name":"permitSingle","type":"tuple"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions","name":"permitted","type":"tuple"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitTransferFrom","name":"permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails","name":"transferDetails","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permitTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitBatchTransferFrom","name":"permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails[]","name":"transferDetails","type":"tuple[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permitTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions","name":"permitted","type":"tuple"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitTransferFrom","name":"permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails","name":"transferDetails","type":"tuple"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypeString","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permitWitnessTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct ISignatureTransfer.TokenPermissions[]","name":"permitted","type":"tuple[]"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"internalType":"struct ISignatureTransfer.PermitBatchTransferFrom","name":"permit","type":"tuple"},{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"}],"internalType":"struct ISignatureTransfer.SignatureTransferDetails[]","name":"transferDetails","type":"tuple[]"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"witness","type":"bytes32"},{"internalType":"string","name":"witnessTypeString","type":"string"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"permitWitnessTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"address","name":"token","type":"address"}],"internalType":"struct IAllowanceTransfer.AllowanceTransferDetails[]","name":"transferDetails","type":"tuple[]"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint160","name":"amount","type":"uint160"},{"internalType":"address","name":"token","type":"address"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}], method: 'nonceBitmap', params: [address, word] }); const getFirstUnsetBit = (bitmap)=>{ for (let i = 0; i < 256; i++) { if (bitmap.shr(i).and(1).eq(0)) { return i } } return -1 }; function buildNonce(word, bitPos) { return ethers.ethers.BigNumber.from(word).mul(256).add(bitPos) } let word = 0; while(word < 1) { const bitmap = await getBitmap(address, word); if(bitmap.toString() != Blockchains__default["default"][blockchain].maxInt) { const bitPos = getFirstUnsetBit(bitmap); if (bitPos >= 0) { // Build and return the nonce const nonce = buildNonce(word, bitPos); return nonce } } word = word+1; } }; const transactionParams = async ({ paymentRoute, options, deadline })=> { if(paymentRoute.directTransfer && !paymentRoute.fee && !paymentRoute.fee2 && _optionalChain$2([options, 'optionalAccess', _8 => _8.wallet, 'optionalAccess', _9 => _9.name]) !== 'World App') { if(paymentRoute.toToken.address == Blockchains__default["default"][paymentRoute.blockchain].currency.address) { return undefined } else { // standard token transfer return [paymentRoute.toAddress, paymentRoute.toAmount] } } else { const exchangeRoute = paymentRoute.exchangeRoutes[0]; const exchangeType = getExchangeType({ exchangeRoute, blockchain: paymentRoute.blockchain }); const exchangeTransaction = !exchangeRoute ? undefined : await exchangeRoute.getTransaction({ account: routers$2[paymentRoute.blockchain].address, inputTokenPushed: exchangeType === 2 }); const exchangeCallData = !exchangeTransaction ? Blockchains__default["default"][paymentRoute.blockchain].zero : getExchangeCallData({ exchangeTransaction }); let exchangeAddress = Blockchains__default["default"][paymentRoute.blockchain].zero; if (exchangeRoute) { if( paymentRoute.blockchain === 'bsc' && exchangeRoute.exchange.name === 'pancakeswap_v3' && paymentRoute.toToken.address === Blockchains__default["default"][paymentRoute.blockchain].currency.address ) { // bsc pancakeswap_v3 requries smart router exchange address for converting and paying out BNB/NATIVE exchangeAddress = exchangeRoute.exchange[paymentRoute.blockchain].smartRouter.address; } else { // proxy exchange or exchange directly exchangeAddress = EXCHANGE_PROXIES[exchangeTransaction.blockchain][exchangeRoute.exchange[paymentRoute.blockchain].router.address] || exchangeRoute.exchange[paymentRoute.blockchain].router.address; } } let params; if(options && _optionalChain$2([options, 'optionalAccess', _10 => _10.wallet, 'optionalAccess', _11 => _11.name]) === 'World App' && paymentRoute.blockchain === 'worldchain'){ const permitDeadline = Math.floor(Date.now() / 1000) + 30 * 60; // 60 minutes in seconds (default) const nonce = await getPermit2SignatureTransferNonce({ blockchain: paymentRoute.blockchain, address: paymentRoute.fromAddress }); const permitTransfer = { permitted: { token: paymentRoute.fromToken.address, amount: paymentRoute.fromAmount.toString(), }, nonce: nonce.toString(), deadline: permitDeadline.toString(), }; params = { args: [ [ // payment paymentRoute.fromAmount.toString(), // amountIn paymentRoute.toAmount.toString(), // paymentAmount (paymentRoute.feeAmount || 0).toString(), // feeAmount (paymentRoute.feeAmount2 || 0).toString(), // feeAmount (paymentRoute.protocolFeeAmount || 0).toString(), // protocolAmount deadline.toString(), // deadline paymentRoute.fromToken.address, // tokenInAddress exchangeAddress, // exchangeAddress paymentRoute.toToken.address, // tokenOutAddress paymentRoute.toAddress, // paymentReceiverAddress paymentRoute.fee ? paymentRoute.fee.receiver : Blockchains__default["default"][paymentRoute.blockchain].zero, // feeReceiverAddress paymentRoute.fee2 ? paymentRoute.fee2.receiver : Blockchains__default["default"][paymentRoute.blockchain].zero, // feeReceiverAddress2 exchangeType, // exchangeType 0, // receiverType true, // permit2 exchangeCallData, // exchangeCallData '0x', // receiverCallData ], [ // permitTransferFromAndSignature [ // permitTransferFrom [ // permitted paymentRoute.fromToken.address, // token paymentRoute.fromAmount.toString() // amount ], nonce.toString(), // nonce permitDeadline.toString() // deadline ], "PERMIT2_SIGNATURE_PLACEHOLDER_0" ] ], permit2: { ...permitTransfer, spender: routers$2[paymentRoute.blockchain].address, }, }; } else { params = { payment: { amountIn: paymentRoute.fromAmount, paymentAmount: paymentRoute.toAmount, feeAmount: (paymentRoute.feeAmount || 0).toString(), feeAmount2: (paymentRoute.feeAmount2 || 0).toString(), protocolAmount: (paymentRoute.protocolFeeAmount || 0).toString(), tokenInAddress: paymentRoute.fromToken.address, exchangeAddress, tokenOutAddress: paymentRoute.toToken.address, paymentReceiverAddress: paymentRoute.toAddress, feeReceiverAddress: paymentRoute.fee ? paymentRoute.fee.receiver : Blockchains__default["default"][paymentRoute.blockchain].zero, feeReceiverAddress2: paymentRoute.fee2 ? paymentRoute.fee2.receiver : Blockchains__default["default"][paymentRoute.blockchain].zero, exchangeType: exchangeType, receiverType: 0, exchangeCallData: exchangeCallData, receiverCallData: Blockchains__default["default"][paymentRoute.blockchain].zero, deadline, } }; if(_optionalChain$2([options, 'optionalAccess', _12 => _12.signature])) { params = [ {...params.payment, permit2: true}, { // permitTransferFromAndSignature permitTransferFrom: { permitted: { token: paymentRoute.fromToken.address, amount: paymentRoute.fromAmount.toString(), }, nonce: options.signatureNonce, deadline: options.signatureDeadline }, signature: options.signature } ]; } } return params } }; const transactionValue = ({ paymentRoute })=> { if(paymentRoute.fromToken.address == Blockchains__default["default"][paymentRoute.blockchain].currency.address) { if(!paymentRoute.directTransfer) { return paymentRoute.fromAmount.toString() } else { // direct payment return paymentRoute.toAmount.toString() } } else { return ethers.ethers.BigNumber.from('0').toString() } }; function _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } const getRouterApprovalTransaction$1 = async({ paymentRoute, options })=> { return({ blockchain: paymentRoute.blockchain, to: paymentRoute.fromToken.address, api: Token__default["default"][paymentRoute.blockchain].DEFAULT, method: 'approve', params: [routers$2[paymentRoute.blockchain].address, (_optionalChain$1([options, 'optionalAccess', _ => _.amount]) || Blockchains__default["default"][paymentRoute.blockchain].maxInt)] }) }; const getPermit2ApprovalTransaction$1 = async({ paymentRoute, options })=> { return({ blockchain: paymentRoute.blockchain, to: paymentRoute.fromToken.address, api: Token