2 txs
3 calls
constructor
constructor(address nativePriceAggregator, address wnative)
functions
_nativePriceAggregator
viewfunction _nativePriceAggregator() view returns (address)
_wnative
viewfunction _wnative() view returns (address)
DECIMALS
viewfunction DECIMALS() view returns (uint256)
getNativePrice
viewfunction getNativePrice(address token) view returns (uint256 nativePrice)
getUsd
viewfunction getUsd(address token) view returns (uint256 price)
owner
viewfunction owner() view returns (address)
PRECISION
viewfunction PRECISION() view returns (uint256)
sources
viewfunction sources(address) view returns (uint8 sourceType, address sourceAddress, address baseAddress)
setNativePriceAggregator
nonpayablefunction setNativePriceAggregator(address nativePriceAggregator)
setSource
nonpayablefunction setSource(address token, uint8 sourceType, address sourceAddress, address baseAddress)
setSourceList
nonpayablefunction setSourceList(tuple[] sourceList)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed user, address indexed newOwner)
UpdateSource
event UpdateSource(address indexed token, uint8 indexed sourceType, address sourceAddress, address indexed baseAddress)
errors
IncorrectBaseAddress
error IncorrectBaseAddress()
IncorrectChainlinkPrice
error IncorrectChainlinkPrice()
IncorrectSourceAddress
error IncorrectSourceAddress()
UnknowPrice
error UnknowPrice()
creation bytecode
0x60a080604052346100db57604081612497803803809161001f82856100df565b8339810103126100db5761003e602061003783610116565b9201610116565b5f80546001600160a01b031916339081178255907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36001600160801b0360025560805261008d81610160565b50600380546001600160a01b0319166001600160a01b03929092169190911790556040516121b690816102e1823960805181818161041f0152818161068201528181610c3c0152610fdc0152f35b5f80fd5b601f909101601f19168101906001600160401b0382119082101761010257604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100db57565b51906001600160501b03821682036100db57565b604d811161014c57600a0a90565b634e487b7160e01b5f52601160045260245ffd5b604051633fabe5a360e21b81526001600160a01b03919091169060a081600481855afa908115610279575f91610293575b505f811315610284576004602082936040519283809263313ce56760e01b82525afa8015610279575f9061023c575b60ff1691905060068210156101f857506006036006811161014c576101e49061013e565b9081810291818304149015171561014c5790565b60068211156102365750600519810190811161014c576102179061013e565b908115610222570490565b634e487b7160e01b5f52601260045260245ffd5b91505090565b506020813d602011610271575b81610256602093836100df565b810103126100db575160ff811681036100db5760ff906101c0565b3d9150610249565b6040513d5f823e3d90fd5b63252a0a3960e11b5f5260045ffd5b905060a0813d60a0116102d8575b816102ae60a093836100df565b810103126100db576102bf8161012a565b506102d160806020830151920161012a565b505f610191565b3d91506102a156fe60806040526004361015610011575f80fd5b5f3560e01c8063287d213514610a825780632e0f262514610a495780632e70218e146106a6578063318bf16e14610638578063569ba30f146105e75780638da5cb5b14610597578063aaf5eb681461055e578063b750bdde146104ac578063c23ede35146103d1578063d04a8f7e146101df578063f2fde38b146101335763fc34a0251461009d575f80fd5b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f5773ffffffffffffffffffffffffffffffffffffffff6100e9610ac3565b6100f7825f54163314610c9e565b61010081610d8d565b50167fffffffffffffffffffffffff000000000000000000000000000000000000000060035416176003555f80f35b5f80fd5b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f577fffffffffffffffffffffffff000000000000000000000000000000000000000061018b610ac3565b73ffffffffffffffffffffffffffffffffffffffff5f54916101b08284163314610c9e565b1691829116175f55337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b3461012f5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57610216610ac3565b602435600481101561012f5760443573ffffffffffffffffffffffffffffffffffffffff811680910361012f576064359273ffffffffffffffffffffffffffffffffffffffff841680940361012f5761028773ffffffffffffffffffffffffffffffffffffffff5f54163314610c9e565b6040519161029483610b07565b61029e8484610d51565b602083019080825273ffffffffffffffffffffffffffffffffffffffff60408501938785526102cd8187611104565b1693845f52600160205260405f2090519360048510156103a457600173ffffffffffffffffffffffffffffffffffffffff80927f30b6368a7c302c2592c2670f5282b03b8b9cb94a774bac2825642a498efa77db976020977fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008954935160081b1693169116171785555116920191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055604051908152a4005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57610408610ac3565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8216145f1461046d57506020620f42405b604051908152f35b61047690610f58565b801561048457602090610465565b7f9c2ea535000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f5773ffffffffffffffffffffffffffffffffffffffff6104f8610ac3565b165f52600160205260405f2080549073ffffffffffffffffffffffffffffffffffffffff600160ff8416920154166040519160048110156103a45760609373ffffffffffffffffffffffffffffffffffffffff91845260081c1660208301526040820152f35b3461012f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57602060405160128152f35b3461012f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b3461012f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b3461012f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f5760043567ffffffffffffffff811161012f573660238201121561012f57806004013567ffffffffffffffff8111610a1c576040519161071a60208360051b0184610b23565b8183526024602084019260071b8201019036821161012f57602401915b8183106109a3578361076173ffffffffffffffffffffffffffffffffffffffff5f54163314610c9e565b5f5b81518110156109a157610782602061077b8385610d03565b5101610d44565b73ffffffffffffffffffffffffffffffffffffffff60406107a38486610d03565b5101511673ffffffffffffffffffffffffffffffffffffffff60606107c88587610d03565b51015116906107e3604051936107dd85610b07565b84610d51565b602083019081526040830191825261081c73ffffffffffffffffffffffffffffffffffffffff6108138688610d03565b51511684611104565b73ffffffffffffffffffffffffffffffffffffffff61083b8587610d03565b5151165f52600160205260405f2092519060048210156103a45773ffffffffffffffffffffffffffffffffffffffff9260019284927fffffffffffffffffffffff00000000000000000000000000000000000000000060ff74ffffffffffffffffffffffffffffffffffffffff008954935160081b1693169116171785555116920191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff6109058284610d03565b51511690610918602061077b8386610d03565b9173ffffffffffffffffffffffffffffffffffffffff604061093a8487610d03565b510151169273ffffffffffffffffffffffffffffffffffffffff60606109608588610d03565b510151169160048210156103a4577f30b6368a7c302c2592c2670f5282b03b8b9cb94a774bac2825642a498efa77db6020600196604051908152a401610763565b005b60808336031261012f57604051906080820182811067ffffffffffffffff821117610a1c576040526109d484610ae6565b8252602084013590600482101561012f57826020928360809501526109fb60408701610ae6565b6040820152610a0c60608701610ae6565b6060820152815201920191610737565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b3461012f575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f57602060405160068152f35b3461012f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012f576020610465610abe610ac3565b610c03565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012f57565b359073ffffffffffffffffffffffffffffffffffffffff8216820361012f57565b6060810190811067ffffffffffffffff821117610a1c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610a1c57604052565b90620f4240820291808304620f42401490151715610b7e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810292918115918404141715610b7e57565b604d8111610b7e57600a0a90565b8115610bd6570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b610c2473ffffffffffffffffffffffffffffffffffffffff60035416610d8d565b9073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff821614610c9a57610c8190610f58565b90811561048457620f424091610c9691610bab565b0490565b5090565b15610ca557565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152fd5b8051821015610d175760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5160048110156103a45790565b60048210156103a45752565b519069ffffffffffffffffffff8216820361012f57565b9081602091031261012f575160ff8116810361012f5790565b73ffffffffffffffffffffffffffffffffffffffff16604051907ffeaf968c00000000000000000000000000000000000000000000000000000000825260a082600481845afa918215610ed6575f92610f09575b505f821315610ee157600460208392604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa8015610ed65760ff915f91610ea7575b5016916006831015610e5b5750906006039060068211610b7e57610e52610e5892610bbe565b90610bab565b90565b6006831115610ea157507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa8201918211610b7e57610e9b610e5892610bbe565b90610bcc565b91505090565b610ec9915060203d602011610ecf575b610ec18183610b23565b810190610d74565b5f610e2c565b503d610eb7565b6040513d5f823e3d90fd5b7f4a541472000000000000000000000000000000000000000000000000000000005f5260045ffd5b90915060a0813d60a011610f50575b81610f2560a09383610b23565b8101031261012f57610f3681610d5d565b50610f48608060208301519201610d5d565b50905f610de1565b3d9150610f18565b905f9173ffffffffffffffffffffffffffffffffffffffff81165f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff600160405193610fa285610b07565b828154610fb260ff821688610d51565b60081c1660208601520154166040830181815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168092146110ca5773ffffffffffffffffffffffffffffffffffffffff8151165f52600160205260405f209173ffffffffffffffffffffffffffffffffffffffff60016040519461104b86610b07565b82815461105b60ff821689610d51565b60081c1660208701520154169081604085015281151591826110c0575b50506110845750505050565b620f4240949550916110b56110bb9273ffffffffffffffffffffffffffffffffffffffff610c9696955116906114f2565b926114f2565b610bab565b1490505f80611078565b505090610e589293506114f2565b9081602091031261012f575173ffffffffffffffffffffffffffffffffffffffff8116810361012f5790565b61110e82826114f2565b1561048457805160048110156103a4571580156114de575b61133e575b805160048110156103a457600214611141575050565b73ffffffffffffffffffffffffffffffffffffffff60208201511690604051927fc66106570000000000000000000000000000000000000000000000000000000084525f6004850152602084602481865afa928315610ed6576024945f9461131c575b50602090604051958680927fc6610657000000000000000000000000000000000000000000000000000000008252600160048301525afa938415610ed6575f946112d3575b5073ffffffffffffffffffffffffffffffffffffffff92831692168281141590816112b2575b5061128a576040015173ffffffffffffffffffffffffffffffffffffffff16908114159182611269575b505061124157565b7ffd496b43000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff16141590505f80611239565b7f52f4161a000000000000000000000000000000000000000000000000000000005f5260045ffd5b905073ffffffffffffffffffffffffffffffffffffffff841614155f61120f565b73ffffffffffffffffffffffffffffffffffffffff91945061130d829160203d602011611315575b6113058183610b23565b8101906110d8565b9491506111e9565b503d6112fb565b602091945061133790823d8411611315576113058183610b23565b93906111a4565b73ffffffffffffffffffffffffffffffffffffffff602082015116604051907f0dfe1681000000000000000000000000000000000000000000000000000000008252602082600481845afa908115610ed6576004925f926114bc575b50602090604051938480927fd21220a70000000000000000000000000000000000000000000000000000000082525afa918215610ed6575f9261149b575b5073ffffffffffffffffffffffffffffffffffffffff80851691169080821415908161147a575b5061128a5773ffffffffffffffffffffffffffffffffffffffff604084015116809114159182611459575b50501561112b577ffd496b43000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff16141590505f8061142a565b905073ffffffffffffffffffffffffffffffffffffffff831614155f6113ff565b6114b591925060203d602011611315576113058183610b23565b905f6113d8565b60209192506114d790823d8411611315576113058183610b23565b919061139a565b50805160048110156103a457600114611126565b90815160048110156103a457600314611cd857815160048110156103a4571561198257815160048110156103a45760011461158457815160048110156103a457600214611561577f9c2ea535000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff6020610e5893015116611d37565b90602073ffffffffffffffffffffffffffffffffffffffff910151166040517f3850c7bd00000000000000000000000000000000000000000000000000000000815260e081600481855afa8015610ed6575f906118ce575b73ffffffffffffffffffffffffffffffffffffffff915016801580156118c3575b61048457604051917f0dfe1681000000000000000000000000000000000000000000000000000000008352602083600481845afa908115610ed6576004935f926118a1575b50602090604051948580927fd21220a70000000000000000000000000000000000000000000000000000000082525afa928315610ed6575f9361186a575b5073ffffffffffffffffffffffffffffffffffffffff1691604051917f313ce567000000000000000000000000000000000000000000000000000000008352602083600481875afa8015610ed65760ff60209173ffffffffffffffffffffffffffffffffffffffff955f9161184d575b5016926004604051809681937f313ce567000000000000000000000000000000000000000000000000000000008352165afa928315610ed6575f93611828575b508061173b91610bab565b9060128101809111610b7e5760ff9161175661175c92610bbe565b90612047565b911660120180601211610b7e5773ffffffffffffffffffffffffffffffffffffffff9161178b61179192610bbe565b906120d9565b92160361179b5790565b600190620f424060025b600181116117e15750807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311610b7e57610e589202610bcc565b90807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048111610b7e576001821661181f575b80029060011c6117a5565b80930292611814565b61173b9193506118469060203d602011610ecf57610ec18183610b23565b9290611730565b6118649150833d8511610ecf57610ec18183610b23565b5f6116f0565b73ffffffffffffffffffffffffffffffffffffffff91935061189a9060203d602011611315576113058183610b23565b9290611680565b60209192506118bc90823d8411611315576113058183610b23565b9190611642565b5060025481116115fd565b5060e0813d60e01161197a575b816118e860e09383610b23565b8101031261012f5780519073ffffffffffffffffffffffffffffffffffffffff8216820361012f5760208101518060020b0361012f578061192d604060c09301611d28565b5061193a60608201611d28565b5061194760808201611d28565b5061195460a08201611d17565b5001518015150361012f5773ffffffffffffffffffffffffffffffffffffffff906115dc565b3d91506118db565b90602073ffffffffffffffffffffffffffffffffffffffff9101511690604051917f0dfe1681000000000000000000000000000000000000000000000000000000008352602083600481845afa928315610ed6575f93611cb7575b50604051927fd21220a7000000000000000000000000000000000000000000000000000000008452602084600481855afa918215610ed6576004945f93611c93575b50606090604051958680927f0902f1ac0000000000000000000000000000000000000000000000000000000082525afa938415610ed6575f905f95611c30575b506dffffffffffffffffffffffffffff1690811590818015611c18575b6104845773ffffffffffffffffffffffffffffffffffffffff166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610ed65760ff60209173ffffffffffffffffffffffffffffffffffffffff935f91611bfb575b5016956004604051809481937f313ce567000000000000000000000000000000000000000000000000000000008352165afa908115610ed65773ffffffffffffffffffffffffffffffffffffffff9160ff915f91611bdc575b5016951603611b995715611b5c57505050505f90565b60068201809211610b7e57610e52611b93610e58956dffffffffffffffffffffffffffff611b8c610e9b96610bbe565b9116610bab565b93610bbe565b50929091906dffffffffffffffffffffffffffff1680611bbb57505050505f90565b60068201809211610b7e57610e52611b93610e5895610e52610e9b95610bbe565b611bf5915060203d602011610ecf57610ec18183610b23565b5f611b46565b611c129150833d8511610ecf57610ec18183610b23565b5f611aed565b506dffffffffffffffffffffffffffff861615611a7c565b9450506060843d606011611c8b575b81611c4c60609383610b23565b8101031261012f576dffffffffffffffffffffffffffff611c6c85611cfc565b611c846040611c7d60208901611cfc565b9701611d17565b5090611a5f565b3d9150611c3f565b6060919350611cb09060203d602011611315576113058183610b23565b9290611a1f565b611cd191935060203d602011611315576113058183610b23565b915f6119dd565b5073ffffffffffffffffffffffffffffffffffffffff6020610e5892015116610d8d565b51906dffffffffffffffffffffffffffff8216820361012f57565b519063ffffffff8216820361012f57565b519061ffff8216820361012f57565b73ffffffffffffffffffffffffffffffffffffffff16906040517fc66106570000000000000000000000000000000000000000000000000000000081525f6004820152602081602481865afa908115610ed6575f91612028575b50604051907fc661065700000000000000000000000000000000000000000000000000000000825260016004830152602082602481875afa918215610ed6575f92611ff1575b5073ffffffffffffffffffffffffffffffffffffffff166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610ed65760ff60209173ffffffffffffffffffffffffffffffffffffffff935f91611fd4575b5016936004604051809481937f313ce567000000000000000000000000000000000000000000000000000000008352165afa908115610ed65773ffffffffffffffffffffffffffffffffffffffff9160ff915f91611fb5575b5016931603611f4c57611eb2602091610bbe565b6064604051809581937f556d6e9f0000000000000000000000000000000000000000000000000000000083525f60048401526001602484015260448301525afa918215610ed6575f92611f16575b50610e9b611f10610e5893610b64565b91610bbe565b91506020823d602011611f44575b81611f3160209383610b23565b8101031261012f57905190610e9b611f00565b3d9150611f24565b90611f58602091610bbe565b6064604051809581937f556d6e9f000000000000000000000000000000000000000000000000000000008352600160048401525f602484015260448301525afa918215610ed6575f92611f165750610e9b611f10610e5893610b64565b611fce915060203d602011610ecf57610ec18183610b23565b5f611e9e565b611feb9150833d8511610ecf57610ec18183610b23565b5f611e45565b73ffffffffffffffffffffffffffffffffffffffff9192506120219060203d602011611315576113058183610b23565b9190611dd7565b612041915060203d602011611315576113058183610b23565b5f611d91565b90808202917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff828209918380841093039280840393847801000000000000000000000000000000000000000000000000111561012f57146120d0577801000000000000000000000000000000000000000000000000910990828211900360401b910360c01c1790565b50505060c01c90565b90620f42408202907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620f424084099282808510940393808503948584111561012f571461217957620f424082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b509150049056fea2646970667358221220b00b9645b753890239c03e121c433f08176de334299860b32b8cb858b2e0893c64736f6c634300081a00330000000000000000000000005f4ec3df9cbd43714fe2740f5e3616155c5b8419000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2