3 txs
5 calls
constructor
constructor(address fundAccount, address mainToken, address usdToken, address[] exchangeTokenAddress, address[] exchangeTokenChainLinkAddress, uint256 rate, uint256 swapFee, address aiTradeHubContractAddress)
functions
config
viewfunction config() view returns (address owner, address fundAccount, address mainToken, address usdToken, uint256 exchangeUSDTRate, uint256 swapFee, address aiTradeHubContract)
DECIMAL_PRECISION
viewfunction DECIMAL_PRECISION() view returns (uint256)
estimateSwapAmount
viewfunction estimateSwapAmount(address fromToken, address toToken, uint256 amount) view returns (uint256)
getSwapRate
viewfunction getSwapRate(address fromToken, address toToken) view returns (uint256)
getUSDPrice
viewfunction getUSDPrice(address tokenAddress) view returns (uint256)
isInWhiteList
viewfunction isInWhiteList(address _address) view returns (bool)
supportTokens
viewfunction supportTokens() view returns (address[])
TARGET_RATE_DIGITS
viewfunction TARGET_RATE_DIGITS() view returns (uint256)
addAddressToWhiteList
nonpayablefunction addAddressToWhiteList(address verifiedAddress)
addExchangeToken
nonpayablefunction addExchangeToken(address tokenAddress, address chainLinkTokenAddress)
removeAddressInWhiteList
nonpayablefunction removeAddressInWhiteList(address walletAddress)
removeExchangeToken
nonpayablefunction removeExchangeToken(address tokenAddress)
setAITradeHubContractAddress
nonpayablefunction setAITradeHubContractAddress(address aiTradeHubContractAddress)
setExchangeUSDTRate
nonpayablefunction setExchangeUSDTRate(uint256 rate)
setSwapFee
nonpayablefunction setSwapFee(uint256 fee)
setUSDToken
nonpayablefunction setUSDToken(address usdTokenAddress)
swap
nonpayablefunction swap(address fromToken, address toToken, uint256 amount)
events
SwapEvent
event SwapEvent(address indexed token1, address indexed token2, uint256 amount, uint256 amountSwap, uint256 rate)
errors
SwapAmountInvalidError
error SwapAmountInvalidError()
SwapInsufficientFundsError
error SwapInsufficientFundsError()
SwapNotContainListedTokenError
error SwapNotContainListedTokenError()
SwapNotContainMainTokenError
error SwapNotContainMainTokenError()
SwapTokenAddressNotInWhiteListError
error SwapTokenAddressNotInWhiteListError()
SwapTokenGetPriceError
error SwapTokenGetPriceError()
SwapTokenInvalidError
error SwapTokenInvalidError()
creation bytecode
0x60806040523480156200001157600080fd5b50604051620017f2380380620017f2833981016040819052620000349162000278565b60008054336001600160a01b03199182161782556001805482166001600160a01b038c8116919091179091556002805483168b83161790556003805483168a831617905560078690556008859055600980549092169084161790555b85518110156200018957848181518110620000af57620000af62000341565b602002602001015160006004016000888481518110620000d357620000d362000341565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060050186828151811062000139576200013962000341565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b0390921691909117905580620001808162000357565b91505062000090565b5050505050505050506200037f565b80516001600160a01b0381168114620001b057600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001dd57600080fd5b815160206001600160401b0380831115620001fc57620001fc620001b5565b8260051b604051601f19603f83011681018181108482111715620002245762000224620001b5565b6040529384528581018301938381019250878511156200024357600080fd5b83870191505b848210156200026d576200025d8262000198565b8352918301919083019062000249565b979650505050505050565b600080600080600080600080610100898b0312156200029657600080fd5b620002a18962000198565b9750620002b160208a0162000198565b9650620002c160408a0162000198565b60608a01519096506001600160401b0380821115620002df57600080fd5b620002ed8c838d01620001cb565b965060808b01519150808211156200030457600080fd5b50620003138b828c01620001cb565b94505060a0890151925060c089015191506200033260e08a0162000198565b90509295985092959890939650565b634e487b7160e01b600052603260045260246000fd5b6000600182016200037857634e487b7160e01b600052601160045260246000fd5b5060010190565b611463806200038f6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80637b53b965116100a25780639eb2fc2d116100715780639eb2fc2d14610281578063a20baee614610294578063ae5f9526146102a3578063df791e50146102ab578063e9061eab146102be57600080fd5b80637b53b965146102235780638b2f0f4f146102385780639244f4961461024b57806396bfc2291461025e57600080fd5b80635c234523116100de5780635c2345231461015e5780635f2a2518146101715780636796793a1461019757806379502c55146101aa57600080fd5b8063218fe3a51461011057806328c6b9ca1461012557806334e19907146101385780634c8bedfc1461014b575b600080fd5b61012361011e366004610fb5565b6102d1565b005b610123610133366004610fb5565b610332565b610123610146366004610fd0565b610432565b610123610159366004610fd0565b610467565b61012361016c366004610fe9565b61049c565b61018461017f36600461101c565b61056a565b6040519081526020015b60405180910390f35b6101236101a5366004610fb5565b61058f565b6000546001546002546003546007546008546009546101de966001600160a01b039081169681169581169481169392911687565b604080516001600160a01b0398891681529688166020880152948716948601949094529185166060850152608084015260a083015290911660c082015260e00161018e565b61022b6106b5565b60405161018e9190611058565b610184610246366004610fb5565b61071a565b610123610259366004610fb5565b6107ee565b61027161026c366004610fb5565b61085e565b604051901515815260200161018e565b61018461028f366004610fe9565b61087f565b610184670de0b6b3a764000081565b610184600881565b6101236102b936600461101c565b61088b565b6101236102cc366004610fb5565b61094d565b6000546001600160a01b031633146103045760405162461bcd60e51b81526004016102fb906110a5565b60405180910390fd5b6001600160a01b0381161561032f57600380546001600160a01b0319166001600160a01b0383161790555b50565b6000546001600160a01b0316331461035c5760405162461bcd60e51b81526004016102fb906110a5565b6001600160a01b0381166103835760405163e14162e760e01b815260040160405180910390fd5b6001600160a01b038116600090815260046020526040812080546001600160a01b03191690555b60055481101561042e57816001600160a01b0316600060050182815481106103d4576103d46110cc565b6000918252602090912001546001600160a01b03160361041c576005805482908110610402576104026110cc565b600091825260209091200180546001600160a01b03191690555b80610426816110f8565b9150506103aa565b5050565b6000546001600160a01b0316331461045c5760405162461bcd60e51b81526004016102fb906110a5565b801561032f57600855565b6000546001600160a01b031633146104915760405162461bcd60e51b81526004016102fb906110a5565b801561032f57600755565b6000546001600160a01b031633146104c65760405162461bcd60e51b81526004016102fb906110a5565b6001600160a01b03821615806104e357506001600160a01b038116155b156105015760405163e14162e760e01b815260040160405180910390fd5b6001600160a01b0391821660008181526004602052604081208054949093166001600160a01b0319948516179092556005805460018101825592527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09091018054909216179055565b6000806105778585610999565b905060006105858483610af7565b9695505050505050565b6000546001600160a01b031633146105b95760405162461bcd60e51b81526004016102fb906110a5565b6001600160a01b03811660009081526006602052604090205460ff161561032f5760095460405163611fc2eb60e11b81526001600160a01b038381166004830152600092839283928392169063c23f85d69060240161016060405180830381865afa15801561062c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106509190611111565b505098509850509750975050505050600084118061066e5750600083115b806106795750600082115b806106845750600081115b15610690575050505050565b505050506001600160a01b03166000908152600660205260409020805460ff19169055565b6060600060050180548060200260200160405190810160405280929190818152602001828054801561071057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106f2575b5050505050905090565b60006001600160a01b0382166107435760405163e14162e760e01b815260040160405180910390fd5b6002546001600160a01b03908116908316036107835760075461077d9061076c6008600261119f565b61077790600a61129a565b90610b4a565b92915050565b6003546001600160a01b03908116908316036107a55761077d6008600a61129a565b6001600160a01b0380831660009081526004602052604090205416806107de5760405163e14162e760e01b815260040160405180910390fd5b6107e781610b64565b9392505050565b6000546001600160a01b031633146108185760405162461bcd60e51b81526004016102fb906110a5565b6001600160a01b03811660009081526006602052604090205460ff1661032f576001600160a01b0381166000908152600660205260409020805460ff1916600117905550565b6001600160a01b03811660009081526006602052604081205460ff1661077d565b60006107e78383610999565b806000036108ac576040516378682bd760e11b815260040160405180910390fd5b6002546001600160a01b0390811690841681148015906108de5750806001600160a01b0316836001600160a01b031614155b156108fc5760405163350a403b60e01b815260040160405180910390fd5b3360009081526006602052604090205460ff1661092c576040516361d0853960e11b815260040160405180910390fd5b60006109388585610999565b905061094685858584610b89565b5050505050565b6000546001600160a01b031633146109775760405162461bcd60e51b81526004016102fb906110a5565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6002546003546000916001600160a01b03908116918391908116908616036109c45750600754610aef565b6003546001600160a01b03908116908516036109f4576007546109ed9061076c6008600261119f565b9050610aef565b6000826001600160a01b0316866001600160a01b031603610a16575083610a19565b50845b6001600160a01b038082166000908152600460205260409020541680610a52576040516310f6d7c560e31b815260040160405180910390fd5b6000610a5d82610b64565b905060008111610a8057604051633fca896160e11b815260040160405180910390fd5b846001600160a01b0316886001600160a01b031603610acc57610ac581610777610aac6008600a61129a565b600754610abf9061076c6008600261119f565b90610cda565b9350610aeb565b610ae8610adb6008600a61129a565b600754610777908461119f565b93505b5050505b949350505050565b600080610b13610b096008600a61129a565b6107778686610cda565b90506000610b356103e861077760006008015485610cda90919063ffffffff16565b9050610b418282610d0f565b95945050505050565b6000808211610b5857600080fd5b6000610aef83856112a6565b600080610b7083610d2a565b90506000610aef8260200151836080015160ff16610e50565b6040516370a0823160e01b81523360048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610bd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf491906112c8565b905060008111610c1757604051631573108160e31b815260040160405180910390fd5b600154610c33906001600160a01b038781169133911686610eab565b6000610c3f8484610af7565b600154909150610c5d906001600160a01b0387811691163384610eab565b610c8160405180606001604052806027815260200161140760279139858584610f35565b60408051858152602081018390529081018490526001600160a01b0380871691908816907f74c8634a4ff990ca56c3462507c71548e7ba1ad9569669f249f0879151daf73a9060600160405180910390a3505050505050565b600082600003610cec5750600061077d565b6000610cf8838561119f565b905082610d0585836112a6565b146107e757600080fd5b600082821115610d1e57600080fd5b6000610aef83856112e1565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610daf575060408051601f3d908101601f19168201909252610dac918101906112f4565b60015b610db857919050565b60ff166080820152816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015610e1a575060408051601f3d908101601f19168201909252610e1791810190611331565b60015b610e2357919050565b5069ffffffffffffffffffff9093168452506020830152604082015260016060820152919050565b919050565b60008060088310610e8257610e666008846112e1565b610e7190600a61129a565b610e7b90856112a6565b90506107e7565b60088310156107e757610e968360086112e1565b610ea190600a61129a565b610aef908561119f565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd906064016020604051808303816000875af1158015610f02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f269190611381565b610f2f57600080fd5b50505050565b610f2f84848484604051602401610f4f94939291906113a3565b60408051601f198184030181529190526020810180516001600160e01b031663a7a8785360e01b17905261032f8160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b80356001600160a01b0381168114610e4b57600080fd5b600060208284031215610fc757600080fd5b6107e782610f9e565b600060208284031215610fe257600080fd5b5035919050565b60008060408385031215610ffc57600080fd5b61100583610f9e565b915061101360208401610f9e565b90509250929050565b60008060006060848603121561103157600080fd5b61103a84610f9e565b925061104860208501610f9e565b9150604084013590509250925092565b6020808252825182820181905260009190848201906040850190845b818110156110995783516001600160a01b031683529284019291840191600101611074565b50909695505050505050565b6020808252600d908201526c2737ba103a34329037bbb732b960991b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161110a5761110a6110e2565b5060010190565b60008060008060008060008060008060006101608c8e03121561113357600080fd5b8b519a5060208c0151995060408c0151985060608c0151975060808c0151965060a08c0151955060c08c0151945060e08c015193506101008c015192506101208c015191506101408c01516003811061118b57600080fd5b809150509295989b509295989b9093969950565b808202811582820484141761077d5761077d6110e2565b600181815b808511156111f15781600019048211156111d7576111d76110e2565b808516156111e457918102915b93841c93908002906111bb565b509250929050565b6000826112085750600161077d565b816112155750600061077d565b816001811461122b576002811461123557611251565b600191505061077d565b60ff841115611246576112466110e2565b50506001821b61077d565b5060208310610133831016604e8410600b8410161715611274575081810a61077d565b61127e83836111b6565b8060001904821115611292576112926110e2565b029392505050565b60006107e783836111f9565b6000826112c357634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156112da57600080fd5b5051919050565b8181038181111561077d5761077d6110e2565b60006020828403121561130657600080fd5b815160ff811681146107e757600080fd5b805169ffffffffffffffffffff81168114610e4b57600080fd5b600080600080600060a0868803121561134957600080fd5b61135286611317565b945060208601519350604086015192506060860151915061137560808701611317565b90509295509295909350565b60006020828403121561139357600080fd5b815180151581146107e757600080fd5b608081526000855180608084015260005b818110156113d157602081890181015160a08684010152016113b4565b50600060a0828501015260a0601f19601f8301168401019150508460208301528360408301528260608301529594505050505056fe537761703a20616d6f756e7420257320726174652025732c205377617020616d6f756e74202573a264697066735822122032edc6279dfef02039afcfa334b69fcc4619413c5019529868fec2e9a435c26764736f6c634300081300330000000000000000000000003e3899adb50acd77bb010262803bb240dcc5122300000000000000000000000088e373de11b49c03be77ad93a2caf7cf7dc3102c00000000000000000000000055d398326f99059ff775485246999027b319795500000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000466762aae51a862c05dfa937e3da295627b0916100000000000000000000000000000000000000000000000000000000000000070000000000000000000000007130d2a12b9bcbfae4f2634d864a1ee1ce3ead9c0000000000000000000000002170ed0880ac9a755fd29b2688956bd959f933f80000000000000000000000001d2f0da169ceb9fc7b3144628db156f3f6c60dbe000000000000000000000000570a5d26f7765ecb712c0924e4de545b89fd43df0000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d0000000000000000000000003ee2200efb3400fabb9aacf31297cbdd1d435d47000000000000000000000000ce7de646e7208a4ef112cb6ed5038fa6cc6b12e30000000000000000000000000000000000000000000000000000000000000007000000000000000000000000264990fbd0a4796a3e3d8e37c4d5f87a3aca5ebf0000000000000000000000009ef1b8c0e4f7dc8bf5719ea496883dc6401d5b2e00000000000000000000000093a67d414896a280bf8ffb3b389fe3686e014fda0000000000000000000000000e8a53dd9c13589df6382f13da6b3ec8f919b32300000000000000000000000051597f405303c4377e36123cbc172b13269ea163000000000000000000000000a767f745331d267c7751297d982b050c93985627000000000000000000000000f4c5e535756d11994fcbb12ba8add0192d9b88be