@avalabs/fusion-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +9 -0
- package/README.md +264 -0
- package/dist/_utils/chain.cjs +2 -0
- package/dist/_utils/chain.cjs.map +1 -0
- package/dist/_utils/chain.js +2 -0
- package/dist/_utils/chain.js.map +1 -0
- package/dist/_utils/math.cjs +2 -0
- package/dist/_utils/math.cjs.map +1 -0
- package/dist/_utils/math.js +2 -0
- package/dist/_utils/math.js.map +1 -0
- package/dist/_utils/merge-assets.cjs +2 -0
- package/dist/_utils/merge-assets.cjs.map +1 -0
- package/dist/_utils/merge-assets.js +2 -0
- package/dist/_utils/merge-assets.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.cjs +1 -0
- package/dist/constants.cjs +2 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +102 -0
- package/dist/constants.d.ts +102 -0
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -0
- package/dist/errors.cjs +2 -0
- package/dist/errors.cjs.map +1 -0
- package/dist/errors.d.cts +115 -0
- package/dist/errors.d.ts +115 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -0
- package/dist/mod.cjs +1 -0
- package/dist/mod.d.cts +19 -0
- package/dist/mod.d.ts +19 -0
- package/dist/mod.js +1 -0
- package/dist/quoter/_utils.cjs +2 -0
- package/dist/quoter/_utils.cjs.map +1 -0
- package/dist/quoter/_utils.js +2 -0
- package/dist/quoter/_utils.js.map +1 -0
- package/dist/quoter/constants.cjs +2 -0
- package/dist/quoter/constants.cjs.map +1 -0
- package/dist/quoter/constants.js +2 -0
- package/dist/quoter/constants.js.map +1 -0
- package/dist/quoter/quoter.cjs +2 -0
- package/dist/quoter/quoter.cjs.map +1 -0
- package/dist/quoter/quoter.d.cts +31 -0
- package/dist/quoter/quoter.d.ts +34 -0
- package/dist/quoter/quoter.js +2 -0
- package/dist/quoter/quoter.js.map +1 -0
- package/dist/transfer-manager.cjs +2 -0
- package/dist/transfer-manager.cjs.map +1 -0
- package/dist/transfer-manager.d.cts +17 -0
- package/dist/transfer-manager.d.ts +17 -0
- package/dist/transfer-manager.js +2 -0
- package/dist/transfer-manager.js.map +1 -0
- package/dist/transfer-service/_abis.cjs +2 -0
- package/dist/transfer-service/_abis.cjs.map +1 -0
- package/dist/transfer-service/_abis.js +2 -0
- package/dist/transfer-service/_abis.js.map +1 -0
- package/dist/transfer-service/_evm-gas.cjs +2 -0
- package/dist/transfer-service/_evm-gas.cjs.map +1 -0
- package/dist/transfer-service/_evm-gas.js +2 -0
- package/dist/transfer-service/_evm-gas.js.map +1 -0
- package/dist/transfer-service/_tracking-utilities.cjs +2 -0
- package/dist/transfer-service/_tracking-utilities.cjs.map +1 -0
- package/dist/transfer-service/_tracking-utilities.js +2 -0
- package/dist/transfer-service/_tracking-utilities.js.map +1 -0
- package/dist/transfer-service/_transfer-utilities.cjs +2 -0
- package/dist/transfer-service/_transfer-utilities.cjs.map +1 -0
- package/dist/transfer-service/_transfer-utilities.js +2 -0
- package/dist/transfer-service/_transfer-utilities.js.map +1 -0
- package/dist/transfer-service/_utils.cjs +2 -0
- package/dist/transfer-service/_utils.cjs.map +1 -0
- package/dist/transfer-service/_utils.js +2 -0
- package/dist/transfer-service/_utils.js.map +1 -0
- package/dist/transfer-service/_warden-config-schema.cjs +2 -0
- package/dist/transfer-service/_warden-config-schema.cjs.map +1 -0
- package/dist/transfer-service/_warden-config-schema.js +2 -0
- package/dist/transfer-service/_warden-config-schema.js.map +1 -0
- package/dist/transfer-service/_warden-config.cjs +2 -0
- package/dist/transfer-service/_warden-config.cjs.map +1 -0
- package/dist/transfer-service/_warden-config.js +2 -0
- package/dist/transfer-service/_warden-config.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_constants.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_constants.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_constants.js +2 -0
- package/dist/transfer-service/avalanche-evm/_constants.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/analyze-support.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/estimate-native-fee.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-assets.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-assets.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-minimum-transfer-amount.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/get-supported-chains.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/stream-quotes.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/track-transfer.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.js +2 -0
- package/dist/transfer-service/avalanche-evm/_handlers/transfer-asset.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/fee.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/fee.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/fee.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/fee.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/get-config.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/get-config.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/get-config.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/get-config.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/transfer-data.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/transfer-data.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/transfer-data.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/transfer-data.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/unwrap.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/unwrap.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/unwrap.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/unwrap.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/validations.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/validations.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/validations.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/validations.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/wrap.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/wrap.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/_utils/wrap.js +2 -0
- package/dist/transfer-service/avalanche-evm/_utils/wrap.js.map +1 -0
- package/dist/transfer-service/avalanche-evm/avalanche-evm-service.cjs +2 -0
- package/dist/transfer-service/avalanche-evm/avalanche-evm-service.cjs.map +1 -0
- package/dist/transfer-service/avalanche-evm/avalanche-evm-service.js +2 -0
- package/dist/transfer-service/avalanche-evm/avalanche-evm-service.js.map +1 -0
- package/dist/transfer-service/fetch-utilities.cjs +4 -0
- package/dist/transfer-service/fetch-utilities.cjs.map +1 -0
- package/dist/transfer-service/fetch-utilities.js +4 -0
- package/dist/transfer-service/fetch-utilities.js.map +1 -0
- package/dist/transfer-service/lombard/_schema.cjs +2 -0
- package/dist/transfer-service/lombard/_schema.cjs.map +1 -0
- package/dist/transfer-service/lombard/_schema.js +2 -0
- package/dist/transfer-service/lombard/_schema.js.map +1 -0
- package/dist/transfer-service/lombard/_utils/asset.cjs +2 -0
- package/dist/transfer-service/lombard/_utils/asset.cjs.map +1 -0
- package/dist/transfer-service/lombard/_utils/asset.js +2 -0
- package/dist/transfer-service/lombard/_utils/asset.js.map +1 -0
- package/dist/transfer-service/lombard/_utils/chain.cjs +2 -0
- package/dist/transfer-service/lombard/_utils/chain.cjs.map +1 -0
- package/dist/transfer-service/lombard/_utils/chain.js +2 -0
- package/dist/transfer-service/lombard/_utils/chain.js.map +1 -0
- package/dist/transfer-service/lombard/_utils/fee.cjs +2 -0
- package/dist/transfer-service/lombard/_utils/fee.cjs.map +1 -0
- package/dist/transfer-service/lombard/_utils/fee.js +2 -0
- package/dist/transfer-service/lombard/_utils/fee.js.map +1 -0
- package/dist/transfer-service/lombard/_utils/metadata.cjs +2 -0
- package/dist/transfer-service/lombard/_utils/metadata.cjs.map +1 -0
- package/dist/transfer-service/lombard/_utils/metadata.js +2 -0
- package/dist/transfer-service/lombard/_utils/metadata.js.map +1 -0
- package/dist/transfer-service/lombard/_utils/utxo.cjs +2 -0
- package/dist/transfer-service/lombard/_utils/utxo.cjs.map +1 -0
- package/dist/transfer-service/lombard/_utils/utxo.js +2 -0
- package/dist/transfer-service/lombard/_utils/utxo.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/analyze-support.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/estimate-native-fee.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-assets.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/get-minimum-transfer-amount.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/stream-quotes.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/track-transfer.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb/_handlers/transfer-asset.js.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb-service.cjs +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb-service.cjs.map +1 -0
- package/dist/transfer-service/lombard/btc-to-btcb-service.js +2 -0
- package/dist/transfer-service/lombard/btc-to-btcb-service.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/analyze-support.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/estimate-native-fee.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/get-assets.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/stream-quotes.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/track-transfer.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc/_handlers/transfer-asset.js.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc-service.cjs +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc-service.cjs.map +1 -0
- package/dist/transfer-service/lombard/btcb-to-btc-service.js +2 -0
- package/dist/transfer-service/lombard/btcb-to-btc-service.js.map +1 -0
- package/dist/transfer-service/lombard/constants.cjs +2 -0
- package/dist/transfer-service/lombard/constants.cjs.map +1 -0
- package/dist/transfer-service/lombard/constants.js +2 -0
- package/dist/transfer-service/lombard/constants.js.map +1 -0
- package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs +2 -0
- package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.cjs.map +1 -0
- package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js +2 -0
- package/dist/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.js.map +1 -0
- package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs +2 -0
- package/dist/transfer-service/markr/_abis/swap-wrapper-abi.cjs.map +1 -0
- package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js +2 -0
- package/dist/transfer-service/markr/_abis/swap-wrapper-abi.js.map +1 -0
- package/dist/transfer-service/markr/_api.cjs +2 -0
- package/dist/transfer-service/markr/_api.cjs.map +1 -0
- package/dist/transfer-service/markr/_api.js +2 -0
- package/dist/transfer-service/markr/_api.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/analyze-support.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/analyze-support.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/analyze-support.js +2 -0
- package/dist/transfer-service/markr/_handlers/analyze-support.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/estimate-native-fee.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/estimate-native-fee.js +2 -0
- package/dist/transfer-service/markr/_handlers/estimate-native-fee.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/get-assets.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/get-assets.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/get-assets.js +2 -0
- package/dist/transfer-service/markr/_handlers/get-assets.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js +2 -0
- package/dist/transfer-service/markr/_handlers/get-minimum-transfer-amount.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/stream-quotes.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/stream-quotes.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/stream-quotes.js +2 -0
- package/dist/transfer-service/markr/_handlers/stream-quotes.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/track-transfer.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/track-transfer.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/track-transfer.js +2 -0
- package/dist/transfer-service/markr/_handlers/track-transfer.js.map +1 -0
- package/dist/transfer-service/markr/_handlers/transfer-asset.cjs +2 -0
- package/dist/transfer-service/markr/_handlers/transfer-asset.cjs.map +1 -0
- package/dist/transfer-service/markr/_handlers/transfer-asset.js +2 -0
- package/dist/transfer-service/markr/_handlers/transfer-asset.js.map +1 -0
- package/dist/transfer-service/markr/_schema.cjs +2 -0
- package/dist/transfer-service/markr/_schema.cjs.map +1 -0
- package/dist/transfer-service/markr/_schema.js +2 -0
- package/dist/transfer-service/markr/_schema.js.map +1 -0
- package/dist/transfer-service/markr/_type-guards.cjs +2 -0
- package/dist/transfer-service/markr/_type-guards.cjs.map +1 -0
- package/dist/transfer-service/markr/_type-guards.js +2 -0
- package/dist/transfer-service/markr/_type-guards.js.map +1 -0
- package/dist/transfer-service/markr/_utils.cjs +2 -0
- package/dist/transfer-service/markr/_utils.cjs.map +1 -0
- package/dist/transfer-service/markr/_utils.js +2 -0
- package/dist/transfer-service/markr/_utils.js.map +1 -0
- package/dist/transfer-service/markr/constants.cjs +2 -0
- package/dist/transfer-service/markr/constants.cjs.map +1 -0
- package/dist/transfer-service/markr/constants.js +2 -0
- package/dist/transfer-service/markr/constants.js.map +1 -0
- package/dist/transfer-service/markr/markr-service.cjs +2 -0
- package/dist/transfer-service/markr/markr-service.cjs.map +1 -0
- package/dist/transfer-service/markr/markr-service.js +2 -0
- package/dist/transfer-service/markr/markr-service.js.map +1 -0
- package/dist/transfer-service/service-schemas.cjs +2 -0
- package/dist/transfer-service/service-schemas.cjs.map +1 -0
- package/dist/transfer-service/service-schemas.js +2 -0
- package/dist/transfer-service/service-schemas.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/analyze-support.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/estimate-native-fee.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-assets.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/get-minimum-transfer-amount.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/stream-quotes.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/track-transfer.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_handlers/transfer-asset.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_utils.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/_utils.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/_utils.js +2 -0
- package/dist/transfer-service/wrap-unwrap/_utils.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/constants.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/constants.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/constants.js +2 -0
- package/dist/transfer-service/wrap-unwrap/constants.js.map +1 -0
- package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs +2 -0
- package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.cjs.map +1 -0
- package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js +2 -0
- package/dist/transfer-service/wrap-unwrap/wrap-unwrap-service.js.map +1 -0
- package/dist/type-guards.cjs +2 -0
- package/dist/type-guards.cjs.map +1 -0
- package/dist/type-guards.d.cts +16 -0
- package/dist/type-guards.d.ts +16 -0
- package/dist/type-guards.js +2 -0
- package/dist/type-guards.js.map +1 -0
- package/dist/types/asset.d.cts +61 -0
- package/dist/types/asset.d.ts +61 -0
- package/dist/types/bitcoin.d.cts +66 -0
- package/dist/types/bitcoin.d.ts +66 -0
- package/dist/types/caip.d.cts +30 -0
- package/dist/types/caip.d.ts +30 -0
- package/dist/types/chain.d.cts +17 -0
- package/dist/types/chain.d.ts +17 -0
- package/dist/types/fee.d.cts +13 -0
- package/dist/types/fee.d.ts +13 -0
- package/dist/types/quote.d.cts +140 -0
- package/dist/types/quote.d.ts +140 -0
- package/dist/types/service.d.cts +224 -0
- package/dist/types/service.d.ts +224 -0
- package/dist/types/signer.d.cts +50 -0
- package/dist/types/signer.d.ts +50 -0
- package/dist/types/transfer-manager.d.cts +115 -0
- package/dist/types/transfer-manager.d.ts +115 -0
- package/dist/types/transfer.d.cts +107 -0
- package/dist/types/transfer.d.ts +107 -0
- package/dist/types/utility-types.d.cts +21 -0
- package/dist/types/utility-types.d.ts +21 -0
- package/dist/utils/bitcoin-address.cjs +2 -0
- package/dist/utils/bitcoin-address.cjs.map +1 -0
- package/dist/utils/bitcoin-address.js +2 -0
- package/dist/utils/bitcoin-address.js.map +1 -0
- package/dist/utils/caip.cjs +2 -0
- package/dist/utils/caip.cjs.map +1 -0
- package/dist/utils/caip.d.cts +49 -0
- package/dist/utils/caip.d.ts +49 -0
- package/dist/utils/caip.js +2 -0
- package/dist/utils/caip.js.map +1 -0
- package/dist/utils/evm-address.cjs +2 -0
- package/dist/utils/evm-address.cjs.map +1 -0
- package/dist/utils/evm-address.js +2 -0
- package/dist/utils/evm-address.js.map +1 -0
- package/dist/utils/quote-fees.cjs +2 -0
- package/dist/utils/quote-fees.cjs.map +1 -0
- package/dist/utils/quote-fees.js +2 -0
- package/dist/utils/quote-fees.js.map +1 -0
- package/dist/utils/sol-address.cjs +2 -0
- package/dist/utils/sol-address.cjs.map +1 -0
- package/dist/utils/sol-address.js +2 -0
- package/dist/utils/sol-address.js.map +1 -0
- package/dist/utils/solana-transaction.d.cts +15 -0
- package/dist/utils/solana-transaction.d.ts +17 -0
- package/dist/utils/transfer-utils.cjs +2 -0
- package/dist/utils/transfer-utils.cjs.map +1 -0
- package/dist/utils/transfer-utils.d.cts +8 -0
- package/dist/utils/transfer-utils.d.ts +8 -0
- package/dist/utils/transfer-utils.js +2 -0
- package/dist/utils/transfer-utils.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-chain-swap-wrapper-abi.js","names":[],"sources":["../../../../src/transfer-service/markr/_abis/cross-chain-swap-wrapper-abi.ts"],"sourcesContent":["export const MARKR_CROSS_CHAIN_SWAP_WRAPPER_ABI = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_ccipRouter',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_swapWrapper',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_usdcToken',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_treasury',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'AddressEmptyCode',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'AddressInsufficientBalance',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'timeRemaining',\n type: 'uint256',\n },\n ],\n name: 'CancellationTooEarly',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'ChainNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EnforcedPause',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'key',\n type: 'bytes32',\n },\n ],\n name: 'EnumerableMapNonexistentKey',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpectedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FailedInnerCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageAlreadyProcessed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageNotFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MissingDestinationGasLimit',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'NoTrustedRemote',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OnlySelf',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OnlySwapUser',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'OwnableInvalidOwner',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'OwnableUnauthorizedAccount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReentrancyGuardReentrantCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'SafeERC20FailedOperation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SwapExecutionFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'SwapNotPending',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TransactionExpired',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'caller',\n type: 'address',\n },\n ],\n name: 'UnauthorizedCaller',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnauthorizedRelayer',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAmount',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n ],\n name: 'DirectTransferCompleted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'reason',\n type: 'bytes',\n },\n ],\n name: 'MessageFailed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'MessageProcessed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'MessageRecovered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'reason',\n type: 'string',\n },\n ],\n name: 'MessageRejected',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes',\n name: 'reason',\n type: 'bytes',\n },\n ],\n name: 'SwapExecutionAttemptFailed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n ],\n name: 'SwapPending',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n inputs: [],\n name: 'acceptOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'addWhitelistedRelayer',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'cancelPendingSwap',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'uint64',\n name: 'sourceChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'bytes',\n name: 'sender',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n internalType: 'struct Client.EVMTokenAmount[]',\n name: 'destTokenAmounts',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct Client.Any2EVMMessage',\n name: 'message',\n type: 'tuple',\n },\n ],\n name: 'ccipReceive',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'destinationChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minUsdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'sourceSwapTarget',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'sourceSwapCallData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'baseGasLimit',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'destinationChainSwapGasLimit',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'isDestinationDirectTransfer',\n type: 'bool',\n },\n ],\n name: 'crossChainSwap',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'destinationChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'gasLimit',\n type: 'uint256',\n },\n ],\n name: 'estimateCCIPFee',\n outputs: [\n {\n internalType: 'uint256',\n name: 'totalFee',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'callData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n ],\n name: 'executeSwap',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'getPendingSwap',\n outputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getRouter',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getSwapWrapper',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getTreasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'getTrustedRemote',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getUSDCToken',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'i_ccipRouter',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n ],\n name: 'isChainSupported',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'isRelayerWhitelisted',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingOwner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n name: 'pendingSwaps',\n outputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'usdcAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'timestamp',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n {\n internalType: 'uint64',\n name: 'sourceChainSelector',\n type: 'uint64',\n },\n {\n internalType: 'bytes',\n name: 'sender',\n type: 'bytes',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n components: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n internalType: 'struct Client.EVMTokenAmount[]',\n name: 'destTokenAmounts',\n type: 'tuple[]',\n },\n ],\n internalType: 'struct Client.Any2EVMMessage',\n name: 'message',\n type: 'tuple',\n },\n ],\n name: 'processMessage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'relayer',\n type: 'address',\n },\n ],\n name: 'removeWhitelistedRelayer',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'rescueNative',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'rescueTokens',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'messageId',\n type: 'bytes32',\n },\n ],\n name: 'retryFailedMessage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_swapWrapper',\n type: 'address',\n },\n ],\n name: 'setSwapWrapper',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_treasury',\n type: 'address',\n },\n ],\n name: 'setTreasury',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: 'chainSelector',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'remoteAddress',\n type: 'address',\n },\n ],\n name: 'setTrustedRemote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n name: 'supportedChains',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [],\n name: 'swapWrapper',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'treasury',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n name: 'trustedRemotes',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'usdcToken',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n name: 'whitelistedRelayers',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n"],"mappings":"AAAA,MAAa,EAAqC,CAChD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,cACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,SACd,KAAM,SACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,SACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,cACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,wBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,sBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,aAAc,iCACd,KAAM,mBACN,KAAM,UACP,CACF,CACD,aAAc,+BACd,KAAM,UACN,KAAM,QACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,2BACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,mBACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,qBACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,+BACN,KAAM,UACP,CACD,CACE,aAAc,OACd,KAAM,8BACN,KAAM,OACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,2BACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,WACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,mBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACF,CACD,KAAM,mBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,SACd,KAAM,sBACN,KAAM,SACP,CACD,CACE,aAAc,QACd,KAAM,SACN,KAAM,QACP,CACD,CACE,aAAc,QACd,KAAM,OACN,KAAM,QACP,CACD,CACE,WAAY,CACV,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,aAAc,iCACd,KAAM,mBACN,KAAM,UACP,CACF,CACD,aAAc,+BACd,KAAM,UACN,KAAM,QACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,iBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,cACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,gBACN,KAAM,SACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,cACN,KAAM,SACP,CACF,CACD,KAAM,oBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,SACd,KAAM,GACN,KAAM,SACP,CACF,CACD,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,gBAAiB,UACjB,KAAM,UACP,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=[{inputs:[{internalType:`address`,name:`_protocolFeeCollector`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`AddressEmptyCode`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`AddressInsufficientBalance`,type:`error`},{inputs:[],name:`EmptyCallData`,type:`error`},{inputs:[],name:`EnforcedPause`,type:`error`},{inputs:[],name:`ExpectedPause`,type:`error`},{inputs:[],name:`FailedInnerCall`,type:`error`},{inputs:[],name:`FeesExceedAmount`,type:`error`},{inputs:[],name:`IncorrectMsgValue`,type:`error`},{inputs:[],name:`InvalidToken`,type:`error`},{inputs:[],name:`NativeTransferFailed`,type:`error`},{inputs:[],name:`NotAuthorized`,type:`error`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`OwnableInvalidOwner`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`OwnableUnauthorizedAccount`,type:`error`},{inputs:[],name:`PartnerAlreadyRegistered`,type:`error`},{inputs:[],name:`PartnerFeeTooHigh`,type:`error`},{inputs:[],name:`ProtocolFeeTooHigh`,type:`error`},{inputs:[],name:`ReentrancyGuardReentrantCall`,type:`error`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`SafeERC20FailedOperation`,type:`error`},{inputs:[],name:`SameToken`,type:`error`},{inputs:[],name:`SlippageTooHigh`,type:`error`},{inputs:[],name:`TargetAlreadyWhitelisted`,type:`error`},{inputs:[],name:`TargetCallFailed`,type:`error`},{inputs:[],name:`TargetHasNoCode`,type:`error`},{inputs:[],name:`TargetNotWhitelisted`,type:`error`},{inputs:[],name:`TransactionExpired`,type:`error`},{inputs:[],name:`UnknownPartner`,type:`error`},{inputs:[],name:`UnsupportedToken`,type:`error`},{inputs:[],name:`UnsupportedTokenOut`,type:`error`},{inputs:[],name:`ZeroAddress`,type:`error`},{inputs:[],name:`ZeroAmount`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`LeftoverDetected`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`newUpdater`,type:`address`}],name:`PartnerAuthorizedUpdaterUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`newCollector`,type:`address`}],name:`PartnerFeeCollectorUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`uint256`,name:`newBps`,type:`uint256`}],name:`PartnerFeeUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`PartnerFeesDistributed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`authorizedUpdater`,type:`address`},{indexed:!1,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`uint256`,name:`bps`,type:`uint256`}],name:`PartnerRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`oldCollector`,type:`address`},{indexed:!1,internalType:`address`,name:`newCollector`,type:`address`}],name:`ProtocolFeeCollectorUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newBps`,type:`uint256`}],name:`ProtocolFeeUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`ProtocolFeesDistributed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenIn`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountIn`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`SwapExecuted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`target`,type:`address`}],name:`TargetRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`target`,type:`address`}],name:`TargetWhitelisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`token`,type:`address`},{indexed:!1,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`TokensRescued`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`MAX_PARTNER_FEE_BPS`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`MAX_PROTOCOL_FEE_BPS`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isTargetAllowed`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`partners`,outputs:[{internalType:`address`,name:`partnerFeeCollector`,type:`address`},{internalType:`address`,name:`authorizedUpdater`,type:`address`},{internalType:`uint256`,name:`partnerFeeBps`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFeeBps`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFeeCollector`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`authorizedUpdater`,type:`address`},{internalType:`address`,name:`feeCollector`,type:`address`},{internalType:`uint256`,name:`feeBps`,type:`uint256`}],name:`registerPartner`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`removeTarget`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`}],name:`rescueNative`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`address`,name:`to`,type:`address`}],name:`rescueTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`},{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`bytes`,name:`callData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`swap`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`newUpdater`,type:`address`}],name:`updatePartnerAuthorizedUpdater`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`newFeeBps`,type:`uint256`}],name:`updatePartnerFeeBps`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`newCollector`,type:`address`}],name:`updatePartnerFeeCollector`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newFeeBps`,type:`uint256`}],name:`updateProtocolFeeBps`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newCollector`,type:`address`}],name:`updateProtocolFeeCollector`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`whitelistTarget`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}];exports.MARKR_SWAP_WRAPPER_ABI=e;
|
|
2
|
+
//# sourceMappingURL=swap-wrapper-abi.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-wrapper-abi.cjs","names":[],"sources":["../../../../src/transfer-service/markr/_abis/swap-wrapper-abi.ts"],"sourcesContent":["export const MARKR_SWAP_WRAPPER_ABI = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_protocolFeeCollector',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'AddressEmptyCode',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'AddressInsufficientBalance',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EmptyCallData',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EnforcedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpectedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FailedInnerCall',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FeesExceedAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'IncorrectMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NativeTransferFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAuthorized',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'OwnableInvalidOwner',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'OwnableUnauthorizedAccount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PartnerAlreadyRegistered',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PartnerFeeTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ProtocolFeeTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReentrancyGuardReentrantCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'SafeERC20FailedOperation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SameToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SlippageTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetAlreadyWhitelisted',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetCallFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetHasNoCode',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetNotWhitelisted',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TransactionExpired',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnknownPartner',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnsupportedToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnsupportedTokenOut',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAmount',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'LeftoverDetected',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newUpdater',\n type: 'address',\n },\n ],\n name: 'PartnerAuthorizedUpdaterUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'PartnerFeeCollectorUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'newBps',\n type: 'uint256',\n },\n ],\n name: 'PartnerFeeUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'PartnerFeesDistributed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'bps',\n type: 'uint256',\n },\n ],\n name: 'PartnerRegistered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'oldCollector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'ProtocolFeeCollectorUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'newBps',\n type: 'uint256',\n },\n ],\n name: 'ProtocolFeeUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'ProtocolFeesDistributed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'SwapExecuted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'TargetRemoved',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'TargetWhitelisted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'TokensRescued',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_PARTNER_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_PROTOCOL_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acceptOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n name: 'isTargetAllowed',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n name: 'partners',\n outputs: [\n {\n internalType: 'address',\n name: 'partnerFeeCollector',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'partnerFeeBps',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingOwner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'protocolFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'protocolFeeCollector',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'feeCollector',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'registerPartner',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'removeTarget',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'rescueNative',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'rescueTokens',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'callData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'recipient',\n type: 'address',\n },\n ],\n name: 'swap',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'newUpdater',\n type: 'address',\n },\n ],\n name: 'updatePartnerAuthorizedUpdater',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'newFeeBps',\n type: 'uint256',\n },\n ],\n name: 'updatePartnerFeeBps',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'updatePartnerFeeCollector',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newFeeBps',\n type: 'uint256',\n },\n ],\n name: 'updateProtocolFeeBps',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'updateProtocolFeeCollector',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'whitelistTarget',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n"],"mappings":"AAAA,MAAa,EAAyB,CACpC,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,wBACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,kCACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,SACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,eACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,sBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,WACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,OACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,gBAAiB,UACjB,KAAM,UACP,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=[{inputs:[{internalType:`address`,name:`_protocolFeeCollector`,type:`address`}],stateMutability:`nonpayable`,type:`constructor`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`AddressEmptyCode`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`AddressInsufficientBalance`,type:`error`},{inputs:[],name:`EmptyCallData`,type:`error`},{inputs:[],name:`EnforcedPause`,type:`error`},{inputs:[],name:`ExpectedPause`,type:`error`},{inputs:[],name:`FailedInnerCall`,type:`error`},{inputs:[],name:`FeesExceedAmount`,type:`error`},{inputs:[],name:`IncorrectMsgValue`,type:`error`},{inputs:[],name:`InvalidToken`,type:`error`},{inputs:[],name:`NativeTransferFailed`,type:`error`},{inputs:[],name:`NotAuthorized`,type:`error`},{inputs:[{internalType:`address`,name:`owner`,type:`address`}],name:`OwnableInvalidOwner`,type:`error`},{inputs:[{internalType:`address`,name:`account`,type:`address`}],name:`OwnableUnauthorizedAccount`,type:`error`},{inputs:[],name:`PartnerAlreadyRegistered`,type:`error`},{inputs:[],name:`PartnerFeeTooHigh`,type:`error`},{inputs:[],name:`ProtocolFeeTooHigh`,type:`error`},{inputs:[],name:`ReentrancyGuardReentrantCall`,type:`error`},{inputs:[{internalType:`address`,name:`token`,type:`address`}],name:`SafeERC20FailedOperation`,type:`error`},{inputs:[],name:`SameToken`,type:`error`},{inputs:[],name:`SlippageTooHigh`,type:`error`},{inputs:[],name:`TargetAlreadyWhitelisted`,type:`error`},{inputs:[],name:`TargetCallFailed`,type:`error`},{inputs:[],name:`TargetHasNoCode`,type:`error`},{inputs:[],name:`TargetNotWhitelisted`,type:`error`},{inputs:[],name:`TransactionExpired`,type:`error`},{inputs:[],name:`UnknownPartner`,type:`error`},{inputs:[],name:`UnsupportedToken`,type:`error`},{inputs:[],name:`UnsupportedTokenOut`,type:`error`},{inputs:[],name:`ZeroAddress`,type:`error`},{inputs:[],name:`ZeroAmount`,type:`error`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`token`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`LeftoverDetected`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferStarted`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`address`,name:`previousOwner`,type:`address`},{indexed:!0,internalType:`address`,name:`newOwner`,type:`address`}],name:`OwnershipTransferred`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`newUpdater`,type:`address`}],name:`PartnerAuthorizedUpdaterUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`newCollector`,type:`address`}],name:`PartnerFeeCollectorUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`uint256`,name:`newBps`,type:`uint256`}],name:`PartnerFeeUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`PartnerFeesDistributed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!1,internalType:`address`,name:`authorizedUpdater`,type:`address`},{indexed:!1,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`uint256`,name:`bps`,type:`uint256`}],name:`PartnerRegistered`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Paused`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`oldCollector`,type:`address`},{indexed:!1,internalType:`address`,name:`newCollector`,type:`address`}],name:`ProtocolFeeCollectorUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`uint256`,name:`newBps`,type:`uint256`}],name:`ProtocolFeeUpdated`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`collector`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`ProtocolFeesDistributed`,type:`event`},{anonymous:!1,inputs:[{indexed:!0,internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{indexed:!0,internalType:`address`,name:`user`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenIn`,type:`address`},{indexed:!1,internalType:`address`,name:`tokenOut`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amountIn`,type:`uint256`},{indexed:!1,internalType:`uint256`,name:`amountOut`,type:`uint256`}],name:`SwapExecuted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`target`,type:`address`}],name:`TargetRemoved`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`target`,type:`address`}],name:`TargetWhitelisted`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`token`,type:`address`},{indexed:!1,internalType:`address`,name:`to`,type:`address`},{indexed:!1,internalType:`uint256`,name:`amount`,type:`uint256`}],name:`TokensRescued`,type:`event`},{anonymous:!1,inputs:[{indexed:!1,internalType:`address`,name:`account`,type:`address`}],name:`Unpaused`,type:`event`},{inputs:[],name:`MAX_PARTNER_FEE_BPS`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`MAX_PROTOCOL_FEE_BPS`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`acceptOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:``,type:`address`}],name:`isTargetAllowed`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`owner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:``,type:`bytes32`}],name:`partners`,outputs:[{internalType:`address`,name:`partnerFeeCollector`,type:`address`},{internalType:`address`,name:`authorizedUpdater`,type:`address`},{internalType:`uint256`,name:`partnerFeeBps`,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`paused`,outputs:[{internalType:`bool`,name:``,type:`bool`}],stateMutability:`view`,type:`function`},{inputs:[],name:`pendingOwner`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFeeBps`,outputs:[{internalType:`uint256`,name:``,type:`uint256`}],stateMutability:`view`,type:`function`},{inputs:[],name:`protocolFeeCollector`,outputs:[{internalType:`address`,name:``,type:`address`}],stateMutability:`view`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`authorizedUpdater`,type:`address`},{internalType:`address`,name:`feeCollector`,type:`address`},{internalType:`uint256`,name:`feeBps`,type:`uint256`}],name:`registerPartner`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`removeTarget`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`renounceOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`to`,type:`address`}],name:`rescueNative`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`token`,type:`address`},{internalType:`address`,name:`to`,type:`address`}],name:`rescueTokens`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`},{internalType:`address`,name:`tokenIn`,type:`address`},{internalType:`address`,name:`tokenOut`,type:`address`},{internalType:`uint256`,name:`amountIn`,type:`uint256`},{internalType:`uint256`,name:`minAmountOut`,type:`uint256`},{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`bytes`,name:`callData`,type:`bytes`},{internalType:`uint256`,name:`deadline`,type:`uint256`},{internalType:`address`,name:`recipient`,type:`address`}],name:`swap`,outputs:[],stateMutability:`payable`,type:`function`},{inputs:[{internalType:`address`,name:`newOwner`,type:`address`}],name:`transferOwnership`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[],name:`unpause`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`newUpdater`,type:`address`}],name:`updatePartnerAuthorizedUpdater`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`uint256`,name:`newFeeBps`,type:`uint256`}],name:`updatePartnerFeeBps`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`bytes32`,name:`partnerId`,type:`bytes32`},{internalType:`address`,name:`newCollector`,type:`address`}],name:`updatePartnerFeeCollector`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`uint256`,name:`newFeeBps`,type:`uint256`}],name:`updateProtocolFeeBps`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`newCollector`,type:`address`}],name:`updateProtocolFeeCollector`,outputs:[],stateMutability:`nonpayable`,type:`function`},{inputs:[{internalType:`address`,name:`target`,type:`address`}],name:`whitelistTarget`,outputs:[],stateMutability:`nonpayable`,type:`function`},{stateMutability:`payable`,type:`receive`}];export{e as MARKR_SWAP_WRAPPER_ABI};
|
|
2
|
+
//# sourceMappingURL=swap-wrapper-abi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-wrapper-abi.js","names":[],"sources":["../../../../src/transfer-service/markr/_abis/swap-wrapper-abi.ts"],"sourcesContent":["export const MARKR_SWAP_WRAPPER_ABI = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_protocolFeeCollector',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'AddressEmptyCode',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'AddressInsufficientBalance',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EmptyCallData',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EnforcedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpectedPause',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FailedInnerCall',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FeesExceedAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'IncorrectMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NativeTransferFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAuthorized',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'OwnableInvalidOwner',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'OwnableUnauthorizedAccount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PartnerAlreadyRegistered',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PartnerFeeTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ProtocolFeeTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReentrancyGuardReentrantCall',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'SafeERC20FailedOperation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SameToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SlippageTooHigh',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetAlreadyWhitelisted',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetCallFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetHasNoCode',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetNotWhitelisted',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TransactionExpired',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnknownPartner',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnsupportedToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'UnsupportedTokenOut',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAmount',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'LeftoverDetected',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferStarted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newUpdater',\n type: 'address',\n },\n ],\n name: 'PartnerAuthorizedUpdaterUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'PartnerFeeCollectorUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'newBps',\n type: 'uint256',\n },\n ],\n name: 'PartnerFeeUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'PartnerFeesDistributed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'bps',\n type: 'uint256',\n },\n ],\n name: 'PartnerRegistered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'oldCollector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'ProtocolFeeCollectorUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'newBps',\n type: 'uint256',\n },\n ],\n name: 'ProtocolFeeUpdated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'collector',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'ProtocolFeesDistributed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amountOut',\n type: 'uint256',\n },\n ],\n name: 'SwapExecuted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'TargetRemoved',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'TargetWhitelisted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'TokensRescued',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAX_PARTNER_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'MAX_PROTOCOL_FEE_BPS',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'acceptOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n name: 'isTargetAllowed',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n name: 'partners',\n outputs: [\n {\n internalType: 'address',\n name: 'partnerFeeCollector',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'partnerFeeBps',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingOwner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'protocolFeeBps',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'protocolFeeCollector',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'authorizedUpdater',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'feeCollector',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'feeBps',\n type: 'uint256',\n },\n ],\n name: 'registerPartner',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'removeTarget',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'rescueNative',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'rescueTokens',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenIn',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenOut',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amountIn',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmountOut',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: 'callData',\n type: 'bytes',\n },\n {\n internalType: 'uint256',\n name: 'deadline',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'recipient',\n type: 'address',\n },\n ],\n name: 'swap',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'newUpdater',\n type: 'address',\n },\n ],\n name: 'updatePartnerAuthorizedUpdater',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'newFeeBps',\n type: 'uint256',\n },\n ],\n name: 'updatePartnerFeeBps',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'partnerId',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'updatePartnerFeeCollector',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newFeeBps',\n type: 'uint256',\n },\n ],\n name: 'updateProtocolFeeBps',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newCollector',\n type: 'address',\n },\n ],\n name: 'updateProtocolFeeCollector',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'whitelistTarget',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n] as const;\n"],"mappings":"AAAA,MAAa,EAAyB,CACpC,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,wBACN,KAAM,UACP,CACF,CACD,gBAAiB,aACjB,KAAM,cACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,gBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,+BACN,KAAM,QACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,YACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,2BACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,qBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,mBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,cACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,aACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,mBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,2BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,kCACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,yBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,MACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,SACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,8BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,qBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,0BACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,OACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,eACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACD,CACE,QAAS,GACT,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,gBACN,KAAM,QACP,CACD,CACE,UAAW,GACX,OAAQ,CACN,CACE,QAAS,GACT,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACF,CACD,KAAM,WACN,KAAM,QACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,sBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,KAAM,WACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,sBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,gBACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,QACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,SACN,QAAS,CACP,CACE,aAAc,OACd,KAAM,GACN,KAAM,OACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,eACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,iBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,uBACN,QAAS,CACP,CACE,aAAc,UACd,KAAM,GACN,KAAM,UACP,CACF,CACD,gBAAiB,OACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,oBACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,QACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,KACN,KAAM,UACP,CACF,CACD,KAAM,eACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,UACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,QACd,KAAM,WACN,KAAM,QACP,CACD,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,OACN,QAAS,EAAE,CACX,gBAAiB,UACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,WACN,KAAM,UACP,CACF,CACD,KAAM,oBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,EAAE,CACV,KAAM,UACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,aACN,KAAM,UACP,CACF,CACD,KAAM,iCACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,sBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACD,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,4BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,YACN,KAAM,UACP,CACF,CACD,KAAM,uBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,eACN,KAAM,UACP,CACF,CACD,KAAM,6BACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,OAAQ,CACN,CACE,aAAc,UACd,KAAM,SACN,KAAM,UACP,CACF,CACD,KAAM,kBACN,QAAS,EAAE,CACX,gBAAiB,aACjB,KAAM,WACP,CACD,CACE,gBAAiB,UACjB,KAAM,UACP,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../../errors.cjs`),t=require(`../fetch-utilities.cjs`),n=require(`./_schema.cjs`);function r(e){if(e)return{Authorization:`Bearer ${e}`}}async function i({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/chains`,c=await t.fetchJson(t.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=n.SupportedChainsResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function a({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/tokens/${s}/list`,l=await t.fetchJson(t.combineUrlPathnames(i,c),{headers:r(a),fetch:o}),u=n.TokenListResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function o({apiBaseUrl:i,apiToken:a,fetch:o},s,{onDone:c,onError:l,onQuote:u,signal:d}){let f=`/quote`,p=t.combineUrlPathnames(i,f),m=[];try{for await(let i of t.fetchEventStream(p,{body:JSON.stringify(s),fetch:o,headers:r(a),signal:d})){let t=n.QuoteResponseSchema.safeParse(JSON.parse(i.data));if(!t.success){l(new e.ResponseValidationError(`Invalid quote data received from Markr "${f}" endpoint.`,t.error.issues));continue}`done`in t.data?c():(u(t.data),m.push(t.data))}}catch(e){e instanceof Error?l(e):l(Error(`An unknown error occurred during the quote stream.`,{cause:e})),c()}return m}async function s({apiBaseUrl:i,apiToken:a,fetch:o},s){let c=`/swap`,l=await t.fetchJson(t.combineUrlPathnames(i,c),{body:JSON.stringify(s),fetch:o,headers:r(a),method:`POST`}),u=n.SwapResponseSchema.safeParse(l);if(!u.success)throw new e.ResponseValidationError(`Invalid response from Markr "${c}" endpoint.`,u.error.issues);return u.data}async function c({apiBaseUrl:i,apiToken:a,fetch:o}){let s=`/info/partner`,c=await t.fetchJson(t.combineUrlPathnames(i,s),{headers:r(a),fetch:o}),l=n.PartnerInfoResponseSchema.safeParse(c);if(!l.success)throw new e.ResponseValidationError(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function l({apiBaseUrl:i,apiToken:a,fetch:o},s,{signal:c}={}){let l=`/cross-chain/status/${s}`,u=await t.fetchJson(t.combineUrlPathnames(i,l),{headers:r(a),fetch:o,retries:10,retryOn(t){let n=(t.init.method??`GET`).toUpperCase();if(![`GET`,`HEAD`,`OPTIONS`,`TRACE`].includes(n))return!1;if(t.error)return!(t.error instanceof e.AbortedError);let r=t.response?.status??0;return r===404||r===408||r===425||r===429||r>=500&&r<=599},signal:c}),d=n.CrossChainStatusResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues,u);return d.data}async function u({apiBaseUrl:i,apiToken:a,fetch:o},s,c){let l=`/spender-address?chainId=${s}&cross=${c?`true`:`false`}`,u=await t.fetchJson(t.combineUrlPathnames(i,l),{headers:r(a),fetch:o}),d=n.SpenderAddressResponseSchema.safeParse(u);if(!d.success)throw new e.ResponseValidationError(`Invalid response from Markr "${l}" endpoint.`,d.error.issues);return d.data}exports.markrGetCrossChainStatus=l,exports.markrGetInfoChains=i,exports.markrGetPartnerInfo=c,exports.markrGetSpenderAddress=u,exports.markrGetTokenList=a,exports.markrStreamQuote=o,exports.markrSwap=s;
|
|
2
|
+
//# sourceMappingURL=_api.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_api.cjs","names":["fetchJson","combineUrlPathnames","SupportedChainsResponseSchema","ResponseValidationError","TokenListResponseSchema","fetchEventStream","QuoteResponseSchema","SwapResponseSchema","PartnerInfoResponseSchema","AbortedError","CrossChainStatusResponseSchema","SpenderAddressResponseSchema"],"sources":["../../../src/transfer-service/markr/_api.ts"],"sourcesContent":["import { AbortedError, ResponseValidationError } from '../../errors';\nimport { combineUrlPathnames, fetchEventStream, fetchJson } from '../fetch-utilities';\nimport {\n CrossChainStatusResponseSchema,\n PartnerInfoResponseSchema,\n QuoteResponseSchema,\n SpenderAddressResponseSchema,\n SupportedChainsResponseSchema,\n SwapResponseSchema,\n TokenListResponseSchema,\n type CrossChainStatusResponse,\n type PartnerInfoResponse,\n type QuoteResponseData,\n type SpenderAddressResponse,\n type SupportedChainsResponse,\n type SwapResponse,\n type TokenListResponse,\n} from './_schema';\nimport type { Caip2ChainId } from '../../types/caip';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface ApiOptions {\n apiBaseUrl: URL;\n apiToken?: string;\n fetch?: Fetch;\n}\n\nfunction getAuthHeaders(apiToken?: string): Record<string, string> | undefined {\n if (!apiToken) {\n return undefined;\n }\n\n return { Authorization: `Bearer ${apiToken}` };\n}\n\nexport async function markrGetInfoChains({\n apiBaseUrl,\n apiToken,\n fetch: customFetch,\n}: ApiOptions): Promise<SupportedChainsResponse> {\n const endpoint = '/info/chains';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = SupportedChainsResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetTokenList(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n chainId: number,\n): Promise<TokenListResponse> {\n const endpoint = `/tokens/${chainId}/list`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = TokenListResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport interface MarkrStreamQuoteParams {\n amount: string;\n appId: string;\n chainId: number | Caip2ChainId;\n destinationChainId?: number;\n slippage?: number;\n tokenIn: string;\n tokenInDecimals: number;\n tokenOut: string;\n tokenOutDecimals: number;\n}\n\nexport interface MarkrStreamQuoteOptions {\n onDone: () => void;\n onError: (error: Error) => void;\n onQuote: (data: QuoteResponseData) => void;\n signal?: AbortSignal;\n}\n\nexport async function markrStreamQuote(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n params: MarkrStreamQuoteParams,\n { onDone, onError, onQuote, signal }: MarkrStreamQuoteOptions,\n): Promise<ReadonlyArray<QuoteResponseData>> {\n const endpoint = '/quote';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const quotes: QuoteResponseData[] = [];\n\n try {\n for await (const event of fetchEventStream(url, {\n body: JSON.stringify(params),\n fetch: customFetch,\n headers: getAuthHeaders(apiToken),\n signal,\n })) {\n const parsedData = QuoteResponseSchema.safeParse(JSON.parse(event.data));\n\n if (!parsedData.success) {\n onError(\n new ResponseValidationError(\n `Invalid quote data received from Markr \"${endpoint}\" endpoint.`,\n parsedData.error.issues,\n ),\n );\n continue;\n }\n\n if (!('done' in parsedData.data)) {\n onQuote(parsedData.data);\n quotes.push(parsedData.data);\n } else {\n onDone();\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n onError(error);\n } else {\n onError(new Error('An unknown error occurred during the quote stream.', { cause: error }));\n }\n\n onDone();\n }\n\n return quotes;\n}\n\nexport interface MarkrGetSwapParams {\n appId: string;\n /** Input amount in token's smallest unit */\n amountIn: string;\n /** Return raw transaction data alongside wrapped data */\n debug?: boolean;\n /** Minimum expected output amount */\n minAmountOut: string;\n /** Input token contract address */\n tokenIn: string;\n /** Output token contract address */\n tokenOut: string;\n /** Solana wallet public key (required for Solana swaps) */\n userPublicKey?: string;\n /** Quote UUID from previous quote request */\n uuid: string;\n}\n\nexport async function markrSwap(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n params: MarkrGetSwapParams,\n): Promise<SwapResponse> {\n const endpoint = '/swap';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, {\n body: JSON.stringify(params),\n fetch: customFetch,\n headers: getAuthHeaders(apiToken),\n method: 'POST',\n });\n\n const parsed = SwapResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetPartnerInfo({\n apiBaseUrl,\n apiToken,\n fetch: customFetch,\n}: ApiOptions): Promise<PartnerInfoResponse> {\n const endpoint = '/info/partner';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = PartnerInfoResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetCrossChainStatus(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n sourceTxHash: string,\n { signal }: { signal?: AbortSignal } = {},\n): Promise<CrossChainStatusResponse> {\n const endpoint = `/cross-chain/status/${sourceTxHash}`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, {\n headers: getAuthHeaders(apiToken),\n fetch: customFetch,\n retries: 10,\n retryOn(ctx) {\n const method = (ctx.init.method ?? 'GET').toUpperCase();\n\n if (!['GET', 'HEAD', 'OPTIONS', 'TRACE'].includes(method)) {\n return false;\n }\n\n if (ctx.error) {\n if (ctx.error instanceof AbortedError) {\n return false;\n }\n\n return true;\n }\n\n const status = ctx.response?.status ?? 0;\n\n // Retry on 404 requests since the endpoint may not return a result immediately after the source transaction is executed.\n if (status === 404 || status === 408 || status === 425 || status === 429 || (status >= 500 && status <= 599)) {\n return true;\n }\n\n return false;\n },\n signal,\n });\n\n const parsed = CrossChainStatusResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(\n `Invalid response from Markr \"${endpoint}\" endpoint.`,\n parsed.error.issues,\n rawJson,\n );\n }\n\n return parsed.data;\n}\n\n/**\n * Returns the spender address (wrapped contract) that needs to be approved\n * for token swaps on the specified chain.\n *\n * Not applicable for Solana.\n */\nexport async function markrGetSpenderAddress(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n chainId: number,\n crossChainSwap?: boolean,\n): Promise<SpenderAddressResponse> {\n const endpoint = `/spender-address?chainId=${chainId}&cross=${crossChainSwap ? 'true' : 'false'}`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = SpenderAddressResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{AbortedError as e,ResponseValidationError as t}from"../../errors.js";import{combineUrlPathnames as n,fetchEventStream as r,fetchJson as i}from"../fetch-utilities.js";import{CrossChainStatusResponseSchema as a,PartnerInfoResponseSchema as o,QuoteResponseSchema as s,SpenderAddressResponseSchema as c,SupportedChainsResponseSchema as l,SwapResponseSchema as u,TokenListResponseSchema as d}from"./_schema.js";function f(e){if(e)return{Authorization:`Bearer ${e}`}}async function p({apiBaseUrl:e,apiToken:r,fetch:a}){let o=`/info/chains`,s=await i(n(e,o),{headers:f(r),fetch:a}),c=l.safeParse(s);if(!c.success)throw new t(`Invalid response from Markr "${o}" endpoint.`,c.error.issues);return c.data}async function m({apiBaseUrl:e,apiToken:r,fetch:a},o){let s=`/tokens/${o}/list`,c=await i(n(e,s),{headers:f(r),fetch:a}),l=d.safeParse(c);if(!l.success)throw new t(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function h({apiBaseUrl:e,apiToken:i,fetch:a},o,{onDone:c,onError:l,onQuote:u,signal:d}){let p=`/quote`,m=n(e,p),h=[];try{for await(let e of r(m,{body:JSON.stringify(o),fetch:a,headers:f(i),signal:d})){let n=s.safeParse(JSON.parse(e.data));if(!n.success){l(new t(`Invalid quote data received from Markr "${p}" endpoint.`,n.error.issues));continue}`done`in n.data?c():(u(n.data),h.push(n.data))}}catch(e){e instanceof Error?l(e):l(Error(`An unknown error occurred during the quote stream.`,{cause:e})),c()}return h}async function g({apiBaseUrl:e,apiToken:r,fetch:a},o){let s=`/swap`,c=await i(n(e,s),{body:JSON.stringify(o),fetch:a,headers:f(r),method:`POST`}),l=u.safeParse(c);if(!l.success)throw new t(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function _({apiBaseUrl:e,apiToken:r,fetch:a}){let s=`/info/partner`,c=await i(n(e,s),{headers:f(r),fetch:a}),l=o.safeParse(c);if(!l.success)throw new t(`Invalid response from Markr "${s}" endpoint.`,l.error.issues);return l.data}async function v({apiBaseUrl:r,apiToken:o,fetch:s},c,{signal:l}={}){let u=`/cross-chain/status/${c}`,d=await i(n(r,u),{headers:f(o),fetch:s,retries:10,retryOn(t){let n=(t.init.method??`GET`).toUpperCase();if(![`GET`,`HEAD`,`OPTIONS`,`TRACE`].includes(n))return!1;if(t.error)return!(t.error instanceof e);let r=t.response?.status??0;return r===404||r===408||r===425||r===429||r>=500&&r<=599},signal:l}),p=a.safeParse(d);if(!p.success)throw new t(`Invalid response from Markr "${u}" endpoint.`,p.error.issues,d);return p.data}async function y({apiBaseUrl:e,apiToken:r,fetch:a},o,s){let l=`/spender-address?chainId=${o}&cross=${s?`true`:`false`}`,u=await i(n(e,l),{headers:f(r),fetch:a}),d=c.safeParse(u);if(!d.success)throw new t(`Invalid response from Markr "${l}" endpoint.`,d.error.issues);return d.data}export{v as markrGetCrossChainStatus,p as markrGetInfoChains,_ as markrGetPartnerInfo,y as markrGetSpenderAddress,m as markrGetTokenList,h as markrStreamQuote,g as markrSwap};
|
|
2
|
+
//# sourceMappingURL=_api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_api.js","names":[],"sources":["../../../src/transfer-service/markr/_api.ts"],"sourcesContent":["import { AbortedError, ResponseValidationError } from '../../errors';\nimport { combineUrlPathnames, fetchEventStream, fetchJson } from '../fetch-utilities';\nimport {\n CrossChainStatusResponseSchema,\n PartnerInfoResponseSchema,\n QuoteResponseSchema,\n SpenderAddressResponseSchema,\n SupportedChainsResponseSchema,\n SwapResponseSchema,\n TokenListResponseSchema,\n type CrossChainStatusResponse,\n type PartnerInfoResponse,\n type QuoteResponseData,\n type SpenderAddressResponse,\n type SupportedChainsResponse,\n type SwapResponse,\n type TokenListResponse,\n} from './_schema';\nimport type { Caip2ChainId } from '../../types/caip';\nimport type { Fetch } from '../../types/utility-types';\n\nexport interface ApiOptions {\n apiBaseUrl: URL;\n apiToken?: string;\n fetch?: Fetch;\n}\n\nfunction getAuthHeaders(apiToken?: string): Record<string, string> | undefined {\n if (!apiToken) {\n return undefined;\n }\n\n return { Authorization: `Bearer ${apiToken}` };\n}\n\nexport async function markrGetInfoChains({\n apiBaseUrl,\n apiToken,\n fetch: customFetch,\n}: ApiOptions): Promise<SupportedChainsResponse> {\n const endpoint = '/info/chains';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = SupportedChainsResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetTokenList(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n chainId: number,\n): Promise<TokenListResponse> {\n const endpoint = `/tokens/${chainId}/list`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = TokenListResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport interface MarkrStreamQuoteParams {\n amount: string;\n appId: string;\n chainId: number | Caip2ChainId;\n destinationChainId?: number;\n slippage?: number;\n tokenIn: string;\n tokenInDecimals: number;\n tokenOut: string;\n tokenOutDecimals: number;\n}\n\nexport interface MarkrStreamQuoteOptions {\n onDone: () => void;\n onError: (error: Error) => void;\n onQuote: (data: QuoteResponseData) => void;\n signal?: AbortSignal;\n}\n\nexport async function markrStreamQuote(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n params: MarkrStreamQuoteParams,\n { onDone, onError, onQuote, signal }: MarkrStreamQuoteOptions,\n): Promise<ReadonlyArray<QuoteResponseData>> {\n const endpoint = '/quote';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const quotes: QuoteResponseData[] = [];\n\n try {\n for await (const event of fetchEventStream(url, {\n body: JSON.stringify(params),\n fetch: customFetch,\n headers: getAuthHeaders(apiToken),\n signal,\n })) {\n const parsedData = QuoteResponseSchema.safeParse(JSON.parse(event.data));\n\n if (!parsedData.success) {\n onError(\n new ResponseValidationError(\n `Invalid quote data received from Markr \"${endpoint}\" endpoint.`,\n parsedData.error.issues,\n ),\n );\n continue;\n }\n\n if (!('done' in parsedData.data)) {\n onQuote(parsedData.data);\n quotes.push(parsedData.data);\n } else {\n onDone();\n }\n }\n } catch (error) {\n if (error instanceof Error) {\n onError(error);\n } else {\n onError(new Error('An unknown error occurred during the quote stream.', { cause: error }));\n }\n\n onDone();\n }\n\n return quotes;\n}\n\nexport interface MarkrGetSwapParams {\n appId: string;\n /** Input amount in token's smallest unit */\n amountIn: string;\n /** Return raw transaction data alongside wrapped data */\n debug?: boolean;\n /** Minimum expected output amount */\n minAmountOut: string;\n /** Input token contract address */\n tokenIn: string;\n /** Output token contract address */\n tokenOut: string;\n /** Solana wallet public key (required for Solana swaps) */\n userPublicKey?: string;\n /** Quote UUID from previous quote request */\n uuid: string;\n}\n\nexport async function markrSwap(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n params: MarkrGetSwapParams,\n): Promise<SwapResponse> {\n const endpoint = '/swap';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, {\n body: JSON.stringify(params),\n fetch: customFetch,\n headers: getAuthHeaders(apiToken),\n method: 'POST',\n });\n\n const parsed = SwapResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetPartnerInfo({\n apiBaseUrl,\n apiToken,\n fetch: customFetch,\n}: ApiOptions): Promise<PartnerInfoResponse> {\n const endpoint = '/info/partner';\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = PartnerInfoResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n\nexport async function markrGetCrossChainStatus(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n sourceTxHash: string,\n { signal }: { signal?: AbortSignal } = {},\n): Promise<CrossChainStatusResponse> {\n const endpoint = `/cross-chain/status/${sourceTxHash}`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, {\n headers: getAuthHeaders(apiToken),\n fetch: customFetch,\n retries: 10,\n retryOn(ctx) {\n const method = (ctx.init.method ?? 'GET').toUpperCase();\n\n if (!['GET', 'HEAD', 'OPTIONS', 'TRACE'].includes(method)) {\n return false;\n }\n\n if (ctx.error) {\n if (ctx.error instanceof AbortedError) {\n return false;\n }\n\n return true;\n }\n\n const status = ctx.response?.status ?? 0;\n\n // Retry on 404 requests since the endpoint may not return a result immediately after the source transaction is executed.\n if (status === 404 || status === 408 || status === 425 || status === 429 || (status >= 500 && status <= 599)) {\n return true;\n }\n\n return false;\n },\n signal,\n });\n\n const parsed = CrossChainStatusResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(\n `Invalid response from Markr \"${endpoint}\" endpoint.`,\n parsed.error.issues,\n rawJson,\n );\n }\n\n return parsed.data;\n}\n\n/**\n * Returns the spender address (wrapped contract) that needs to be approved\n * for token swaps on the specified chain.\n *\n * Not applicable for Solana.\n */\nexport async function markrGetSpenderAddress(\n { apiBaseUrl, apiToken, fetch: customFetch }: ApiOptions,\n chainId: number,\n crossChainSwap?: boolean,\n): Promise<SpenderAddressResponse> {\n const endpoint = `/spender-address?chainId=${chainId}&cross=${crossChainSwap ? 'true' : 'false'}`;\n const url = combineUrlPathnames(apiBaseUrl, endpoint);\n\n const rawJson = await fetchJson(url, { headers: getAuthHeaders(apiToken), fetch: customFetch });\n\n const parsed = SpenderAddressResponseSchema.safeParse(rawJson);\n\n if (!parsed.success) {\n throw new ResponseValidationError(`Invalid response from Markr \"${endpoint}\" endpoint.`, parsed.error.issues);\n }\n\n return parsed.data;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../../../constants.cjs`);function t({hasSolanaSigner:t,supportedChains:n}){return({sourceAsset:r,sourceChainId:i,targetAsset:a,targetChainId:o})=>{let s=r.type===e.TokenType.NATIVE||r.type===e.TokenType.ERC20||r.type===e.TokenType.SPL&&t,c=a.type===e.TokenType.NATIVE||a.type===e.TokenType.ERC20||a.type===e.TokenType.SPL&&t;if(!s||!c)return!1;let l=n.get(i),u=n.get(o);return!l||!u?!1:i===o?l.swapEnabled:l.crossChainSwapEnabled&&u.crossChainSwapEnabled}}exports.analyzeSupportFactory=t;
|
|
2
|
+
//# sourceMappingURL=analyze-support.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-support.cjs","names":["TokenType"],"sources":["../../../../src/transfer-service/markr/_handlers/analyze-support.ts"],"sourcesContent":["import { TokenType } from '../../../constants';\nimport type { TransferService } from '../../../types/service';\nimport type { SupportedChainsMap } from '../_utils';\n\nexport interface AnalyzeSupportFactoryConfig {\n hasSolanaSigner: boolean;\n supportedChains: SupportedChainsMap;\n}\n\nexport function analyzeSupportFactory({\n hasSolanaSigner,\n supportedChains,\n}: AnalyzeSupportFactoryConfig): TransferService['analyzeSupport'] {\n return ({ sourceAsset, sourceChainId, targetAsset, targetChainId }) => {\n const validSourceAssetType =\n sourceAsset.type === TokenType.NATIVE ||\n sourceAsset.type === TokenType.ERC20 ||\n (sourceAsset.type === TokenType.SPL && hasSolanaSigner);\n const validTargetAssetType =\n targetAsset.type === TokenType.NATIVE ||\n targetAsset.type === TokenType.ERC20 ||\n (targetAsset.type === TokenType.SPL && hasSolanaSigner);\n\n if (!validSourceAssetType || !validTargetAssetType) {\n return false;\n }\n\n const supportedSourceChain = supportedChains.get(sourceChainId);\n const supportedTargetChain = supportedChains.get(targetChainId);\n\n // Validate chains are supported.\n if (!supportedSourceChain || !supportedTargetChain) {\n return false;\n }\n\n // Validate same-chain swaps are supported if source and target chains are the same.\n if (sourceChainId === targetChainId) {\n return supportedSourceChain.swapEnabled;\n }\n\n // Validate cross-chain swaps are supported if source and target chains are different.\n return supportedSourceChain.crossChainSwapEnabled && supportedTargetChain.crossChainSwapEnabled;\n };\n}\n"],"mappings":"0CASA,SAAgB,EAAsB,CACpC,kBACA,mBACiE,CACjE,OAAQ,CAAE,cAAa,gBAAe,cAAa,mBAAoB,CACrE,IAAM,EACJ,EAAY,OAASA,EAAAA,UAAU,QAC/B,EAAY,OAASA,EAAAA,UAAU,OAC9B,EAAY,OAASA,EAAAA,UAAU,KAAO,EACnC,EACJ,EAAY,OAASA,EAAAA,UAAU,QAC/B,EAAY,OAASA,EAAAA,UAAU,OAC9B,EAAY,OAASA,EAAAA,UAAU,KAAO,EAEzC,GAAI,CAAC,GAAwB,CAAC,EAC5B,MAAO,GAGT,IAAM,EAAuB,EAAgB,IAAI,EAAc,CACzD,EAAuB,EAAgB,IAAI,EAAc,CAa/D,MAVI,CAAC,GAAwB,CAAC,EACrB,GAIL,IAAkB,EACb,EAAqB,YAIvB,EAAqB,uBAAyB,EAAqB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{TokenType as e}from"../../../constants.js";function t({hasSolanaSigner:t,supportedChains:n}){return({sourceAsset:r,sourceChainId:i,targetAsset:a,targetChainId:o})=>{let s=r.type===e.NATIVE||r.type===e.ERC20||r.type===e.SPL&&t,c=a.type===e.NATIVE||a.type===e.ERC20||a.type===e.SPL&&t;if(!s||!c)return!1;let l=n.get(i),u=n.get(o);return!l||!u?!1:i===o?l.swapEnabled:l.crossChainSwapEnabled&&u.crossChainSwapEnabled}}export{t as analyzeSupportFactory};
|
|
2
|
+
//# sourceMappingURL=analyze-support.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze-support.js","names":[],"sources":["../../../../src/transfer-service/markr/_handlers/analyze-support.ts"],"sourcesContent":["import { TokenType } from '../../../constants';\nimport type { TransferService } from '../../../types/service';\nimport type { SupportedChainsMap } from '../_utils';\n\nexport interface AnalyzeSupportFactoryConfig {\n hasSolanaSigner: boolean;\n supportedChains: SupportedChainsMap;\n}\n\nexport function analyzeSupportFactory({\n hasSolanaSigner,\n supportedChains,\n}: AnalyzeSupportFactoryConfig): TransferService['analyzeSupport'] {\n return ({ sourceAsset, sourceChainId, targetAsset, targetChainId }) => {\n const validSourceAssetType =\n sourceAsset.type === TokenType.NATIVE ||\n sourceAsset.type === TokenType.ERC20 ||\n (sourceAsset.type === TokenType.SPL && hasSolanaSigner);\n const validTargetAssetType =\n targetAsset.type === TokenType.NATIVE ||\n targetAsset.type === TokenType.ERC20 ||\n (targetAsset.type === TokenType.SPL && hasSolanaSigner);\n\n if (!validSourceAssetType || !validTargetAssetType) {\n return false;\n }\n\n const supportedSourceChain = supportedChains.get(sourceChainId);\n const supportedTargetChain = supportedChains.get(targetChainId);\n\n // Validate chains are supported.\n if (!supportedSourceChain || !supportedTargetChain) {\n return false;\n }\n\n // Validate same-chain swaps are supported if source and target chains are the same.\n if (sourceChainId === targetChainId) {\n return supportedSourceChain.swapEnabled;\n }\n\n // Validate cross-chain swaps are supported if source and target chains are different.\n return supportedSourceChain.crossChainSwapEnabled && supportedTargetChain.crossChainSwapEnabled;\n };\n}\n"],"mappings":"kDASA,SAAgB,EAAsB,CACpC,kBACA,mBACiE,CACjE,OAAQ,CAAE,cAAa,gBAAe,cAAa,mBAAoB,CACrE,IAAM,EACJ,EAAY,OAAS,EAAU,QAC/B,EAAY,OAAS,EAAU,OAC9B,EAAY,OAAS,EAAU,KAAO,EACnC,EACJ,EAAY,OAAS,EAAU,QAC/B,EAAY,OAAS,EAAU,OAC9B,EAAY,OAAS,EAAU,KAAO,EAEzC,GAAI,CAAC,GAAwB,CAAC,EAC5B,MAAO,GAGT,IAAM,EAAuB,EAAgB,IAAI,EAAc,CACzD,EAAuB,EAAgB,IAAI,EAAc,CAa/D,MAVI,CAAC,GAAwB,CAAC,EACrB,GAIL,IAAkB,EACb,EAAqB,YAIvB,EAAqB,uBAAyB,EAAqB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../errors.cjs`),t=require(`../../../utils/caip.cjs`),n=require(`../../../_utils/chain.cjs`),r=require(`../../_utils.cjs`),i=require(`../../_evm-gas.cjs`),a=require(`../_api.cjs`),o=require(`../_utils.cjs`),s=require(`../_type-guards.cjs`);let c=require(`viem`),l=require(`@solana/kit`);function u(t){return async(r,i)=>{if(n.isEvmNamespace(r.sourceChain.chainId))return await d(r,i,t);if(n.isSolanaNamespace(r.sourceChain.chainId))return await f(r,i,t);throw new e.InvalidParamsError(e.ErrorReason.INVALID_PARAMS,`Unsupported source chain namespace for estimateNativeFee: ${r.sourceChain.chainId}`)}}async function d(n,l,{apiOptions:u,appId:d}){if(!(0,c.isAddress)(n.fromAddress))throw new e.InvalidParamsError(e.ErrorReason.INVALID_PARAMS,`Invalid fromAddress: ${n.fromAddress}`);let f=r.getEvmClientForChain({chain:n.sourceChain}),m=o.assetToAddressString(n.assetIn,n.sourceChain.chainId);if(!(0,c.isAddress)(m))throw new e.SdkError(e.ErrorReason.INVALID_PARAMS,e.ErrorCode.INVALID_PARAMS,{details:`assetIn address is not a valid EVM address. Can not call estimateGas.`});let h=o.isTokenAddressNative(m),g=n.sourceChain.chainId.toLowerCase()!==n.targetChain.chainId.toLowerCase(),_=0n;if(!h){let r,{address:i}=await a.markrGetSpenderAddress(u,t.caip2ToEip155ChainId(n.sourceChain.chainId),g);try{r=await f.readContract({address:m,abi:c.erc20Abi,functionName:`allowance`,args:[n.fromAddress,i]})}catch(t){throw new e.SdkError(`Error during allowance check`,e.ErrorCode.VIEM_ERROR,{cause:t,details:`Failed to read ERC20 allowance for Markr spender.`})}if(r<n.amountIn)try{_=await f.estimateGas({account:n.fromAddress,to:m,data:(0,c.encodeFunctionData)({abi:c.erc20Abi,functionName:`approve`,args:[i,n.amountIn]}),value:0n})}catch(t){throw new e.SdkError(`Error during gas estimation`,e.ErrorCode.VIEM_ERROR,{cause:t,details:`Failed to estimate gas for ERC20 approval transaction.`})}}let v=_>0n,y=o.calculateMarkrMinimumAmountOut({amountOut:n.amountOut,assetOut:n.assetOut,slippageBps:n.slippageBps}),b=await a.markrSwap(u,{amountIn:n.amountIn.toString(),appId:d,minAmountOut:y.toString(),tokenIn:m,tokenOut:o.assetToAddressString(n.assetOut,n.targetChain.chainId),uuid:n.id});if(!s.isEvmSwapResponse(b))throw new e.SdkError(e.ErrorReason.CHAIN_NOT_SUPPORTED,e.ErrorCode.INVALID_PARAMS,{details:`Received non-EVM swap response from Markr. Expected EVM transaction data for gas estimation, but got response with chainType ${b.chainType}.`});let x=0n;x=v?n.gasEstimate?r.applyFeeUnitsBpsMargin(n.gasEstimate,l?.feeUnitsMarginBps):r.applyFeeUnitsBpsMargin(n.fees.filter(e=>e.type===`gas`&&e.chainId===n.sourceChain.chainId).reduce((e,t)=>e+t.amount,0n)||700000n,l?.feeUnitsMarginBps):await p({crossChain:g,feeUnitsMarginBps:l?.feeUnitsMarginBps,fromAddress:n.fromAddress,sourceClient:f,swap:b});let S=await i.estimateEvmFeesPerGas(f,n.sourceChain,l?.overrides?.feeRateTier),C=l?.overrides?.maxFeePerGas??S.maxFeePerGas,w=l?.overrides?.maxPriorityFeePerGas??S.maxPriorityFeePerGas,T=(x+r.applyFeeUnitsBpsMargin(_,l?.feeUnitsMarginBps))*C;return{asset:n.sourceChain.networkToken,totalFee:T,meta:{approvalFee:v?r.applyFeeUnitsBpsMargin(_,l?.feeUnitsMarginBps)*C:void 0,maxFeePerGas:C,maxPriorityFeePerGas:w}}}async function f(t,n,{apiOptions:i,appId:c}){let u=o.assetToAddressString(t.assetIn,t.sourceChain.chainId);if(!(0,l.isAddress)(u))throw new e.SdkError(e.ErrorReason.INVALID_PARAMS,e.ErrorCode.INVALID_PARAMS,{details:`assetIn address is not a valid Solana address. Can not call estimateGas.`});let d=o.calculateMarkrMinimumAmountOut({amountOut:t.amountOut,assetOut:t.assetOut,slippageBps:t.slippageBps}),f=await a.markrSwap(i,{amountIn:t.amountIn.toString(),appId:c,minAmountOut:d.toString(),tokenIn:u,tokenOut:o.assetToAddressString(t.assetOut,t.targetChain.chainId),userPublicKey:t.fromAddress,uuid:t.id});if(!s.isSolanaSwapResponse(f))throw new e.SdkError(e.ErrorReason.CHAIN_NOT_SUPPORTED,e.ErrorCode.INVALID_PARAMS,{details:`Received non-Solana swap response from Markr. Expected Solana transaction data for fee estimation.`});let p=r.getSolanaRpcForChain({chain:t.sourceChain}),v=m(f.swapTransaction),y=(0,l.getTransactionDecoder)().decode(v),b=h(y.messageBytes),x=await p.getFeeForMessage(b).send();if(!x.value)throw new e.SdkError(`Failed to get fee for message. Most likely the block hash in the transaction is expired.`,e.ErrorCode.TIMEOUT,{details:`Please use a new quote with a recent block hash and try again.`});let S=x.value,C=await p.simulateTransaction(f.swapTransaction,{encoding:`base64`,sigVerify:!1}).send();if(C.value.err)throw new e.SdkError(`Failed to simulate transaction for estimating fee.`,e.ErrorCode.SOLANA_ERROR,{cause:C.value.err});let w=r.applyFeeUnitsBpsMargin(C.value.unitsConsumed??0n,n?.feeUnitsMarginBps),T=g(y.messageBytes),E=w*T/1000000n,D=await _({fromAddress:t.fromAddress,rpc:p,transactionMessageBytes:y.messageBytes}),O=S+E+D.rentFee;return{asset:t.sourceChain.networkToken,totalFee:O,refundable:D.refundable,meta:{baseFee:S,priorityFee:E,computeUnitPriceMicroLamports:T,unitsConsumed:w,createdAccounts:D.createdAccounts,rentFee:D.rentFee,rentFeeNet:D.rentFeeNet}}}async function p({crossChain:t,feeUnitsMarginBps:n,fromAddress:i,sourceClient:a,swap:s}){try{return r.applyFeeUnitsBpsMargin(await a.estimateGas({account:i,to:s.to,data:s.data,value:s.value}),n)}catch(n){let r=`Failed to estimate gas for Markr swap transaction.`;try{let e=o.decodeMarkrRevertError(await o.getMarkrSwapWrapperAbi(t),n);e&&(r=`${r} Markr revert: ${e}.`)}catch{}throw new e.SdkError(`Error during gas estimation`,e.ErrorCode.VIEM_ERROR,{cause:n,details:r})}}function m(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function h(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function g(e){let t=(0,l.getCompiledTransactionMessageDecoder)().decode(e);for(let e of t.instructions){if(t.staticAccounts[e.programAddressIndex]!==`ComputeBudget111111111111111111111111111111`)continue;let n=e.data;if(!(!n||n.length<9)&&n[0]===3)return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(1,!0)}return 0n}async function _({fromAddress:e,rpc:t,transactionMessageBytes:n}){let r=(0,l.getCompiledTransactionMessageDecoder)().decode(n),i=new Map,a=new Map,o;for(let e of r.instructions){let n=r.staticAccounts[e.programAddressIndex];if(n===`11111111111111111111111111111111`){let t=v(r,e,1),n=y(e.data);t&&n>0n&&i.set(t,{address:t,kind:`system`,lamports:n});continue}if(n===`ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL`){let n=e.data?.[0];if(!(n===void 0||n===0||n===1))continue;let a=v(r,e,1);if(!a||(await t.getAccountInfo(a).send()).value)continue;o===void 0&&(o=await t.getMinimumBalanceForRentExemption(165n).send()),i.set(a,{address:a,kind:`ata`,lamports:o});continue}if(!(n===`TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`||n===`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`)||e.data?.[0]!==9)continue;let s=v(r,e,0),c=v(r,e,1);s&&c&&a.set(s,c)}let s=(0,l.isAddress)(e)?e:void 0,c=Array.from(i.values()).map(e=>{let t=a.get(e.address),n=s!==void 0&&t===s;return{...e,refunded:n}}),u=c.reduce((e,t)=>e+t.lamports,0n),d=c.reduce((e,t)=>e+(t.refunded?t.lamports:0n),0n);return{createdAccounts:c,rentFee:u,rentFeeNet:u-d,refundable:d}}function v(e,t,n){let r=t.accountIndices?.[n];if(r!==void 0)return e.staticAccounts[r]}function y(e){if(!e||e.length<12)return 0n;let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint32(0,!0);if(n===0&&e.length>=12)return t.getBigUint64(4,!0);if(n===3&&e.length>=44){let n=Number(t.getBigUint64(36,!0));if(!Number.isSafeInteger(n)||n<0)return 0n;let r=44+n;return r+8>e.length?0n:new DataView(e.buffer,e.byteOffset+r,8).getBigUint64(0,!0)}return 0n}exports._estimateGasFromSwapResponse=p,exports.estimateNativeFeeFactory=u;
|
|
2
|
+
//# sourceMappingURL=estimate-native-fee.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"estimate-native-fee.cjs","names":["isEvmNamespace","isSolanaNamespace","InvalidParamsError","ErrorReason","getEvmClientForChain","assetToAddressString","SdkError","ErrorCode","isTokenAddressNative","markrGetSpenderAddress","caip2ToEip155ChainId","erc20Abi","calculateMarkrMinimumAmountOut","markrSwap","isEvmSwapResponse","applyFeeUnitsBpsMargin","estimateEvmFeesPerGas","isSolanaSwapResponse","getSolanaRpcForChain","decodeMarkrRevertError","getMarkrSwapWrapperAbi"],"sources":["../../../../src/transfer-service/markr/_handlers/estimate-native-fee.ts"],"sourcesContent":["import {\n type CompiledTransactionMessage,\n getCompiledTransactionMessageDecoder,\n getTransactionDecoder,\n isAddress as isSolanaAddress,\n type Base64EncodedWireTransaction,\n type Rpc,\n type SolanaRpcApi,\n type TransactionMessageBytes,\n type TransactionMessageBytesBase64,\n} from '@solana/kit';\nimport { encodeFunctionData, erc20Abi, type Address as EvmAddress, isAddress as isEvmAddress } from 'viem';\nimport { ErrorCode, ErrorReason, InvalidParamsError, SdkError } from '../../../errors';\nimport type { EstimateNativeFeeOptions, NativeFeeEstimate, TransferService } from '../../../types/service';\nimport { applyFeeUnitsBpsMargin, getEvmClientForChain, getSolanaRpcForChain } from '../../_utils';\nimport { estimateEvmFeesPerGas } from '../../_evm-gas';\nimport { markrGetSpenderAddress, markrSwap, type ApiOptions } from '../_api';\nimport {\n assetToAddressString,\n calculateMarkrMinimumAmountOut,\n decodeMarkrRevertError,\n getMarkrSwapWrapperAbi,\n isTokenAddressNative,\n} from '../_utils';\nimport type { WrappedSwapTransactionResponse } from '../_schema';\nimport { isEvmSwapResponse, isSolanaSwapResponse } from '../_type-guards';\nimport { caip2ToEip155ChainId } from '../../../utils/caip';\nimport type { Quote } from '../../../types/quote';\nimport { isEvmNamespace, isSolanaNamespace } from '../../../_utils/chain';\n\n/**\n * This is just a fallback value used in the case that an\n * allowance approval is needed, and Markr didn't return us any gas estimate data.\n *\n * Just based on my review of some quotes, I think this is a reasonable estimate\n * left on the higher end.\n *\n * Assume this could need to change.\n */\nconst EVM_SWAP_FALLBACK_GAS_ESTIMATE = 700_000n;\n\n/**\n * Compute Budget program address.\n *\n * Used to detect `SetComputeUnitPrice` instructions when deriving\n * the Solana priority fee component from transaction message bytes.\n */\nconst SOLANA_COMPUTE_BUDGET_PROGRAM = 'ComputeBudget111111111111111111111111111111';\n\n/**\n * System Program address.\n *\n * Used to detect account-creation instructions and extract lamports\n * funded upfront for newly created system accounts.\n */\nconst SOLANA_SYSTEM_PROGRAM = '11111111111111111111111111111111';\n\n/**\n * Associated Token Account (ATA) program address.\n *\n * Used to detect ATA create instructions so the estimator can include\n * rent-exempt funding when the ATA does not already exist on-chain.\n */\nconst SOLANA_ASSOCIATED_TOKEN_PROGRAM = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';\n\n/**\n * Legacy SPL Token program address.\n *\n * Used to detect close-account instructions that may refund lamports\n * from temporary token accounts back to the sender.\n */\nconst SOLANA_SPL_TOKEN_PROGRAM = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';\n\n/**\n * SPL Token-2022 program address.\n *\n * Used alongside the legacy token program for close-account detection\n * when computing expected refundable lamports.\n */\nconst SOLANA_SPL_TOKEN_2022_PROGRAM = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb';\n\n/**\n * SPL token account size for rent-exemption calculations.\n *\n * Used with `getMinimumBalanceForRentExemption` to estimate ATA\n * creation funding requirements.\n */\nconst SPL_TOKEN_ACCOUNT_SIZE_BYTES = 165n;\n\nexport interface EstimateNativeFeeFactoryConfig {\n apiOptions: ApiOptions;\n appId: string;\n}\n\ninterface CreatedRentAccount {\n address: string;\n kind: 'ata' | 'system';\n lamports: bigint;\n refunded: boolean;\n}\n\ninterface SolanaRentEstimate {\n createdAccounts: CreatedRentAccount[];\n rentFee: bigint;\n rentFeeNet: bigint;\n refundable: bigint;\n}\n\nexport function estimateNativeFeeFactory(config: EstimateNativeFeeFactoryConfig): TransferService['estimateNativeFee'] {\n return async (quote, options) => {\n // Either the source chain is EVM or Solana, we need to call different functions that\n // calculate the native fee depending on the chain kind.\n\n if (isEvmNamespace(quote.sourceChain.chainId)) {\n return await _estimateNativeFeeEvm(quote, options, config);\n }\n\n if (isSolanaNamespace(quote.sourceChain.chainId)) {\n return await _estimateNativeFeeSolana(quote, options, config);\n }\n\n throw new InvalidParamsError(\n ErrorReason.INVALID_PARAMS,\n `Unsupported source chain namespace for estimateNativeFee: ${quote.sourceChain.chainId}`,\n );\n };\n}\n\n/** @internal */\nexport async function _estimateNativeFeeEvm(\n quote: Quote,\n options: EstimateNativeFeeOptions | undefined,\n { apiOptions, appId }: EstimateNativeFeeFactoryConfig,\n): Promise<NativeFeeEstimate> {\n if (!isEvmAddress(quote.fromAddress)) {\n throw new InvalidParamsError(ErrorReason.INVALID_PARAMS, `Invalid fromAddress: ${quote.fromAddress}`);\n }\n\n const sourceClient = getEvmClientForChain({ chain: quote.sourceChain });\n\n const assetInAddressString = assetToAddressString(quote.assetIn, quote.sourceChain.chainId);\n\n if (!isEvmAddress(assetInAddressString)) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: `assetIn address is not a valid EVM address. Can not call estimateGas.`,\n });\n }\n\n const isAssetInNative = isTokenAddressNative(assetInAddressString);\n const isCrossChainSwap = quote.sourceChain.chainId.toLowerCase() !== quote.targetChain.chainId.toLowerCase();\n\n let allowanceApprovalGas = 0n;\n if (!isAssetInNative) {\n // Check if approval is needed, and if so, calculate the gas cost for the approval.\n let allowance: bigint;\n\n const { address: spenderAddress } = await markrGetSpenderAddress(\n apiOptions,\n caip2ToEip155ChainId(quote.sourceChain.chainId),\n isCrossChainSwap,\n );\n\n try {\n allowance = await sourceClient.readContract({\n address: assetInAddressString,\n abi: erc20Abi,\n functionName: 'allowance',\n args: [quote.fromAddress, spenderAddress],\n });\n } catch (error) {\n throw new SdkError('Error during allowance check', ErrorCode.VIEM_ERROR, {\n cause: error,\n details: 'Failed to read ERC20 allowance for Markr spender.',\n });\n }\n\n const approvalNeeded = allowance < quote.amountIn;\n\n if (approvalNeeded) {\n try {\n allowanceApprovalGas = await sourceClient.estimateGas({\n account: quote.fromAddress,\n to: assetInAddressString,\n data: encodeFunctionData({\n abi: erc20Abi,\n functionName: 'approve',\n args: [spenderAddress, quote.amountIn],\n }),\n value: 0n,\n });\n } catch (error) {\n throw new SdkError('Error during gas estimation', ErrorCode.VIEM_ERROR, {\n cause: error,\n details: 'Failed to estimate gas for ERC20 approval transaction.',\n });\n }\n }\n }\n\n const allowanceApprovalIsNeeded = allowanceApprovalGas > 0n;\n\n const minAmountOut = calculateMarkrMinimumAmountOut({\n amountOut: quote.amountOut,\n assetOut: quote.assetOut,\n slippageBps: quote.slippageBps,\n });\n\n const swap = await markrSwap(apiOptions, {\n amountIn: quote.amountIn.toString(),\n appId,\n minAmountOut: minAmountOut.toString(),\n tokenIn: assetInAddressString,\n tokenOut: assetToAddressString(quote.assetOut, quote.targetChain.chainId),\n uuid: quote.id,\n });\n\n if (!isEvmSwapResponse(swap)) {\n // Should hopefully never happen.\n throw new SdkError(ErrorReason.CHAIN_NOT_SUPPORTED, ErrorCode.INVALID_PARAMS, {\n details: `Received non-EVM swap response from Markr. Expected EVM transaction data for gas estimation, but got response with chainType ${swap.chainType}.`,\n });\n }\n\n let gasWithMargin = 0n;\n\n // If an approval is needed, we can't call `eth_estimateGas` on the\n // swap transaction because no actual allowance approval was performed yet,\n // so a gas estimation would fail due to needing allowance.\n //\n // So if an allowance approval is needed, we fall back to some other logic for\n // estimating the swap tx gas.\n if (allowanceApprovalIsNeeded) {\n // Attempt to use the Markr provided `gasEstimate` first if available.\n // Otherwise we attempt to get the gas from the `fees` component that are applicable\n // to the source chain. If neither of those are available, we fall back to a hardcoded value.\n if (quote.gasEstimate) {\n gasWithMargin = applyFeeUnitsBpsMargin(quote.gasEstimate, options?.feeUnitsMarginBps);\n } else {\n const sourceGasFee = quote.fees\n .filter((fee) => fee.type === 'gas' && fee.chainId === quote.sourceChain.chainId)\n .reduce((acc, fee) => acc + fee.amount, 0n);\n\n gasWithMargin = applyFeeUnitsBpsMargin(\n sourceGasFee || EVM_SWAP_FALLBACK_GAS_ESTIMATE,\n options?.feeUnitsMarginBps,\n );\n }\n } else {\n gasWithMargin = await _estimateGasFromSwapResponse({\n crossChain: isCrossChainSwap,\n feeUnitsMarginBps: options?.feeUnitsMarginBps,\n fromAddress: quote.fromAddress,\n sourceClient,\n swap,\n });\n }\n\n const fees = await estimateEvmFeesPerGas(sourceClient, quote.sourceChain, options?.overrides?.feeRateTier);\n\n const maxFeePerGas = options?.overrides?.maxFeePerGas ?? fees.maxFeePerGas;\n const maxPriorityFeePerGas = options?.overrides?.maxPriorityFeePerGas ?? fees.maxPriorityFeePerGas;\n\n const totalFee =\n (gasWithMargin + applyFeeUnitsBpsMargin(allowanceApprovalGas, options?.feeUnitsMarginBps)) * maxFeePerGas;\n\n return {\n asset: quote.sourceChain.networkToken,\n totalFee,\n meta: {\n approvalFee: allowanceApprovalIsNeeded\n ? applyFeeUnitsBpsMargin(allowanceApprovalGas, options?.feeUnitsMarginBps) * maxFeePerGas\n : undefined,\n maxFeePerGas,\n maxPriorityFeePerGas,\n },\n };\n}\n\n/** @internal */\nexport async function _estimateNativeFeeSolana(\n quote: Quote,\n options: EstimateNativeFeeOptions | undefined,\n { apiOptions, appId }: EstimateNativeFeeFactoryConfig,\n): Promise<NativeFeeEstimate> {\n const assetInAddressString = assetToAddressString(quote.assetIn, quote.sourceChain.chainId);\n\n if (!isSolanaAddress(assetInAddressString)) {\n throw new SdkError(ErrorReason.INVALID_PARAMS, ErrorCode.INVALID_PARAMS, {\n details: `assetIn address is not a valid Solana address. Can not call estimateGas.`,\n });\n }\n\n const minAmountOut = calculateMarkrMinimumAmountOut({\n amountOut: quote.amountOut,\n assetOut: quote.assetOut,\n slippageBps: quote.slippageBps,\n });\n\n const swap = await markrSwap(apiOptions, {\n amountIn: quote.amountIn.toString(),\n appId,\n minAmountOut: minAmountOut.toString(),\n tokenIn: assetInAddressString,\n tokenOut: assetToAddressString(quote.assetOut, quote.targetChain.chainId),\n userPublicKey: quote.fromAddress,\n uuid: quote.id,\n });\n\n if (!isSolanaSwapResponse(swap)) {\n // Should hopefully never happen.\n throw new SdkError(ErrorReason.CHAIN_NOT_SUPPORTED, ErrorCode.INVALID_PARAMS, {\n details: 'Received non-Solana swap response from Markr. Expected Solana transaction data for fee estimation.',\n });\n }\n\n const rpc = getSolanaRpcForChain({ chain: quote.sourceChain });\n\n const txBytes = base64ToBytes(swap.swapTransaction);\n const tx = getTransactionDecoder().decode(txBytes);\n\n const messageBase64: TransactionMessageBytesBase64 = _transactionMessageBytesToBase64(tx.messageBytes);\n\n // Base fee (signature fee etc.) in lamports.\n const feeForMessageResponse = await rpc.getFeeForMessage(messageBase64).send();\n\n if (!feeForMessageResponse.value) {\n // This can happen if the block hash is expired or invalid.\n // Most likely expired. Use a new \"swapTxBase64\" with a recent block hash and try again.\n throw new SdkError(\n 'Failed to get fee for message. Most likely the block hash in the transaction is expired.',\n ErrorCode.TIMEOUT,\n {\n details: 'Please use a new quote with a recent block hash and try again.',\n },\n );\n }\n\n const baseFeeLamports = feeForMessageResponse.value;\n\n const sim = await rpc\n .simulateTransaction(swap.swapTransaction as Base64EncodedWireTransaction, {\n encoding: 'base64',\n sigVerify: false,\n })\n .send();\n\n if (sim.value.err) {\n throw new SdkError('Failed to simulate transaction for estimating fee.', ErrorCode.SOLANA_ERROR, {\n cause: sim.value.err,\n });\n }\n\n const unitsConsumed = applyFeeUnitsBpsMargin(sim.value.unitsConsumed ?? 0n, options?.feeUnitsMarginBps);\n // Lamports\n const computeUnitPriceMicroLamports = _getComputeUnitPriceMicroLamports(tx.messageBytes);\n const priorityFee = (unitsConsumed * computeUnitPriceMicroLamports) / 1_000_000n;\n const rentEstimate = await _estimateRentFeesFromTransactionMessage({\n fromAddress: quote.fromAddress,\n rpc,\n transactionMessageBytes: tx.messageBytes,\n });\n const totalLamports = baseFeeLamports + priorityFee + rentEstimate.rentFee;\n\n return {\n asset: quote.sourceChain.networkToken,\n totalFee: totalLamports,\n refundable: rentEstimate.refundable,\n meta: {\n baseFee: baseFeeLamports,\n priorityFee,\n computeUnitPriceMicroLamports,\n unitsConsumed,\n createdAccounts: rentEstimate.createdAccounts,\n rentFee: rentEstimate.rentFee,\n rentFeeNet: rentEstimate.rentFeeNet,\n },\n };\n}\n\n/** @internal */\nexport async function _estimateGasFromSwapResponse({\n crossChain,\n feeUnitsMarginBps,\n fromAddress,\n sourceClient,\n swap,\n}: {\n crossChain: boolean;\n feeUnitsMarginBps?: number;\n fromAddress: EvmAddress;\n sourceClient: ReturnType<typeof getEvmClientForChain>;\n swap: WrappedSwapTransactionResponse;\n}): Promise<bigint> {\n try {\n const gasEstimate = await sourceClient.estimateGas({\n account: fromAddress,\n to: swap.to,\n data: swap.data,\n value: swap.value,\n });\n\n return applyFeeUnitsBpsMargin(gasEstimate, feeUnitsMarginBps);\n } catch (err) {\n let details = 'Failed to estimate gas for Markr swap transaction.';\n\n try {\n const markrSwapWrapperAbi = await getMarkrSwapWrapperAbi(crossChain);\n const decodedRevert = decodeMarkrRevertError(markrSwapWrapperAbi, err);\n\n if (decodedRevert) {\n details = `${details} Markr revert: ${decodedRevert}.`;\n }\n } catch {\n // Keep the base details message if revert decoding fails.\n }\n\n throw new SdkError('Error during gas estimation', ErrorCode.VIEM_ERROR, {\n cause: err,\n details,\n });\n }\n}\n\nfunction base64ToBytes(base64: string): Uint8Array {\n return Uint8Array.from(atob(base64), (c) => c.charCodeAt(0));\n}\n\nfunction _transactionMessageBytesToBase64(bytes: TransactionMessageBytes): TransactionMessageBytesBase64 {\n let binary = '';\n for (const b of bytes) {\n binary += String.fromCharCode(b);\n }\n return btoa(binary) as TransactionMessageBytesBase64;\n}\n\nfunction _getComputeUnitPriceMicroLamports(transactionMessageBytes: TransactionMessageBytes): bigint {\n const compiledTxMessage = getCompiledTransactionMessageDecoder().decode(transactionMessageBytes);\n\n for (const instruction of compiledTxMessage.instructions) {\n const programAddress = compiledTxMessage.staticAccounts[instruction.programAddressIndex];\n if (programAddress !== SOLANA_COMPUTE_BUDGET_PROGRAM) {\n continue;\n }\n\n const data = instruction.data;\n\n if (!data || data.length < 1 + 8) {\n continue;\n }\n\n // ComputeBudget: u8 discriminator, then args\n // discriminator 3 = SetComputeUnitPrice, args = u64 microLamports\n const discriminator = data[0];\n if (discriminator !== 3) {\n continue;\n }\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n\n return view.getBigUint64(1, true);\n }\n\n return 0n;\n}\n\nasync function _estimateRentFeesFromTransactionMessage({\n fromAddress,\n rpc,\n transactionMessageBytes,\n}: {\n fromAddress: string;\n rpc: Rpc<SolanaRpcApi>;\n transactionMessageBytes: TransactionMessageBytes;\n}): Promise<SolanaRentEstimate> {\n const compiledMessage: CompiledTransactionMessage =\n getCompiledTransactionMessageDecoder().decode(transactionMessageBytes);\n\n const createdAccounts = new Map<string, Omit<CreatedRentAccount, 'refunded'>>();\n const closedAccountDestinationByAddress = new Map<string, string>();\n\n let ataRentLamports: bigint | undefined;\n\n for (const instruction of compiledMessage.instructions) {\n const programAddress = compiledMessage.staticAccounts[instruction.programAddressIndex];\n\n if (programAddress === SOLANA_SYSTEM_PROGRAM) {\n const createdAccountAddress = _getInstructionAccountAddress(compiledMessage, instruction, 1);\n const lamports = _getSystemCreateAccountLamports(instruction.data);\n if (createdAccountAddress && lamports > 0n) {\n createdAccounts.set(createdAccountAddress, {\n address: createdAccountAddress,\n kind: 'system',\n lamports,\n });\n }\n continue;\n }\n\n if (programAddress === SOLANA_ASSOCIATED_TOKEN_PROGRAM) {\n const discriminator = instruction.data?.[0];\n const isAssociatedTokenCreateInstruction =\n discriminator === undefined || discriminator === 0 || discriminator === 1;\n\n if (!isAssociatedTokenCreateInstruction) {\n continue;\n }\n\n const associatedTokenAddress = _getInstructionAccountAddress(compiledMessage, instruction, 1);\n if (!associatedTokenAddress) {\n continue;\n }\n\n const accountInfo = await rpc.getAccountInfo(associatedTokenAddress).send();\n if (accountInfo.value) {\n continue;\n }\n\n if (ataRentLamports === undefined) {\n ataRentLamports = await rpc.getMinimumBalanceForRentExemption(SPL_TOKEN_ACCOUNT_SIZE_BYTES).send();\n }\n\n createdAccounts.set(associatedTokenAddress, {\n address: associatedTokenAddress,\n kind: 'ata',\n lamports: ataRentLamports,\n });\n\n continue;\n }\n\n const isSplTokenProgram =\n programAddress === SOLANA_SPL_TOKEN_PROGRAM || programAddress === SOLANA_SPL_TOKEN_2022_PROGRAM;\n if (!isSplTokenProgram) {\n continue;\n }\n\n const discriminator = instruction.data?.[0];\n if (discriminator !== 9) {\n continue;\n }\n\n const closedAccountAddress = _getInstructionAccountAddress(compiledMessage, instruction, 0);\n const refundDestinationAddress = _getInstructionAccountAddress(compiledMessage, instruction, 1);\n\n if (closedAccountAddress && refundDestinationAddress) {\n closedAccountDestinationByAddress.set(closedAccountAddress, refundDestinationAddress);\n }\n }\n\n const normalizedFromAddress = isSolanaAddress(fromAddress) ? fromAddress : undefined;\n const createdAccountEntries = Array.from(createdAccounts.values()).map((createdAccount) => {\n const refundDestinationAddress = closedAccountDestinationByAddress.get(createdAccount.address);\n const refunded = normalizedFromAddress !== undefined && refundDestinationAddress === normalizedFromAddress;\n\n return {\n ...createdAccount,\n refunded,\n } satisfies CreatedRentAccount;\n });\n\n const rentLamportsUpfront = createdAccountEntries.reduce((acc, account) => acc + account.lamports, 0n);\n const refundedLamports = createdAccountEntries.reduce(\n (acc, account) => acc + (account.refunded ? account.lamports : 0n),\n 0n,\n );\n const rentFeeNet = rentLamportsUpfront - refundedLamports;\n\n return {\n createdAccounts: createdAccountEntries,\n rentFee: rentLamportsUpfront,\n rentFeeNet,\n refundable: refundedLamports,\n };\n}\n\n/**\n * Resolves an account address used by a compiled instruction.\n *\n * Compiled instructions reference accounts by index into the transaction\n * message's `staticAccounts` list. This helper converts an instruction-local\n * `accountIndex` into the corresponding static account address.\n *\n * Returns `undefined` when the instruction does not provide an account at the\n * requested index.\n */\nfunction _getInstructionAccountAddress(\n message: CompiledTransactionMessage,\n instruction: CompiledTransactionMessage['instructions'][number],\n accountIndex: number,\n): CompiledTransactionMessage['staticAccounts'][number] | undefined {\n const messageAccountIndex = instruction.accountIndices?.[accountIndex];\n\n if (messageAccountIndex === undefined) {\n return undefined;\n }\n\n return message.staticAccounts[messageAccountIndex];\n}\n\n/**\n * Extracts lamports from System Program account-creation instruction data.\n *\n * Supported instruction layouts:\n * - `CreateAccount` (`u32 discriminator = 0`): lamports at byte offset `4`.\n * - `CreateAccountWithSeed` (`u32 discriminator = 3`): lamports are located\n * after the variable-length seed field.\n *\n * Returns `0n` when data is missing, malformed, or not one of the supported\n * System Program create-account variants.\n */\nfunction _getSystemCreateAccountLamports(data: CompiledTransactionMessage['instructions'][number]['data']): bigint {\n if (!data || data.length < 12) {\n return 0n;\n }\n\n const view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n const instructionDiscriminator = view.getUint32(0, true);\n\n if (instructionDiscriminator === 0 && data.length >= 12) {\n return view.getBigUint64(4, true);\n }\n\n if (instructionDiscriminator === 3 && data.length >= 44) {\n const seedLenOffset = 36;\n const seedLength = Number(view.getBigUint64(seedLenOffset, true));\n if (!Number.isSafeInteger(seedLength) || seedLength < 0) {\n return 0n;\n }\n\n const lamportsOffset = seedLenOffset + 8 + seedLength;\n if (lamportsOffset + 8 > data.length) {\n return 0n;\n }\n\n return new DataView(data.buffer, data.byteOffset + lamportsOffset, 8).getBigUint64(0, true);\n }\n\n return 0n;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ErrorCode as e,ErrorReason as t,InvalidParamsError as n,SdkError as r}from"../../../errors.js";import{caip2ToEip155ChainId as i}from"../../../utils/caip.js";import{isEvmNamespace as a,isSolanaNamespace as o}from"../../../_utils/chain.js";import{applyFeeUnitsBpsMargin as s,getEvmClientForChain as c,getSolanaRpcForChain as l}from"../../_utils.js";import{estimateEvmFeesPerGas as u}from"../../_evm-gas.js";import{markrGetSpenderAddress as d,markrSwap as f}from"../_api.js";import{assetToAddressString as p,calculateMarkrMinimumAmountOut as m,decodeMarkrRevertError as h,getMarkrSwapWrapperAbi as g,isTokenAddressNative as _}from"../_utils.js";import{isEvmSwapResponse as v,isSolanaSwapResponse as y}from"../_type-guards.js";import{encodeFunctionData as b,erc20Abi as x,isAddress as S}from"viem";import{getCompiledTransactionMessageDecoder as C,getTransactionDecoder as w,isAddress as T}from"@solana/kit";function E(e){return async(r,i)=>{if(a(r.sourceChain.chainId))return await D(r,i,e);if(o(r.sourceChain.chainId))return await O(r,i,e);throw new n(t.INVALID_PARAMS,`Unsupported source chain namespace for estimateNativeFee: ${r.sourceChain.chainId}`)}}async function D(a,o,{apiOptions:l,appId:h}){if(!S(a.fromAddress))throw new n(t.INVALID_PARAMS,`Invalid fromAddress: ${a.fromAddress}`);let g=c({chain:a.sourceChain}),y=p(a.assetIn,a.sourceChain.chainId);if(!S(y))throw new r(t.INVALID_PARAMS,e.INVALID_PARAMS,{details:`assetIn address is not a valid EVM address. Can not call estimateGas.`});let C=_(y),w=a.sourceChain.chainId.toLowerCase()!==a.targetChain.chainId.toLowerCase(),T=0n;if(!C){let t,{address:n}=await d(l,i(a.sourceChain.chainId),w);try{t=await g.readContract({address:y,abi:x,functionName:`allowance`,args:[a.fromAddress,n]})}catch(t){throw new r(`Error during allowance check`,e.VIEM_ERROR,{cause:t,details:`Failed to read ERC20 allowance for Markr spender.`})}if(t<a.amountIn)try{T=await g.estimateGas({account:a.fromAddress,to:y,data:b({abi:x,functionName:`approve`,args:[n,a.amountIn]}),value:0n})}catch(t){throw new r(`Error during gas estimation`,e.VIEM_ERROR,{cause:t,details:`Failed to estimate gas for ERC20 approval transaction.`})}}let E=T>0n,D=m({amountOut:a.amountOut,assetOut:a.assetOut,slippageBps:a.slippageBps}),O=await f(l,{amountIn:a.amountIn.toString(),appId:h,minAmountOut:D.toString(),tokenIn:y,tokenOut:p(a.assetOut,a.targetChain.chainId),uuid:a.id});if(!v(O))throw new r(t.CHAIN_NOT_SUPPORTED,e.INVALID_PARAMS,{details:`Received non-EVM swap response from Markr. Expected EVM transaction data for gas estimation, but got response with chainType ${O.chainType}.`});let A=0n;A=E?a.gasEstimate?s(a.gasEstimate,o?.feeUnitsMarginBps):s(a.fees.filter(e=>e.type===`gas`&&e.chainId===a.sourceChain.chainId).reduce((e,t)=>e+t.amount,0n)||700000n,o?.feeUnitsMarginBps):await k({crossChain:w,feeUnitsMarginBps:o?.feeUnitsMarginBps,fromAddress:a.fromAddress,sourceClient:g,swap:O});let j=await u(g,a.sourceChain,o?.overrides?.feeRateTier),M=o?.overrides?.maxFeePerGas??j.maxFeePerGas,N=o?.overrides?.maxPriorityFeePerGas??j.maxPriorityFeePerGas,P=(A+s(T,o?.feeUnitsMarginBps))*M;return{asset:a.sourceChain.networkToken,totalFee:P,meta:{approvalFee:E?s(T,o?.feeUnitsMarginBps)*M:void 0,maxFeePerGas:M,maxPriorityFeePerGas:N}}}async function O(n,i,{apiOptions:a,appId:o}){let c=p(n.assetIn,n.sourceChain.chainId);if(!T(c))throw new r(t.INVALID_PARAMS,e.INVALID_PARAMS,{details:`assetIn address is not a valid Solana address. Can not call estimateGas.`});let u=m({amountOut:n.amountOut,assetOut:n.assetOut,slippageBps:n.slippageBps}),d=await f(a,{amountIn:n.amountIn.toString(),appId:o,minAmountOut:u.toString(),tokenIn:c,tokenOut:p(n.assetOut,n.targetChain.chainId),userPublicKey:n.fromAddress,uuid:n.id});if(!y(d))throw new r(t.CHAIN_NOT_SUPPORTED,e.INVALID_PARAMS,{details:`Received non-Solana swap response from Markr. Expected Solana transaction data for fee estimation.`});let h=l({chain:n.sourceChain}),g=A(d.swapTransaction),_=w().decode(g),v=j(_.messageBytes),b=await h.getFeeForMessage(v).send();if(!b.value)throw new r(`Failed to get fee for message. Most likely the block hash in the transaction is expired.`,e.TIMEOUT,{details:`Please use a new quote with a recent block hash and try again.`});let x=b.value,S=await h.simulateTransaction(d.swapTransaction,{encoding:`base64`,sigVerify:!1}).send();if(S.value.err)throw new r(`Failed to simulate transaction for estimating fee.`,e.SOLANA_ERROR,{cause:S.value.err});let C=s(S.value.unitsConsumed??0n,i?.feeUnitsMarginBps),E=M(_.messageBytes),D=C*E/1000000n,O=await N({fromAddress:n.fromAddress,rpc:h,transactionMessageBytes:_.messageBytes}),k=x+D+O.rentFee;return{asset:n.sourceChain.networkToken,totalFee:k,refundable:O.refundable,meta:{baseFee:x,priorityFee:D,computeUnitPriceMicroLamports:E,unitsConsumed:C,createdAccounts:O.createdAccounts,rentFee:O.rentFee,rentFeeNet:O.rentFeeNet}}}async function k({crossChain:t,feeUnitsMarginBps:n,fromAddress:i,sourceClient:a,swap:o}){try{return s(await a.estimateGas({account:i,to:o.to,data:o.data,value:o.value}),n)}catch(n){let i=`Failed to estimate gas for Markr swap transaction.`;try{let e=h(await g(t),n);e&&(i=`${i} Markr revert: ${e}.`)}catch{}throw new r(`Error during gas estimation`,e.VIEM_ERROR,{cause:n,details:i})}}function A(e){return Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function j(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function M(e){let t=C().decode(e);for(let e of t.instructions){if(t.staticAccounts[e.programAddressIndex]!==`ComputeBudget111111111111111111111111111111`)continue;let n=e.data;if(!(!n||n.length<9)&&n[0]===3)return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(1,!0)}return 0n}async function N({fromAddress:e,rpc:t,transactionMessageBytes:n}){let r=C().decode(n),i=new Map,a=new Map,o;for(let e of r.instructions){let n=r.staticAccounts[e.programAddressIndex];if(n===`11111111111111111111111111111111`){let t=P(r,e,1),n=F(e.data);t&&n>0n&&i.set(t,{address:t,kind:`system`,lamports:n});continue}if(n===`ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL`){let n=e.data?.[0];if(!(n===void 0||n===0||n===1))continue;let a=P(r,e,1);if(!a||(await t.getAccountInfo(a).send()).value)continue;o===void 0&&(o=await t.getMinimumBalanceForRentExemption(165n).send()),i.set(a,{address:a,kind:`ata`,lamports:o});continue}if(!(n===`TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`||n===`TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`)||e.data?.[0]!==9)continue;let s=P(r,e,0),c=P(r,e,1);s&&c&&a.set(s,c)}let s=T(e)?e:void 0,c=Array.from(i.values()).map(e=>{let t=a.get(e.address),n=s!==void 0&&t===s;return{...e,refunded:n}}),l=c.reduce((e,t)=>e+t.lamports,0n),u=c.reduce((e,t)=>e+(t.refunded?t.lamports:0n),0n);return{createdAccounts:c,rentFee:l,rentFeeNet:l-u,refundable:u}}function P(e,t,n){let r=t.accountIndices?.[n];if(r!==void 0)return e.staticAccounts[r]}function F(e){if(!e||e.length<12)return 0n;let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint32(0,!0);if(n===0&&e.length>=12)return t.getBigUint64(4,!0);if(n===3&&e.length>=44){let n=Number(t.getBigUint64(36,!0));if(!Number.isSafeInteger(n)||n<0)return 0n;let r=44+n;return r+8>e.length?0n:new DataView(e.buffer,e.byteOffset+r,8).getBigUint64(0,!0)}return 0n}export{k as _estimateGasFromSwapResponse,E as estimateNativeFeeFactory};
|
|
2
|
+
//# sourceMappingURL=estimate-native-fee.js.map
|