Files
smom-dbis-138/artifacts/contracts/bridge/trustless/SwapRouter.sol/SwapRouter.json
2026-03-02 12:14:09 -08:00

337 lines
18 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "SwapRouter",
"sourceName": "contracts/bridge/trustless/SwapRouter.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_uniswapV3Router",
"type": "address"
},
{
"internalType": "address",
"name": "_curve3Pool",
"type": "address"
},
{
"internalType": "address",
"name": "_oneInchRouter",
"type": "address"
},
{
"internalType": "address",
"name": "_weth",
"type": "address"
},
{
"internalType": "address",
"name": "_usdt",
"type": "address"
},
{
"internalType": "address",
"name": "_usdc",
"type": "address"
},
{
"internalType": "address",
"name": "_dai",
"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": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "InsufficientOutput",
"type": "error"
},
{
"inputs": [],
"name": "InvalidAssetType",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "token",
"type": "address"
}
],
"name": "SafeERC20FailedOperation",
"type": "error"
},
{
"inputs": [],
"name": "SwapFailed",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAddress",
"type": "error"
},
{
"inputs": [],
"name": "ZeroAmount",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "enum SwapRouter.SwapProvider",
"name": "provider",
"type": "uint8"
},
{
"indexed": false,
"internalType": "enum LiquidityPoolETH.AssetType",
"name": "inputAsset",
"type": "uint8"
},
{
"indexed": false,
"internalType": "address",
"name": "inputToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "outputToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"name": "SwapExecuted",
"type": "event"
},
{
"inputs": [],
"name": "FEE_TIER_HIGH",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "FEE_TIER_LOW",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "FEE_TIER_MEDIUM",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "curve3Pool",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "dai",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oneInchRouter",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum LiquidityPoolETH.AssetType",
"name": "inputAsset",
"type": "uint8"
},
{
"internalType": "address",
"name": "stablecoinToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountIn",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amountOutMin",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "routeData",
"type": "bytes"
}
],
"name": "swapToStablecoin",
"outputs": [
{
"internalType": "uint256",
"name": "amountOut",
"type": "uint256"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "uniswapV3Router",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "usdc",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "usdt",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "weth",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x6101603461030457601f62000d3638819003918201601f191683019291906001600160401b03841183851017610309578160e092849260409687528339810103126103045761004d8161031f565b9160209061005c82840161031f565b61006782850161031f565b6100736060860161031f565b916100806080870161031f565b9661009960c061009260a08a0161031f565b980161031f565b6001600055956001600160a01b03828116156102c0578084161561027c578086161561023857808a16156101f457808916156101b05787161561016d575060805260a05260c05260e0526101009384526101209283526101409182525191610a02938462000334853960805184818161029e0152610441015260a05184610192015260c05184818161011701526104b7015260e0518481816101d50152818161047a015261080901525183818161025b01526103ec015251828181610218015261091e01525181818160d401526108f30152f35b60649086519062461bcd60e51b82526004820152601460248201527f53776170526f757465723a207a65726f204441490000000000000000000000006044820152fd5b865162461bcd60e51b815260048101839052601560248201527f53776170526f757465723a207a65726f205553444300000000000000000000006044820152606490fd5b865162461bcd60e51b815260048101839052601560248201527f53776170526f757465723a207a65726f205553445400000000000000000000006044820152606490fd5b865162461bcd60e51b815260048101839052601560248201527f53776170526f757465723a207a65726f205745544800000000000000000000006044820152606490fd5b865162461bcd60e51b815260048101839052601b60248201527f53776170526f757465723a207a65726f20437572766520706f6f6c00000000006044820152606490fd5b865162461bcd60e51b815260048101839052601f60248201527f53776170526f757465723a207a65726f20556e697377617020726f75746572006044820152606490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036103045756fe60806040818152600436101561001f575b5050361561001d57600080fd5b005b600091823560e01c90816306e934c8146102cd575080632c76d7a61461028a5780632f48ab7d146102475780633e413bee146102045780633fc8cef3146101c157806363a6b1da1461017e5780637574d9a0146101625780638f40e8f514610146578063ac3af20814610103578063f4b9fa75146100c05763f6b9ec7c0361001057346100bc57816003193601126100bc57602090516101f48152f35b5080fd5b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc5760209051610bb88152f35b50346100bc57816003193601126100bc57602090516127108152f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b838360a03660031901126100bc57600435600281101561037357602435936001600160a01b038516850361036b5760843567ffffffffffffffff80821161036f573660238301121561036f57816004013590811161036f573691016024011161036b57600284541461035c57506103546020946001926002865560643591604435916103cc565b925551908152f35b633ee5aeb560e01b8152600490fd5b8380fd5b8580fd5b8280fd5b90601f8019910116810190811067ffffffffffffffff82111761039957604052565b634e487b7160e01b600052604160045260246000fd5b908160209103126103c7575180151581036103c75790565b600080fd5b90916000918115610957576001600160a01b0393841690811561094557847f0000000000000000000000000000000000000000000000000000000000000000168214801561091a575b80156108ef575b156108aa576002811015610896578015610805575b6040805163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811660048301526024820186905291977f00000000000000000000000000000000000000000000000000000000000000008816939260209283816044818c8a5af180156107de576107e8575b507f000000000000000000000000000000000000000000000000000000000000000083888b8316610775575b50505061012c420190814211610761578a51996101008b01918b831067ffffffffffffffff84111761039957859389858f958f9087528b81520152838d01610bb890528c30906060015260808d01528960a08d01528460c08d01528a60e08d01528183519c8d9463414bf38960e01b8652828251166004870152828783015116602487015281015162ffffff1660448601528160608201511660648601526080810151608486015260a081015160a486015260c081015160c486015260e001511660e484015216818a5a9261010493f1978815610757578798610724575b508710156105d757875163081ceff360e41b8152600490fd5b875163a9059cbb60e01b82820190815233602483015260448083018a905282529798969795969495939493601f199189918291610615606482610377565b5190828a5af13d15610717573d67ffffffffffffffff81116107035790610659929161064a85885194601f8401160184610377565b82523d8a8584013e5b87610969565b8051908282151592836106ea575b5050506106d25782519680885260028310156106be57508601528401526060830152608082015260a081018290527fa45e5b8b9e0e57e6406649bc1b455608a4a62fe2639f6b448e0965a53dd796579060c090a190565b634e487b7160e01b81526021600452602490fd5b8251635274afe760e01b815260048101869052602490fd5b6106fa93508201810191016103af565b15388281610667565b634e487b7160e01b8a52604160045260248afd5b6106599150606090610653565b9097508181813d8311610750575b61073c8183610377565b8101031261074c575196386105be565b8680fd5b503d610732565b89513d89823e3d90fd5b634e487b7160e01b89526011600452602489fd5b8c5163095ea7b360e01b81526001600160a01b039390931660048401526024830152816044818c8a5af180156107de576107b1575b83886104e0565b6107d090843d86116107d7575b6107c88183610377565b8101906103af565b50386107aa565b503d6107be565b8b513d8b823e3d90fd5b6107fe90843d86116107d7576107c88183610377565b50386104b4565b50837f000000000000000000000000000000000000000000000000000000000000000016803b1561036b57838391600460405180948193630d0e30db60e41b83525af1801561088b5761085b575b506001610431565b67ffffffffffffffff8194929411610877576040529138610853565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b634e487b7160e01b84526021600452602484fd5b60405162461bcd60e51b815260206004820152601e60248201527f53776170526f757465723a20696e76616c696420737461626c65636f696e00006044820152606490fd5b50847f000000000000000000000000000000000000000000000000000000000000000016821461041c565b50847f0000000000000000000000000000000000000000000000000000000000000000168214610415565b60405163d92e233d60e01b8152600490fd5b604051631f2a200560e01b8152600490fd5b90610990575080511561097e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806109c3575b6109a1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561099956fea2646970667358221220539134ca6f338b543654fe6c9b1e5dab88cae5656eb2d9c68b46c0e23a1a887164736f6c63430008160033",
"deployedBytecode": "0x60806040818152600436101561001f575b5050361561001d57600080fd5b005b600091823560e01c90816306e934c8146102cd575080632c76d7a61461028a5780632f48ab7d146102475780633e413bee146102045780633fc8cef3146101c157806363a6b1da1461017e5780637574d9a0146101625780638f40e8f514610146578063ac3af20814610103578063f4b9fa75146100c05763f6b9ec7c0361001057346100bc57816003193601126100bc57602090516101f48152f35b5080fd5b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc5760209051610bb88152f35b50346100bc57816003193601126100bc57602090516127108152f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346100bc57816003193601126100bc57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b838360a03660031901126100bc57600435600281101561037357602435936001600160a01b038516850361036b5760843567ffffffffffffffff80821161036f573660238301121561036f57816004013590811161036f573691016024011161036b57600284541461035c57506103546020946001926002865560643591604435916103cc565b925551908152f35b633ee5aeb560e01b8152600490fd5b8380fd5b8580fd5b8280fd5b90601f8019910116810190811067ffffffffffffffff82111761039957604052565b634e487b7160e01b600052604160045260246000fd5b908160209103126103c7575180151581036103c75790565b600080fd5b90916000918115610957576001600160a01b0393841690811561094557847f0000000000000000000000000000000000000000000000000000000000000000168214801561091a575b80156108ef575b156108aa576002811015610896578015610805575b6040805163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811660048301526024820186905291977f00000000000000000000000000000000000000000000000000000000000000008816939260209283816044818c8a5af180156107de576107e8575b507f000000000000000000000000000000000000000000000000000000000000000083888b8316610775575b50505061012c420190814211610761578a51996101008b01918b831067ffffffffffffffff84111761039957859389858f958f9087528b81520152838d01610bb890528c30906060015260808d01528960a08d01528460c08d01528a60e08d01528183519c8d9463414bf38960e01b8652828251166004870152828783015116602487015281015162ffffff1660448601528160608201511660648601526080810151608486015260a081015160a486015260c081015160c486015260e001511660e484015216818a5a9261010493f1978815610757578798610724575b508710156105d757875163081ceff360e41b8152600490fd5b875163a9059cbb60e01b82820190815233602483015260448083018a905282529798969795969495939493601f199189918291610615606482610377565b5190828a5af13d15610717573d67ffffffffffffffff81116107035790610659929161064a85885194601f8401160184610377565b82523d8a8584013e5b87610969565b8051908282151592836106ea575b5050506106d25782519680885260028310156106be57508601528401526060830152608082015260a081018290527fa45e5b8b9e0e57e6406649bc1b455608a4a62fe2639f6b448e0965a53dd796579060c090a190565b634e487b7160e01b81526021600452602490fd5b8251635274afe760e01b815260048101869052602490fd5b6106fa93508201810191016103af565b15388281610667565b634e487b7160e01b8a52604160045260248afd5b6106599150606090610653565b9097508181813d8311610750575b61073c8183610377565b8101031261074c575196386105be565b8680fd5b503d610732565b89513d89823e3d90fd5b634e487b7160e01b89526011600452602489fd5b8c5163095ea7b360e01b81526001600160a01b039390931660048401526024830152816044818c8a5af180156107de576107b1575b83886104e0565b6107d090843d86116107d7575b6107c88183610377565b8101906103af565b50386107aa565b503d6107be565b8b513d8b823e3d90fd5b6107fe90843d86116107d7576107c88183610377565b50386104b4565b50837f000000000000000000000000000000000000000000000000000000000000000016803b1561036b57838391600460405180948193630d0e30db60e41b83525af1801561088b5761085b575b506001610431565b67ffffffffffffffff8194929411610877576040529138610853565b634e487b7160e01b82526041600452602482fd5b6040513d86823e3d90fd5b634e487b7160e01b84526021600452602484fd5b60405162461bcd60e51b815260206004820152601e60248201527f53776170526f757465723a20696e76616c696420737461626c65636f696e00006044820152606490fd5b50847f000000000000000000000000000000000000000000000000000000000000000016821461041c565b50847f0000000000000000000000000000000000000000000000000000000000000000168214610415565b60405163d92e233d60e01b8152600490fd5b604051631f2a200560e01b8152600490fd5b90610990575080511561097e57805190602001fd5b604051630a12f52160e11b8152600490fd5b815115806109c3575b6109a1575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561099956fea2646970667358221220539134ca6f338b543654fe6c9b1e5dab88cae5656eb2d9c68b46c0e23a1a887164736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}