2 txs
34.1k calls
constructor
constructor(address mNavPriceFeed_, address[] tokens_, address[] priceFeeds_)
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
IMPLEMENTATION_NAME
viewfunction IMPLEMENTATION_NAME() view returns (string)
IMPLEMENTATION_VERSION
viewfunction IMPLEMENTATION_VERSION() view returns (string)
mNavPriceFeed
viewfunction mNavPriceFeed() view returns (address)
price
viewfunction price(address token_) view returns (uint256)
priceFeeds
viewfunction priceFeeds() view returns (tuple[])
supportedToken
viewfunction supportedToken(address token_) view returns (bool)
supportedTokens
viewfunction supportedTokens() view returns (address[])
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addTokenPriceFeeds
nonpayablefunction addTokenPriceFeeds(address[] tokens_, address[] priceFeeds_)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
removeTokenPriceFeeds
nonpayablefunction removeTokenPriceFeeds(address[] tokens_)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
events
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TokenPriceFeedAdded
event TokenPriceFeedAdded(address indexed token, address indexed priceFeed)
TokenPriceFeedRemoved
event TokenPriceFeedRemoved(address indexed token)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
InvalidAddress
error InvalidAddress()
InvalidDecimals
error InvalidDecimals()
InvalidLength
error InvalidLength()
InvalidPrice
error InvalidPrice()
UnsupportedToken
error UnsupportedToken(address token)
creation bytecode
0x61010080604052346102f55761154a803803809161001d82856102f9565b83398101906060818303126102f55761003581610330565b60208201519091906001600160401b0381116102f55783610057918301610344565b60408201519093906001600160401b0381116102f5576100779201610344565b906001600160a01b031680156102175760208160049260a0526040519283809263313ce56760e01b82525afa9081156102635760089160ff915f916102d6575b508060e05216036102265781518151036102c7575f5b8251811015610289576001600160a01b036100e882856103cc565b511615801561026e575b61021757600460206001600160a01b0361010c84866103cc565b51166040519283809263313ce56760e01b82525afa9081156102635760129160ff915f91610235575b501611610226576001600160a01b0361014e82856103cc565b51165f908152600360205260409020546001600160a01b03166102175760019061018a6001600160a01b0361018383876103cc565b511661047d565b50818060a01b0361019b82856103cc565b5116828060a01b036101ad83876103cc565b51165f52600360205260405f2090838060a01b0319825416179055818060a01b036101d882866103cc565b5116828060a01b036101ea83866103cc565b5116907f0b120d8a908a77961589ae5b18be2ab633b7de1e2d39bb952f3ddb0714798e7b5f80a3016100cd565b63e6c4247b60e01b5f5260045ffd5b630692acc560e51b5f5260045ffd5b610256915060203d811161025c575b61024e81836102f9565b8101906103b3565b5f610135565b503d610244565b6040513d5f823e3d90fd5b506001600160a01b0361028182846103cc565b5116156100f2565b610292336103f4565b5060405161105490816104d6823960805181505060a0518181816102a20152610759015260c05181505060e051816102f60152f35b63251f56a160e21b5f5260045ffd5b6102ef915060203d60201161025c5761024e81836102f9565b5f6100b7565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761031c57604052565b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102f557565b9080601f830112156102f5578151916001600160401b03831161031c578260051b906040519361037760208401866102f9565b84526020808501928201019283116102f557602001905b82821061039b5750505090565b602080916103a884610330565b81520191019061038e565b908160209103126102f5575160ff811681036102f55790565b80518210156103e05760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b0381165f9081525f51602061152a5f395f51905f52602052604090205460ff16610478576001600160a01b03165f8181525f51602061152a5f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f90565b805f52600260205260405f2054155f14610478576001546801000000000000000081101561031c5760018101806001558110156103e057819060015f5260205f200155600154905f52600260205260405f205560019056fe60806040526004361015610011575f80fd5b5f3560e01c8062a3fecd14610ad757806301ffc9a714610a81578063248a9ca314610a4f5780632f2ff15d14610a125780633399a5661461080d57806336568abe146107c9578063754b377c1461078857806378a05ab01461074457806378d849ed146105e1578063885af33a146104c357806391d148541461047b578063a217fddf14610461578063aea91078146101df578063b002249d1461013d578063d547741f146100f95763e2c6e438146100c8575f80fd5b346100f55760203660031901126100f55760206100eb6100e6610bb9565b610c69565b6040519015158152f35b5f80fd5b346100f55760403660031901126100f55761013b600435610118610ba3565b90610136610131825f525f602052600160405f20015490565b610cf9565b610dd2565b005b346100f5575f3660031901126100f5576040518060206001549283815201809260015f5260205f20905f5b8181106101c9575050508161017e910382610b57565b604051918291602083019060208452518091526040830191905f5b8181106101a7575050500390f35b82516001600160a01b0316845285945060209384019390920191600101610199565b8254845260209093019260019283019201610168565b346100f55760203660031901126100f5576101f8610bb9565b61020181610c69565b15610441576001600160a01b039081165f9081526003602052604090819020549051633fabe5a360e21b8152911660a082600481845afa9081156103de576004925f92610418575b506020906040519384809263313ce56760e01b82525afa9182156103de5760ff61028161028d94610287935f916103e9575b50610ed5565b16610ee6565b90610e9e565b604051633fabe5a360e21b815260a0816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103de575f916103aa575b506305f5e10081121561039c5761031a905b61028760ff6102817f0000000000000000000000000000000000000000000000000000000000000000610ed5565b90670de0b6b3a7640000810290808205670de0b6b3a7640000149015171561037457811561038857600160ff1b81145f1983141661037457055f81131561036657602090604051908152f35b62bfc92160e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5061031a6305f5e1006102ec565b6103cc915060a03d60a0116103d7575b6103c48183610b57565b810190610e69565b5050509050826102da565b503d6103ba565b6040513d5f823e3d90fd5b61040b915060203d602011610411575b6104038183610b57565b810190610db9565b8661027b565b503d6103f9565b60209192506104359060a03d60a0116103d7576103c48183610b57565b50505090509190610249565b635f8b555b60e11b5f9081526001600160a01b0391909116600452602490fd5b346100f5575f3660031901126100f55760206040515f8152f35b346100f55760403660031901126100f557610494610ba3565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346100f55760203660031901126100f55760043567ffffffffffffffff81116100f5576104f4903690600401610be7565b6104fc610caa565b5f5b815181101561013b576001600160a01b036105198284610c55565b5116156105d2576105486001600160a01b036105358385610c55565b51165f52600260205260405f2054151590565b156105d25760019061056c6001600160a01b036105658386610c55565b5116610f5f565b50818060a01b0361057d8285610c55565b51165f52600360205260405f20828060a01b03198154169055818060a01b036105a68285610c55565b51167fc542169308f1e719baa397a8b924ed628e13fb6dfb0a5e4f1f0eb30b43c8663a5f80a2016104fe565b63e6c4247b60e01b5f5260045ffd5b346100f5575f3660031901126100f5576001546105fd81610bcf565b9061060b6040519283610b57565b808252601f1961061a82610bcf565b015f5b8181106107215750506001545f5b82811061068f57836040518091602082016020835281518091526020604084019201905f5b81811061065e575050500390f35b825180516001600160a01b039081168652602091820151168186015286955060409094019390920191600101610650565b8181101561070d577fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf68101546001600160a01b039081165f81815260036020526040908190205490516001949390929116906106ea83610b27565b825260208201526106fb8287610c55565b526107068186610c55565b500161062b565b634e487b7160e01b5f52603260045260245ffd5b60209060405161073081610b27565b5f81525f838201528282870101520161061d565b346100f5575f3660031901126100f5576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100f5575f3660031901126100f5576107c56040516107a9604082610b57565b60038152620312e360ec1b602082015260405191829182610b79565b0390f35b346100f55760403660031901126100f5576107e2610ba3565b336001600160a01b038216036107fe5761013b90600435610dd2565b63334bd91960e11b5f5260045ffd5b346100f55760403660031901126100f55760043567ffffffffffffffff81116100f55761083e903690600401610be7565b60243567ffffffffffffffff81116100f55761085e903690600401610be7565b610866610caa565b8151815103610a03575f5b825181101561013b576001600160a01b0361088c8285610c55565b51161580156109e8575b6105d257600460206001600160a01b036108b08486610c55565b51166040519283809263313ce56760e01b82525afa9081156103de5760129160ff915f916109ca575b5016116109bb576001600160a01b036108f28285610c55565b51165f908152600360205260409020546001600160a01b03166105d25760019061092e6001600160a01b036109278387610c55565b5116610ef4565b50818060a01b0361093f8285610c55565b5116828060a01b036109518387610c55565b51165f52600360205260405f2090838060a01b0319825416179055818060a01b0361097c8286610c55565b5116828060a01b0361098e8386610c55565b5116907f0b120d8a908a77961589ae5b18be2ab633b7de1e2d39bb952f3ddb0714798e7b5f80a301610871565b630692acc560e51b5f5260045ffd5b6109e2915060203d8111610411576104038183610b57565b866108d9565b506001600160a01b036109fb8284610c55565b511615610896565b63251f56a160e21b5f5260045ffd5b346100f55760403660031901126100f55761013b600435610a31610ba3565b90610a4a610131825f525f602052600160405f20015490565b610d31565b346100f55760203660031901126100f5576020610a796004355f525f602052600160405f20015490565b604051908152f35b346100f55760203660031901126100f55760043563ffffffff60e01b81168091036100f557602090637965db0b60e01b8114908115610ac6575b506040519015158152f35b6301ffc9a760e01b14905082610abb565b346100f5575f3660031901126100f5576107c5604051610af8604082610b57565b6016815275436861696e6c696e6b205072696365204f7261636c6560501b602082015260405191829182610b79565b6040810190811067ffffffffffffffff821117610b4357604052565b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff821117610b4357604052565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b602435906001600160a01b03821682036100f557565b600435906001600160a01b03821682036100f557565b67ffffffffffffffff8111610b435760051b60200190565b9080601f830112156100f557813590610bff82610bcf565b92610c0d6040519485610b57565b82845260208085019360051b8201019182116100f557602001915b818310610c355750505090565b82356001600160a01b03811681036100f557815260209283019201610c28565b805182101561070d5760209160051b010190565b6001600160a01b03165f8181526002602052604090205415159081610c8c575090565b5f908152600360205260409020546001600160a01b03161515919050565b335f9081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff1615610ce257565b63e2517d3f60e01b5f52336004525f60245260445ffd5b5f8181526020818152604080832033845290915290205460ff1615610d1b5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16610db3575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b908160209103126100f5575160ff811681036100f55790565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615610db3575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b519069ffffffffffffffffffff821682036100f557565b908160a09103126100f557610e7d81610e52565b91602082015191604081015191610e9b608060608401519301610e52565b90565b81810292915f8212600160ff1b82141661037457818405149015171561037457565b805482101561070d575f5260205f2001905f90565b60ff166012039060ff821161037457565b604d811161037457600a0a90565b805f52600260205260405f2054155f14610f5a57600154600160401b811015610b4357610f43610f2d8260018594016001556001610ec0565b819391549060031b91821b915f19901b19161790565b9055600154905f52600260205260405f2055600190565b505f90565b5f818152600260205260409020548015610db3575f198101818111610374576001545f1981019190821161037457818103610fe6575b5050506001548015610fd2575f1901610faf816001610ec0565b8154905f199060031b1b191690556001555f5260026020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b611008610ff7610f2d936001610ec0565b90549060031b1c9283926001610ec0565b90555f52600260205260405f20555f8080610f9556fea2646970667358221220d9405f99515d71525a924247f5efcceeb4eeeb375e6e150d2891a8a90c77336864736f6c634300081d0033ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5000000000000000000000000d2385f41995499bbf255ce0a1486ebce3dca0e5d000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000002000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e5831000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9000000000000000000000000000000000000000000000000000000000000000200000000000000000000000050834f3163758fcc1df9973b6e91f0f0f0434ad30000000000000000000000003f3f5df88dc9f13eac63df89ec16ef6e7e25dde7