[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" } ], "name": "NoPriceFeed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "address", "name": "tokenPriceAggregator", "type": "address" } ], "name": "SubscribePriceFeed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "token", "type": "address" } ], "name": "UnsubscribePriceFeed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEVOPS_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "tokenPriceAggregator", "type": "address" } ], "name": "addNewTokenPriceFeed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "devopsWallet_", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "removeTokenPriceFeed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "usdValueOfTokens", "outputs": [ { "components": [ { "internalType": "uint256", "name": "mantissa", "type": "uint256" } ], "internalType": "struct ExponentialNoError.Exp", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60a06040523060805234801561001457600080fd5b5061001d610022565b6100e1565b600054610100900460ff161561008e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100df576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516118cd6101186000396000818161054d0152818161058d01528181610699015281816106d9015261075101526118cd6000f3fe6080604052600436106100d35760003560e01c80634f1ef2861161007a5780634f1ef2861461021e57806352d1902d1461023157806354fd4d501461024657806391d148541461027a578063a217fddf1461029a578063c4d66de8146102af578063ce2ff6aa146102cf578063d547741f146102ef57600080fd5b806301ffc9a7146100d85780630f4f276c1461010d578063201a66251461013c578063248a9ca31461016c5780632f2ff15d1461019c57806336568abe146101be5780633659cfe6146101de5780634d8d5999146101fe575b600080fd5b3480156100e457600080fd5b506100f86100f33660046112a8565b61030f565b60405190151581526020015b60405180910390f35b34801561011957600080fd5b5061012d6101283660046112ee565b610346565b60405190518152602001610104565b34801561014857600080fd5b5061015e60008051602061183183398151915281565b604051908152602001610104565b34801561017857600080fd5b5061015e610187366004611318565b600090815260c9602052604090206001015490565b3480156101a857600080fd5b506101bc6101b7366004611331565b61049b565b005b3480156101ca57600080fd5b506101bc6101d9366004611331565b6104c5565b3480156101ea57600080fd5b506101bc6101f936600461135d565b610543565b34801561020a57600080fd5b506101bc610219366004611378565b61060b565b6101bc61022c3660046113b8565b61068f565b34801561023d57600080fd5b5061015e610744565b34801561025257600080fd5b5060408051808201825260058152640302e362e360dc1b60208201529051610104919061149e565b34801561028657600080fd5b506100f8610295366004611331565b6107f2565b3480156102a657600080fd5b5061015e600081565b3480156102bb57600080fd5b506101bc6102ca36600461135d565b61081d565b3480156102db57600080fd5b506101bc6102ea36600461135d565b610956565b3480156102fb57600080fd5b506101bc61030a366004611331565b6109c4565b60006001600160e01b03198216637965db0b60e01b148061034057506301ffc9a760e01b6001600160e01b03198316145b92915050565b6040805160208101909152600081526001600160a01b03838116600090815260fb6020526040902054166103985782604051632a4f499d60e21b815260040161038f91906114d1565b60405180910390fd5b60006103a3846109e9565b905060006103b085610a73565b905060008590506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041b91906114e5565b9050610490604051806020016040528083600a6104389190611602565b61044a670de0b6b3a76400008b611611565b6104549190611628565b905260408051602081019091528061046d87600a611602565b61047f670de0b6b3a76400008a611611565b6104899190611628565b9052610aee565b979650505050505050565b600082815260c960205260409020600101546104b681610b36565b6104c08383610b40565b505050565b6001600160a01b03811633146105355760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161038f565b61053f8282610bc6565b5050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361058b5760405162461bcd60e51b815260040161038f9061164a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105bd610c2d565b6001600160a01b0316146105e35760405162461bcd60e51b815260040161038f90611696565b6105ec81610c49565b6040805160008082526020820190925261060891839190610c61565b50565b60008051602061183183398151915261062381610b36565b6001600160a01b03838116600081815260fb602090815260409182902080546001600160a01b031916948716948517905581519283528201929092527f950d6b0fc92ec932fc49a6ea1af2dded2fac58d5464090ceece194b1f1e624f3910160405180910390a1505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106d75760405162461bcd60e51b815260040161038f9061164a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610709610c2d565b6001600160a01b03161461072f5760405162461bcd60e51b815260040161038f90611696565b61073882610c49565b61053f82826001610c61565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107df5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161038f565b5060008051602061185183398151915290565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff161580801561083d5750600054600160ff909116105b8061085e575061084c30610dcc565b15801561085e575060005460ff166001145b6108c15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161038f565b6000805460ff1916600117905580156108e4576000805461ff0019166101001790555b6108ec610ddb565b6108f4610ddb565b61090c60008051602061183183398151915283610b40565b801561053f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b60008051602061183183398151915261096e81610b36565b6001600160a01b038216600090815260fb60205260409081902080546001600160a01b0319169055517ffbc2f2231449137043afaa28222f673d780c0e7449d25d2c98ea791db929204c9061094a9084906114d1565b600082815260c960205260409020600101546109df81610b36565b6104c08383610bc6565b6001600160a01b03808216600090815260fb6020526040808220548151633fabe5a360e21b815291519293849391169163feaf968c9160048083019260a09291908290030181865afa158015610a43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6791906116fc565b50919695505050505050565b6001600160a01b03808216600090815260fb6020908152604080832054815163313ce56760e01b815291519394169263313ce567926004808401939192918290030181865afa158015610aca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034091906114e5565b6040805160208101909152600081526040518060200160405280670de0b6b3a7640000610b2386600001518660000151610e48565b610b2d9190611628565b90529392505050565b6106088133610e5b565b610b4a82826107f2565b61053f57600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610b823390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610bd082826107f2565b1561053f57600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080516020611851833981519152546001600160a01b031690565b60008051602061183183398151915261053f81610b36565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c94576104c083610eb4565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610cee575060408051601f3d908101601f19168201909252610ceb9181019061174c565b60015b610d515760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161038f565b6000805160206118518339815191528114610dc05760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161038f565b506104c0838383610f4e565b6001600160a01b03163b151590565b600054610100900460ff16610e465760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161038f565b565b6000610e548284611611565b9392505050565b610e6582826107f2565b61053f57610e7281610f79565b610e7d836020610f8b565b604051602001610e8e929190611765565b60408051601f198184030181529082905262461bcd60e51b825261038f9160040161149e565b610ebd81610dcc565b610f1f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161038f565b60008051602061185183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b610f5783611127565b600082511180610f645750805b156104c057610f738383611167565b50505050565b60606103406001600160a01b03831660145b60606000610f9a836002611611565b610fa59060026117d4565b67ffffffffffffffff811115610fbd57610fbd6113a2565b6040519080825280601f01601f191660200182016040528015610fe7576020820181803683370190505b509050600360fc1b81600081518110611002576110026117e7565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611031576110316117e7565b60200101906001600160f81b031916908160001a9053506000611055846002611611565b6110609060016117d4565b90505b60018111156110d8576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611094576110946117e7565b1a60f81b8282815181106110aa576110aa6117e7565b60200101906001600160f81b031916908160001a90535060049490941c936110d1816117fd565b9050611063565b508315610e545760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161038f565b61113081610eb4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610e548383604051806060016040528060278152602001611871602791396060600080856001600160a01b0316856040516111a49190611814565b600060405180830381855af49150503d80600081146111df576040519150601f19603f3d011682016040523d82523d6000602084013e6111e4565b606091505b50915091506111f5868383876111ff565b9695505050505050565b6060831561126c5782516000036112655761121985610dcc565b6112655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161038f565b5081611276565b611276838361127e565b949350505050565b81511561128e5781518083602001fd5b8060405162461bcd60e51b815260040161038f919061149e565b6000602082840312156112ba57600080fd5b81356001600160e01b031981168114610e5457600080fd5b80356001600160a01b03811681146112e957600080fd5b919050565b6000806040838503121561130157600080fd5b61130a836112d2565b946020939093013593505050565b60006020828403121561132a57600080fd5b5035919050565b6000806040838503121561134457600080fd5b82359150611354602084016112d2565b90509250929050565b60006020828403121561136f57600080fd5b610e54826112d2565b6000806040838503121561138b57600080fd5b611394836112d2565b9150611354602084016112d2565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156113cb57600080fd5b6113d4836112d2565b9150602083013567ffffffffffffffff808211156113f157600080fd5b818501915085601f83011261140557600080fd5b813581811115611417576114176113a2565b604051601f8201601f19908116603f0116810190838211818310171561143f5761143f6113a2565b8160405282815288602084870101111561145857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561149557818101518382015260200161147d565b50506000910152565b60208152600082518060208401526114bd81604085016020870161147a565b601f01601f19169190910160400192915050565b6001600160a01b0391909116815260200190565b6000602082840312156114f757600080fd5b815160ff81168114610e5457600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561155957816000190482111561153f5761153f611508565b8085161561154c57918102915b93841c9390800290611523565b509250929050565b60008261157057506001610340565b8161157d57506000610340565b8160018114611593576002811461159d576115b9565b6001915050610340565b60ff8411156115ae576115ae611508565b50506001821b610340565b5060208310610133831016604e8410600b84101617156115dc575081810a610340565b6115e6838361151e565b80600019048211156115fa576115fa611508565b029392505050565b6000610e5460ff841683611561565b808202811582820484141761034057610340611508565b60008261164557634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b805169ffffffffffffffffffff811681146112e957600080fd5b600080600080600060a0868803121561171457600080fd5b61171d866116e2565b9450602086015193506040860151925060608601519150611740608087016116e2565b90509295509295909350565b60006020828403121561175e57600080fd5b5051919050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161179781601785016020880161147a565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516117c881602884016020880161147a565b01602801949350505050565b8082018082111561034057610340611508565b634e487b7160e01b600052603260045260246000fd5b60008161180c5761180c611508565b506000190190565b6000825161182681846020870161147a565b919091019291505056fe793a6c9b7e0a9549c74edc2f9ae0dc50903dfaa9a56fb0116b27a8c71de3e2c6360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204bbc7a4c7d9da2210505f4e884ea25209ba21183eb5902b6ca16ee1d50b1968c64736f6c63430008120033