0 txs
5 calls
constructor
constructor(address _systemRegistry, bool transferToCaller, address _daiUsdsConverter)
functions
dai
viewfunction dai() view returns (address)
daiUsdsConverter
viewfunction daiUsdsConverter() view returns (address)
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
TRANSFER_TO_CALLER
viewfunction TRANSFER_TO_CALLER() view returns (bool)
usds
viewfunction usds() view returns (address)
swap
payablefunction swap(tuple swapParams) payable returns (uint256 buyTokenAmountReceived)
events
Swapped
event Swapped(address indexed sellTokenAddress, address indexed buyTokenAddress, uint256 sellAmount, uint256 buyAmount, uint256 buyTokenAmountReceived)
errors
InsufficientBalance
error InsufficientBalance(uint256 balanceNeeded, uint256 balanceAvailable)
InsufficientBuyAmount
error InsufficientBuyAmount()
InsufficientBuyAmountReceived
error InsufficientBuyAmountReceived(uint256 buyTokenAmountReceived, uint256 buyAmount)
InsufficientSellAmount
error InsufficientSellAmount()
InvalidParam
error InvalidParam(string paramName)
SwapFailed
error SwapFailed()
TokenAddressZero
error TokenAddressZero()
ZeroAddress
error ZeroAddress(string paramName)
creation bytecode
0x61012060405234801562000011575f80fd5b50604051620017c0380380620017c0833981016040819052620000349162000204565b826200006e816040518060400160405280600f81526020016e5f73797374656d526567697374727960881b815250620001b360201b60201c565b6001600160a01b031660805260408051808201909152601081526f3230b4aab9b239a1b7b73b32b93a32b960811b6020820152620000ae908290620001b3565b6001600160a01b03811660c08190526040805163f4b9fa7560e01b8152905163f4b9fa75916004808201926020929091908290030181865afa158015620000f7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200011d919062000258565b6001600160a01b031660e0816001600160a01b031681525050806001600160a01b0316634cf282fb6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000173573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000199919062000258565b6001600160a01b03166101005250151560a05250620002cb565b6001600160a01b038216620001e8578060405163eac0d38960e01b8152600401620001df91906200027d565b60405180910390fd5b5050565b6001600160a01b038116811462000201575f80fd5b50565b5f805f6060848603121562000217575f80fd5b83516200022481620001ec565b602085015190935080151581146200023a575f80fd5b60408501519092506200024d81620001ec565b809150509250925092565b5f6020828403121562000269575f80fd5b81516200027681620001ec565b9392505050565b5f602080835283518060208501525f5b81811015620002ab578581018301518582016040015282016200028d565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a05160c05160e0516101005161143b620003855f395f8181608f0152818161032501528181610377015281816105050152818161061e015261078901525f8181610182015281816102e6015281816103b6015281816104c00152818161055c015281816105bd01526106b301525f818160da015281816106d501528181610720015281816107ab01526107f601525f818161010d0152818161025f015261066901525f818161014d015261085f015261143b5ff3fe608060405260043610610054575f3560e01c80633efe5daa146100585780634cf282fb1461007e57806380e60b90146100c9578063aa68da6b146100fc578063f12baf5c1461013f578063f4b9fa7514610171575b5f80fd5b61006b610066366004611022565b6101a4565b6040519081526020015b60405180910390f35b348015610089575f80fd5b506100b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610075565b3480156100d4575f80fd5b506100b17f000000000000000000000000000000000000000000000000000000000000000081565b348015610107575f80fd5b5061012f7f000000000000000000000000000000000000000000000000000000000000000081565b6040519015158152602001610075565b34801561014a575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000006100b1565b34801561017c575f80fd5b506100b17f000000000000000000000000000000000000000000000000000000000000000081565b80515f906001600160a01b03166101ce576040516381c609f760e01b815260040160405180910390fd5b60408201516001600160a01b03166101f9576040516381c609f760e01b815260040160405180910390fd5b81602001515f0361021d5760405163c5dd842560e01b815260040160405180910390fd5b81606001515f03610241576040516363988c1360e01b815260040160405180910390fd5b5f826080015180602001905181019061025a91906110ff565b90505f7f0000000000000000000000000000000000000000000000000000000000000000610288573061028a565b335b90508160200151156102dd575f8460a001518060200190518101906102af91906111a9565b8351909150156102ca576102c381836104bd565b93506102d7565b6102d485826105ba565b93505b50610409565b836020015192507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316845f01516001600160a01b031614801561035d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031684604001516001600160a01b0316145b15610375576103708185602001516106a6565b610409565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316845f01516001600160a01b03161480156103ee57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031684604001516001600160a01b0316145b156104015761037081856020015161077c565b610409610825565b8360600151831015610447576060840151604051634e8984c160e11b815261043e918591600401918252602082015260400190565b60405180910390fd5b83604001516001600160a01b0316845f01516001600160a01b03167fa54201e99d8e1488291e015a3af88c7a169bcf4932617ecd9536e1f1ad43511086602001518760600151876040516104ae939291909283526020830191909152604082015260600190565b60405180910390a35050919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360200151604001516001600160a01b03161415801561054257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360200151604001516001600160a01b031614155b1561054f5761054f610825565b6105588361085c565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168360200151604001516001600160a01b0316036105aa576105a582826106a6565b6105b4565b6105b4828261077c565b92915050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031682602001515f01516001600160a01b03160361060e5761060930846020015161077c565b61065c565b6020820151516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911603610654576106093084602001516106a6565b61065c610825565b6106658261085c565b90507f0000000000000000000000000000000000000000000000000000000000000000156105b45760408301516105b4906001600160a01b03163383610aa2565b6106fa6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610b0a565b6040516379603d5760e11b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063f2c07aae906044015b5f604051808303815f87803b158015610762575f80fd5b505af1158015610774573d5f803e3d5ffd5b505050505050565b6107d06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000083610b0a565b60405163068f301560e41b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906368f301509060440161074b565b604051634389d5ab60e01b815260206004820152600b60248201526a696e4f7574546f6b656e7360a81b604482015260640161043e565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dbba4c56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906112b8565b8251604051631d35e43960e11b81526001600160a01b039182166004820152911690633a6bc872906024015f6040518083038186803b15801561091e575f80fd5b505afa158015610930573d5f803e3d5ffd5b50505050602082015160409081015190516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610982573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a691906112da565b9050610a2484602001516040516024016109c0919061131c565b60408051601f19818403018152918152602080830180516001600160e01b0316631f7f2ed560e11b1790528151808301909252601382527214d958dbdb99185c9e54ddd85c11985a5b1959606a1b9082015286516001600160a01b03169190610c1d565b506040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610a69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8d91906112da565b9050610a9982826113a0565b95945050505050565b6040516001600160a01b038316602482015260448101829052610b0590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610c91565b505050565b801580610b825750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015610b5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b8091906112da565b155b610bed5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606482015260840161043e565b6040516001600160a01b038316602482015260448101829052610b0590849063095ea7b360e01b90606401610ace565b60605f80856001600160a01b031685604051610c3991906113bf565b5f60405180830381855af49150503d805f8114610c71576040519150601f19603f3d011682016040523d82523d5f602084013e610c76565b606091505b5091509150610c8786838387610d62565b9695505050505050565b5f610ce5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610de29092919063ffffffff16565b805190915015610b055780806020019051810190610d0391906113da565b610b055760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161043e565b60608315610dd05782515f03610dc9576001600160a01b0385163b610dc95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161043e565b5081610dda565b610dda8383610df0565b949350505050565b6060610dda84845f85610e1a565b815115610e005781518083602001fd5b8060405162461bcd60e51b815260040161043e91906113f3565b606082471015610e7b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161043e565b5f80866001600160a01b03168587604051610e9691906113bf565b5f6040518083038185875af1925050503d805f8114610ed0576040519150601f19603f3d011682016040523d82523d5f602084013e610ed5565b606091505b5091509150610ee687838387610d62565b979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715610f2857610f28610ef1565b60405290565b6040805190810167ffffffffffffffff81118282101715610f2857610f28610ef1565b604051601f8201601f1916810167ffffffffffffffff81118282101715610f7a57610f7a610ef1565b604052919050565b6001600160a01b0381168114610f96575f80fd5b50565b8035610fa481610f82565b919050565b5f67ffffffffffffffff821115610fc257610fc2610ef1565b50601f01601f191660200190565b5f82601f830112610fdf575f80fd5b8135610ff2610fed82610fa9565b610f51565b818152846020838601011115611006575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215611032575f80fd5b813567ffffffffffffffff80821115611049575f80fd5b9083019060e0828603121561105c575f80fd5b611064610f05565b61106d83610f99565b81526020830135602082015261108560408401610f99565b6040820152606083013560608201526080830135828111156110a5575f80fd5b6110b187828601610fd0565b60808301525060a0830135828111156110c8575f80fd5b6110d487828601610fd0565b60a08301525060c083013560c082015280935050505092915050565b80518015158114610fa4575f80fd5b5f6040828403121561110f575f80fd5b611117610f2e565b611120836110f0565b815261112e602084016110f0565b60208201529392505050565b8051610fa481610f82565b5f5b8381101561115f578181015183820152602001611147565b50505f910152565b5f82601f830112611176575f80fd5b8151611184610fed82610fa9565b818152846020838601011115611198575f80fd5b610dda826020830160208701611145565b5f602082840312156111b9575f80fd5b815167ffffffffffffffff808211156111d0575f80fd5b90830190604082860312156111e3575f80fd5b6111eb610f2e565b82516111f681610f82565b8152602083015182811115611209575f80fd5b929092019160e0838703121561121d575f80fd5b611225610f05565b61122e8461113a565b8152602084015160208201526112466040850161113a565b604082015260608401516060820152608084015183811115611266575f80fd5b61127288828701611167565b60808301525060a084015183811115611289575f80fd5b61129588828701611167565b60a08301525060c084015160c08201528060208301525080935050505092915050565b5f602082840312156112c8575f80fd5b81516112d381610f82565b9392505050565b5f602082840312156112ea575f80fd5b5051919050565b5f8151808452611308816020860160208601611145565b601f01601f19169290920160200192915050565b602081525f60018060a01b03808451166020840152602084015160408401528060408501511660608401525060608301516080830152608083015160e060a084015261136c6101008401826112f1565b905060a0840151601f198483030160c085015261138982826112f1565b91505060c084015160e08401528091505092915050565b818103818111156105b457634e487b7160e01b5f52601160045260245ffd5b5f82516113d0818460208701611145565b9190910192915050565b5f602082840312156113ea575f80fd5b6112d3826110f0565b602081525f6112d360208301846112f156fea26469706673582212206f2fec3caf1060d4ffbc3c24ebc542c96a009c46e6b60de101fccc479026235164736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa428500000000000000000000000000000000000000000000000000000000000000000000000000000000000000003225737a9bbb6473cb4a45b7244aca2befdb276a