0 txs
3 calls
constructor
constructor(address _systemRegistry, bool transferToCaller)
functions
getSystemRegistry
viewfunction getSystemRegistry() view returns (address)
TRANSFER_TO_CALLER
viewfunction TRANSFER_TO_CALLER() view returns (bool)
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()
SwapFailed
error SwapFailed()
TokenAddressZero
error TokenAddressZero()
ZeroAddress
error ZeroAddress(string paramName)
creation bytecode
0x60c060405234801562000010575f80fd5b5060405162001354380380620013548339810160408190526200003391620000be565b816200006d816040518060400160405280600f81526020016e5f73797374656d526567697374727960881b8152506200008560201b60201c565b6001600160a01b0316608052151560a0525062000156565b6001600160a01b038216620000ba578060405163eac0d38960e01b8152600401620000b1919062000108565b60405180910390fd5b5050565b5f8060408385031215620000d0575f80fd5b82516001600160a01b0381168114620000e7575f80fd5b60208401519092508015158114620000fd575f80fd5b809150509250929050565b5f602080835283518060208501525f5b81811015620001365785810183015185820160400152820162000118565b505f604082860101526040601f19601f8301168501019250505092915050565b60805160a0516111c2620001925f395f8181606e01528181610514015261084d01525f818160b9015281816102a1015261067101526111c25ff3fe608060405260043610610033575f3560e01c80633efe5daa14610037578063aa68da6b1461005d578063f12baf5c146100a0575b5f80fd5b61004a610045366004610da3565b6100e3565b6040519081526020015b60405180910390f35b348015610068575f80fd5b506100907f000000000000000000000000000000000000000000000000000000000000000081565b6040519015158152602001610054565b3480156100ab575f80fd5b506040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152602001610054565b80515f906001600160a01b031661010d576040516381c609f760e01b815260040160405180910390fd5b60408201516001600160a01b0316610138576040516381c609f760e01b815260040160405180910390fd5b81602001515f0361015c5760405163c5dd842560e01b815260040160405180910390fd5b81606001515f03610180576040516363988c1360e01b815260040160405180910390fd5b5f82608001518060200190518101906101999190610e80565b80519091506101b1576101ac8382610270565b6101bb565b6101bb83826105b5565b915082606001518210156101fb576060830151604051634e8984c160e11b81526101f2918491600401918252602082015260400190565b60405180910390fd5b82604001516001600160a01b0316835f01516001600160a01b03167fa54201e99d8e1488291e015a3af88c7a169bcf4932617ecd9536e1f1ad4351108560200151866060015186604051610262939291909283526020830191909152604082015260600190565b60405180910390a350919050565b6020808301518351918301515f9290156104e4575f8560a0015180602001905181019061029d9190610f2a565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dbba4c56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031f9190611039565b8151604051631d35e43960e11b81526001600160a01b039182166004820152911690633a6bc872906024015f6040518083038186803b158015610360575f80fd5b505afa158015610372573d5f803e3d5ffd5b505050602082015160409081015190516370a0823160e01b81523060048201529093505f91506001600160a01b038416906370a0823190602401602060405180830381865afa1580156103c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103eb919061105b565b90506104698260200151604051602401610405919061109d565b60408051601f19818403018152918152602080830180516001600160e01b0316631f7f2ed560e11b1790528151808301909252601382527214d958dbdb99185c9e54ddd85c11985a5b1959606a1b9082015284516001600160a01b03169190610888565b506040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa1580156104ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d2919061105b565b90506104de8282611121565b94505050505b60408501516104fe906001600160a01b03831690846108fc565b84604001516001600160a01b0316636e553f65837f000000000000000000000000000000000000000000000000000000000000000061053d573061053f565b335b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044016020604051808303815f875af1158015610588573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ac919061105b565b95945050505050565b604082810151835160208501519251635d043b2960e11b81526004810193909352306024840181905260448401525f9283916001600160a01b03169063ba087652906064016020604051808303815f875af1158015610616573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063a919061105b565b9050836020015115610847575f8560a0015180602001905181019061065f9190610f2a565b905081816020015160200181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636dbba4c56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ef9190611039565b8151604051631d35e43960e11b81526001600160a01b039182166004820152911690633a6bc872906024015f6040518083038186803b158015610730575f80fd5b505afa158015610742573d5f803e3d5ffd5b50506040516370a0823160e01b81523060048201525f92506001600160a01b03861691506370a0823190602401602060405180830381865afa15801561078a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae919061105b565b90506107c88260200151604051602401610405919061109d565b506040516370a0823160e01b81523060048201525f906001600160a01b038616906370a0823190602401602060405180830381865afa15801561080d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610831919061105b565b905061083d8282611121565b955050505061084b565b8092505b7f0000000000000000000000000000000000000000000000000000000000000000156108805761088085604001513385610a47565b505092915050565b60605f80856001600160a01b0316856040516108a49190611146565b5f60405180830381855af49150503d805f81146108dc576040519150601f19603f3d011682016040523d82523d5f602084013e6108e1565b606091505b50915091506108f286838387610a77565b9695505050505050565b8015806109745750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa15801561094e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610972919061105b565b155b6109df5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b60648201526084016101f2565b6040516001600160a01b038316602482015260448101829052610a4290849063095ea7b360e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610af7565b505050565b6040516001600160a01b038316602482015260448101829052610a4290849063a9059cbb60e01b90606401610a0b565b60608315610ae55782515f03610ade576001600160a01b0385163b610ade5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016101f2565b5081610aef565b610aef8383610bc8565b949350505050565b5f610b4b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610bf29092919063ffffffff16565b805190915015610a425780806020019051810190610b699190611161565b610a425760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016101f2565b815115610bd85781518083602001fd5b8060405162461bcd60e51b81526004016101f2919061117a565b6060610aef84845f85855f80866001600160a01b03168587604051610c179190611146565b5f6040518083038185875af1925050503d805f8114610c51576040519150601f19603f3d011682016040523d82523d5f602084013e610c56565b606091505b5091509150610c6787838387610a77565b979650505050505050565b634e487b7160e01b5f52604160045260245ffd5b60405160e0810167ffffffffffffffff81118282101715610ca957610ca9610c72565b60405290565b6040805190810167ffffffffffffffff81118282101715610ca957610ca9610c72565b604051601f8201601f1916810167ffffffffffffffff81118282101715610cfb57610cfb610c72565b604052919050565b6001600160a01b0381168114610d17575f80fd5b50565b8035610d2581610d03565b919050565b5f67ffffffffffffffff821115610d4357610d43610c72565b50601f01601f191660200190565b5f82601f830112610d60575f80fd5b8135610d73610d6e82610d2a565b610cd2565b818152846020838601011115610d87575f80fd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215610db3575f80fd5b813567ffffffffffffffff80821115610dca575f80fd5b9083019060e08286031215610ddd575f80fd5b610de5610c86565b610dee83610d1a565b815260208301356020820152610e0660408401610d1a565b604082015260608301356060820152608083013582811115610e26575f80fd5b610e3287828601610d51565b60808301525060a083013582811115610e49575f80fd5b610e5587828601610d51565b60a08301525060c083013560c082015280935050505092915050565b80518015158114610d25575f80fd5b5f60408284031215610e90575f80fd5b610e98610caf565b610ea183610e71565b8152610eaf60208401610e71565b60208201529392505050565b8051610d2581610d03565b5f5b83811015610ee0578181015183820152602001610ec8565b50505f910152565b5f82601f830112610ef7575f80fd5b8151610f05610d6e82610d2a565b818152846020838601011115610f19575f80fd5b610aef826020830160208701610ec6565b5f60208284031215610f3a575f80fd5b815167ffffffffffffffff80821115610f51575f80fd5b9083019060408286031215610f64575f80fd5b610f6c610caf565b8251610f7781610d03565b8152602083015182811115610f8a575f80fd5b929092019160e08387031215610f9e575f80fd5b610fa6610c86565b610faf84610ebb565b815260208401516020820152610fc760408501610ebb565b604082015260608401516060820152608084015183811115610fe7575f80fd5b610ff388828701610ee8565b60808301525060a08401518381111561100a575f80fd5b61101688828701610ee8565b60a08301525060c084015160c08201528060208301525080935050505092915050565b5f60208284031215611049575f80fd5b815161105481610d03565b9392505050565b5f6020828403121561106b575f80fd5b5051919050565b5f8151808452611089816020860160208601610ec6565b601f01601f19169290920160200192915050565b602081525f60018060a01b03808451166020840152602084015160408401528060408501511660608401525060608301516080830152608083015160e060a08401526110ed610100840182611072565b905060a0840151601f198483030160c085015261110a8282611072565b91505060c084015160e08401528091505092915050565b8181038181111561114057634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8251611157818460208701610ec6565b9190910192915050565b5f60208284031215611171575f80fd5b61105482610e71565b602081525f611054602083018461107256fea2646970667358221220ea321837aa11aaaedeab649df28045a4513a9c97b91d45c5365c96ff58e87cf264736f6c634300081800330000000000000000000000002218f90a98b0c070676f249ef44834686daa42850000000000000000000000000000000000000000000000000000000000000001