0 txs
1 call
constructor
constructor()
functions
DIA_DECIMALS
viewfunction DIA_DECIMALS() view returns (uint256)
getConfigAddress
viewfunction getConfigAddress(bytes32) view returns (address)
getOracleAddress
viewfunction getOracleAddress(address) view returns (address)
hashConfig
viewfunction hashConfig(tuple _config) view returns (bytes32 configId)
nonces
viewfunction nonces(address owner) view returns (uint256)
ORACLE_IMPLEMENTATION
viewfunction ORACLE_IMPLEMENTATION() view returns (address)
verifyConfig
viewfunction verifyConfig(tuple _config) view
create
nonpayablefunction create(tuple _config, bytes32 _externalSalt) returns (address oracle)
events
NewOracle
event NewOracle(address indexed oracle)
errors
AddressZero
error AddressZero()
EmptyPrimaryKey
error EmptyPrimaryKey()
FailedDeployment
error FailedDeployment()
HugeDivider
error HugeDivider()
HugeMultiplier
error HugeMultiplier()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidAccountNonce
error InvalidAccountNonce(address account, uint256 currentNonce)
MultiplierAndDividerZero
error MultiplierAndDividerZero()
TokensAreTheSame
error TokensAreTheSame()
creation bytecode
0x60a0604052348015600e575f5ffd5b506040516019906089565b604051809103905ff0801580156031573d5f5f3e3d5ffd5b506001600160a01b03811660795760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b604482015260640160405180910390fd5b6001600160a01b03166080526096565b610e958061129383390190565b6080516111de6100b55f395f8181610144015261022801526111de5ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c8063a678ffe411610058578063a678ffe41461012c578063a8f39f661461013f578063d40c754f14610166578063f896503a1461016e575f5ffd5b8063123aabe8146100895780632d2f017e146100b957806354482173146100ce5780637ecebe00146100f6575b5f5ffd5b61009c6100973660046106b4565b610196565b6040516001600160a01b0390911681526020015b60405180910390f35b6100cc6100c73660046106f6565b6102e2565b005b61009c6100dc366004610744565b60026020525f90815260409020546001600160a01b031681565b61011e610104366004610744565b6001600160a01b03165f9081526020819052604090205490565b6040519081526020016100b0565b61011e61013a366004610936565b6104a2565b61009c7f000000000000000000000000000000000000000000000000000000000000000081565b61011e600881565b61009c61017c366004610968565b60016020525f90815260409020546001600160a01b031681565b5f806101a461013a8561097f565b5f818152600160205260409020549091506001600160a01b031680156101e7576001600160a01b039081165f908152600260205260409020541691506102dc9050565b6101f0856102e2565b846040516101fd90610690565b61020791906109fb565b604051809103905ff080158015610220573d5f5f3e3d5ffd5b5090506102557f0000000000000000000000000000000000000000000000000000000000000000610250866104d1565b61051c565b925061026283828461052f565b6001600160a01b03831663906571478261027f6080890189610af7565b61028c60a08b018b610af7565b6040518663ffffffff1660e01b81526004016102ac959493929190610b3a565b5f604051808303815f87803b1580156102c3575f5ffd5b505af11580156102d5573d5f5f3e3d5ffd5b5050505050505b92915050565b5f6102f06020830183610744565b6001600160a01b03160361031757604051639fabe1c160e01b815260040160405180910390fd5b5f6103286060830160408401610744565b6001600160a01b03160361034f57604051639fabe1c160e01b815260040160405180910390fd5b5f6103606040830160208401610744565b6001600160a01b03160361038757604051639fabe1c160e01b815260040160405180910390fd5b6103976040820160208301610744565b6001600160a01b03166103b06060830160408401610744565b6001600160a01b0316036103d757604051633d4cfcc560e11b815260040160405180910390fd5b6103e46080820182610af7565b90505f036104055760405163b036333f60e01b815260040160405180910390fd5b6ec097ce7bc90715b34b9f10000000008160c00135111561043957604051631fe0fdf560e11b815260040160405180910390fd5b6ec097ce7bc90715b34b9f10000000008160e00135111561046d57604051631f604a8560e21b815260040160405180910390fd5b60c0810135158015610481575060e0810135155b1561049f5760405163d156ee7f60e01b815260040160405180910390fd5b50565b5f816040516020016104b49190610bab565b604051602081830303815290604052805190602001209050919050565b335f81815260208190526040812080546001810190915590919060405160609290921b6bffffffffffffffffffffffff191660208301526034820152605481018390526074016104b4565b5f61052883835f6105ff565b9392505050565b5f818152600160205260409020546001600160a01b03161561058d5760405162461bcd60e51b815260206004820152601260248201527110dbdb999a59d05b1c9958591e515e1a5cdd60721b60448201526064015b60405180910390fd5b5f81815260016020908152604080832080546001600160a01b038088166001600160a01b03199283168117909355918552600290935281842080549188169190931681179092555190917fb3eacd0e351fafdfefdec84e1cd19679b38dbcd63ea7c2c24da17fd2bc3b3c0e91a2505050565b5f8147101561062a5760405163cf47918160e01b815247600482015260248101839052604401610584565b6e5af43d82803e903d91602b57fd5bf360205283601152763d602d80600a3d3981f3363d3d373d3d3d363d730000008460881c175f52826037600984f590506001600160a01b0381166105285760405163b06ebf3d60e01b815260040160405180910390fd5b61053b80610c6e83390190565b5f61012082840312156106ae575f5ffd5b50919050565b5f5f604083850312156106c5575f5ffd5b823567ffffffffffffffff8111156106db575f5ffd5b6106e78582860161069d565b95602094909401359450505050565b5f60208284031215610706575f5ffd5b813567ffffffffffffffff81111561071c575f5ffd5b6107288482850161069d565b949350505050565b6001600160a01b038116811461049f575f5ffd5b5f60208284031215610754575f5ffd5b813561052881610730565b634e487b7160e01b5f52604160045260245ffd5b604051610120810167ffffffffffffffff811182821017156107975761079761075f565b60405290565b80356107a881610730565b919050565b803563ffffffff811681146107a8575f5ffd5b5f82601f8301126107cf575f5ffd5b813567ffffffffffffffff8111156107e9576107e961075f565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156108185761081861075f565b60405281815283820160200185101561082f575f5ffd5b816020850160208301375f918101602001919091529392505050565b803580151581146107a8575f5ffd5b5f610120828403121561086b575f5ffd5b610873610773565b905061087e8261079d565b815261088c6020830161079d565b602082015261089d6040830161079d565b60408201526108ae606083016107ad565b6060820152608082013567ffffffffffffffff8111156108cc575f5ffd5b6108d8848285016107c0565b60808301525060a082013567ffffffffffffffff8111156108f7575f5ffd5b610903848285016107c0565b60a08301525060c0828101359082015260e0808301359082015261092a610100830161084b565b61010082015292915050565b5f60208284031215610946575f5ffd5b813567ffffffffffffffff81111561095c575f5ffd5b6107288482850161085a565b5f60208284031215610978575f5ffd5b5035919050565b5f6102dc368361085a565b5f5f8335601e1984360301811261099f575f5ffd5b830160208101925035905067ffffffffffffffff8111156109be575f5ffd5b8036038213156109cc575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b60208152610a1c60208201610a0f8461079d565b6001600160a01b03169052565b5f610a296020840161079d565b6001600160a01b038116604084015250610a456040840161079d565b6001600160a01b038116606084015250610a61606084016107ad565b63ffffffff8116608084015250610a7b608084018461098a565b61012060a0850152610a92610140850182846109d3565b915050610aa260a085018561098a565b848303601f190160c0860152610ab98382846109d3565b60c087013560e08781019190915287013561010080880191909152909350610ae592508601905061084b565b8015156101208501525b509392505050565b5f5f8335601e19843603018112610b0c575f5ffd5b83018035915067ffffffffffffffff821115610b26575f5ffd5b6020019150368190038213156109cc575f5ffd5b6001600160a01b03861681526060602082018190525f90610b5e90830186886109d3565b8281036040840152610b718185876109d3565b98975050505050505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60208152610bc56020820183516001600160a01b03169052565b5f6020830151610be060408401826001600160a01b03169052565b5060408301516001600160a01b038116606084015250606083015163ffffffff8116608084015250608083015161012060a0840152610c23610140840182610b7d565b905060a0840151601f198483030160c0850152610c408282610b7d565b91505060c084015160e084015260e0840151610100840152610100840151610aef6101208501821515905256fe610180604052348015610010575f5ffd5b5060405161053b38038061053b83398101604081905261002f91610197565b60208101516040820151606083015160c08085015160e08087015160a09283529092526001600160a01b0394851690915291831661010090815263ffffffff909116608052835190921661012052820151511515610140520151151561016052610297565b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b03811182821017156100cb576100cb610094565b60405290565b80516001600160a01b03811681146100e7575f5ffd5b919050565b805163ffffffff811681146100e7575f5ffd5b5f82601f83011261010e575f5ffd5b81516001600160401b0381111561012757610127610094565b604051601f8201601f19908116603f011681016001600160401b038111828210171561015557610155610094565b60405281815283820160200185101561016c575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b805180151581146100e7575f5ffd5b5f602082840312156101a7575f5ffd5b81516001600160401b038111156101bc575f5ffd5b820161012081850312156101ce575f5ffd5b6101d66100a8565b6101df826100d1565b81526101ed602083016100d1565b60208201526101fe604083016100d1565b604082015261020f606083016100ec565b606082015260808201516001600160401b0381111561022c575f5ffd5b610238868285016100ff565b60808301525060a08201516001600160401b03811115610256575f5ffd5b610262868285016100ff565b60a08301525060c0828101519082015260e080830151908201526102896101008301610188565b610100820152949350505050565b60805160a05160c05160e0516101005161012051610140516101605161024e6102ed5f395f61015501525f60e101525f604201525f608f01525f606701525f61012f01525f61010901525f60ba015261024e5ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c8063c3f909d41461002d575b5f5ffd5b60408051610100810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301527f0000000000000000000000000000000000000000000000000000000000000000168183015263ffffffff7f00000000000000000000000000000000000000000000000000000000000000001660608201527f0000000000000000000000000000000000000000000000000000000000000000151560808201527f000000000000000000000000000000000000000000000000000000000000000060a08201527f000000000000000000000000000000000000000000000000000000000000000060c08201527f0000000000000000000000000000000000000000000000000000000000000000151560e082015290516101879190610190565b60405180910390f35b81516001600160a01b039081168252602080840151821690830152604080840151909116908201526060808301516101008301916101d59084018263ffffffff169052565b5060808301516101e9608084018215159052565b5060a083015160a083015260c083015160c083015260e083015161021160e084018215159052565b509291505056fea264697066735822122028443e49fab45f3290cea6d0f4036fc1dce15dfd27ce5c88cc91a0231a4e0f8564736f6c634300081c0033a2646970667358221220da5a33acd52ebdb9611db6ac5757a44b62629c71fbe509c90e3b53831b8bcbb164736f6c634300081c00336080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610dbf806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610085575f3560e01c80634163f2be116100585780634163f2be1461010157806346898455146101145780639065714714610146578063f9fa619a1461015b575f5ffd5b806313b0be3314610089578063210f70d6146100af578063217a4b70146100cf578063324b8d6e146100ef575b5f5ffd5b61009c6100973660046108c9565b61016c565b6040519081526020015b60405180910390f35b6100c26100bd3660046108f7565b61049e565b6040516100a69190610919565b6100d7610535565b6040516001600160a01b0390911681526020016100a6565b5f546100d7906001600160a01b031681565b6100c261010f3660046108f7565b6105ab565b610127610122366004610a17565b6105c3565b604080516001600160801b0390931683529015156020830152016100a6565b610159610154366004610a6d565b61066b565b005b6101596101693660046108f7565b50565b5f8054604080516330fe427560e21b815290516001600160a01b03909216918391839163c3f909d491600480820192610100929091908290030181865afa1580156101b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101dd9190610b15565b905080602001516001600160a01b0316846001600160a01b0316146102155760405163981a2a2b60e01b815260040160405180910390fd5b6001600160801b0385111561023d57604051631df5999960e21b815260040160405180910390fd5b80516001600160a01b0383165f9081526001602052604081208054919283926102f6929061026a90610bad565b80601f016020809104026020016040519081016040528092919081815260200182805461029690610bad565b80156102e15780601f106102b8576101008083540402835291602001916102e1565b820191905f5260205f20905b8154815290600101906020018083116102c457829003601f168201915b5050505050856060015163ffffffff166105c3565b91509150806103185760405163045b830b60e31b815260040160405180910390fd5b82608001516103695761033e87836001600160801b03168560a001518660c00151610802565b9450845f03610360576040516301a7e28b60e61b815260040160405180910390fd5b50505050610498565b82516001600160a01b0385165f908152600260205260408120805491928392610422929061039690610bad565b80601f01602080910402602001604051908101604052809291908181526020018280546103c290610bad565b801561040d5780601f106103e45761010080835404028352916020019161040d565b820191905f5260205f20905b8154815290600101906020018083116103f057829003601f168201915b5050505050876060015163ffffffff166105c3565b91509150806104435760405162b2f49d60e21b815260040160405180910390fd5b61046f89856001600160801b0316846001600160801b03168860a001518960c001518a60e0015161083c565b9650865f03610491576040516301a7e28b60e61b815260040160405180910390fd5b5050505050505b92915050565b60016020525f9081526040902080546104b690610bad565b80601f01602080910402602001604051908101604052809291908181526020018280546104e290610bad565b801561052d5780601f106105045761010080835404028352916020019161052d565b820191905f5260205f20905b81548152906001019060200180831161051057829003601f168201915b505050505081565b5f8054604080516330fe427560e21b8152905183926001600160a01b03169163c3f909d4916004808301926101009291908290030181865afa15801561057d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a19190610b15565b6040015192915050565b60026020525f9081526040902080546104b690610bad565b5f5f5f856001600160a01b031663960384a0866040518263ffffffff1660e01b81526004016105f29190610919565b6040805180830381865afa15801561060c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106309190610bfb565b90935090506001600160801b0381165f0361065e57604051630eda9c3d60e31b815260040160405180910390fd5b6001915050935093915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156106b05750825b90505f8267ffffffffffffffff1660011480156106cc5750303b155b9050811580156106da575080155b156106f85760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561072257845460ff60401b1916600160401b1785555b5f80546001600160a01b0319166001600160a01b038a16908117825581526001602052604090206107538882610c78565b506001600160a01b0388165f9081526002602052604090206107758782610c78565b506040516001600160a01b03891681527f5a651441bdafde3075a9c7e808d14a04ff56554649472572fa3ce6c349f31e739060200160405180910390a183156107f857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b5f815f0361082357828486028161081b5761081b610d33565b049050610834565b8484026108308382610d47565b9150505b949350505050565b8585025f83900361087e578161085b576108568582610d47565b610865565b6108658582610d6a565b905083818161087657610876610d33565b0490506108ab565b6108888382610d47565b90508161089e576108998582610d47565b6108a8565b6108a88582610d6a565b90505b9695505050505050565b6001600160a01b0381168114610169575f5ffd5b5f5f604083850312156108da575f5ffd5b8235915060208301356108ec816108b5565b809150509250929050565b5f60208284031215610907575f5ffd5b8135610912816108b5565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b634e487b7160e01b5f52604160045260245ffd5b604051610100810167ffffffffffffffff811182821017156109865761098661094e565b60405290565b5f82601f83011261099b575f5ffd5b813567ffffffffffffffff8111156109b5576109b561094e565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109e4576109e461094e565b6040528181528382016020018510156109fb575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f60608486031215610a29575f5ffd5b8335610a34816108b5565b9250602084013567ffffffffffffffff811115610a4f575f5ffd5b610a5b8682870161098c565b93969395505050506040919091013590565b5f5f5f60608486031215610a7f575f5ffd5b8335610a8a816108b5565b9250602084013567ffffffffffffffff811115610aa5575f5ffd5b610ab18682870161098c565b925050604084013567ffffffffffffffff811115610acd575f5ffd5b610ad98682870161098c565b9150509250925092565b8051610aee816108b5565b919050565b805163ffffffff81168114610aee575f5ffd5b80518015158114610aee575f5ffd5b5f610100828403128015610b27575f5ffd5b50610b30610962565b8251610b3b816108b5565b8152610b4960208401610ae3565b6020820152610b5a60408401610ae3565b6040820152610b6b60608401610af3565b6060820152610b7c60808401610b06565b608082015260a0838101519082015260c08084015190820152610ba160e08401610b06565b60e08201529392505050565b600181811c90821680610bc157607f821691505b602082108103610bdf57634e487b7160e01b5f52602260045260245ffd5b50919050565b80516001600160801b0381168114610aee575f5ffd5b5f5f60408385031215610c0c575f5ffd5b610c1583610be5565b9150610c2360208401610be5565b90509250929050565b601f821115610c7357805f5260205f20601f840160051c81016020851015610c515750805b601f840160051c820191505b81811015610c70575f8155600101610c5d565b50505b505050565b815167ffffffffffffffff811115610c9257610c9261094e565b610ca681610ca08454610bad565b84610c2c565b6020601f821160018114610cd8575f8315610cc15750848201515b5f19600385901b1c1916600184901b178455610c70565b5f84815260208120601f198516915b82811015610d075787850151825560209485019460019092019101610ce7565b5084821015610d2457868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601260045260245ffd5b808202811582820484141761049857634e487b7160e01b5f52601160045260245ffd5b5f82610d8457634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220f41501d1bd37f7067d2eefb770e9e64837558daebc9fef80a687e6f7289b5d1664736f6c634300081c0033