0 txs
379.4k calls
constructor
constructor()
functions
getAddresses
viewfunction getAddresses() view returns (tuple)
getOtcBalance
viewfunction getOtcBalance(uint8 _collateralIndex) view returns (uint256)
getOtcConfig
viewfunction getOtcConfig() view returns (tuple)
getOtcRate
viewfunction getOtcRate(uint8 _collateralIndex) view returns (uint256)
hasRole
viewfunction hasRole(address _account, uint8 _role) view returns (bool)
hasRoles
viewfunction hasRoles(address _account, uint8 _roleA, uint8 _roleB) view returns (bool)
addOtcCollateralBalance
nonpayablefunction addOtcCollateralBalance(uint8 _collateralIndex, uint256 _collateralAmount)
initialize
nonpayablefunction initialize(address _govTimelock)
initializeOtc
nonpayablefunction initializeOtc(tuple _config)
sellGnsForCollateral
nonpayablefunction sellGnsForCollateral(uint8 _collateralIndex, uint256 _collateralAmount)
setRoles
nonpayablefunction setRoles(address[] _accounts, uint8[] _roles, bool[] _values)
updateOtcConfig
nonpayablefunction updateOtcConfig(tuple _config)
events
AccessControlUpdated
event AccessControlUpdated(address target, uint8 role, bool access)
AddressesUpdated
event AddressesUpdated((address gns, address gnsStaking, address treasury) addresses)
Initialized
event Initialized(uint8 version)
OtcBalanceUpdated
event OtcBalanceUpdated(uint8 indexed collateralIndex, uint256 balanceCollateral)
OtcConfigUpdated
event OtcConfigUpdated((address gnsTreasury, uint64 treasuryShareP, uint64 stakingShareP, uint64 burnShareP, uint64 premiumP) config)
OtcExecuted
event OtcExecuted(uint8 indexed collateralIndex, uint256 collateralAmount, uint256 gnsPriceCollateral, uint256 treasuryAmountGns, uint256 stakingAmountGns, uint256 burnAmountGns)
errors
AboveMax
error AboveMax()
AlreadyExists
error AlreadyExists()
BelowMin
error BelowMin()
BlockOrder
error BlockOrder()
DoesntExist
error DoesntExist()
InitError
error InitError()
InsufficientBalance
error InsufficientBalance()
InvalidAddress
error InvalidAddress()
InvalidAddresses
error InvalidAddresses()
InvalidCollateralIndex
error InvalidCollateralIndex()
InvalidInputLength
error InvalidInputLength()
InvalidShareSum
error InvalidShareSum()
NotAllowed
error NotAllowed()
NotAuthorized
error NotAuthorized()
Overflow
error Overflow()
Paused
error Paused()
UnsupportedChain
error UnsupportedChain()
WrongAccess
error WrongAccess()
WrongIndex
error WrongIndex()
WrongLength
error WrongLength()
WrongOrder
error WrongOrder()
WrongOrderType
error WrongOrderType()
WrongParams
error WrongParams()
WrongTradeType
error WrongTradeType()
ZeroAddress
error ZeroAddress()
ZeroValue
error ZeroValue()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611ec0806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063a39fac1211610081578063b9c972291161005b578063b9c972291461026f578063c499954714610282578063c4d66de81461029557600080fd5b8063a39fac1214610170578063a98113e0146101f5578063b79de3b31461020857600080fd5b80632b381b1e116100b25780632b381b1e1461012757806392c027201461013a57806395a8c58d1461014d57600080fd5b8063101e6503146100d957806311d8818d146100ee5780632b08f46714610101575b600080fd5b6100ec6100e736600461197c565b6102a8565b005b6100ec6100fc366004611a2c565b61040d565b61011461010f366004611a56565b61043b565b6040519081526020015b60405180910390f35b6100ec610135366004611a2c565b61044c565b6100ec610148366004611adc565b610456565b61016061015b366004611b5d565b610543565b604051901515815260200161011e565b6101c3604080516060810182526000808252602082018190529181019190915250604080516060810182526003546001600160a01b03908116825260045481166020830152600554169181019190915290565b6040805182516001600160a01b039081168252602080850151821690830152928201519092169082015260600161011e565b610114610203366004611a56565b61059a565b6102106105a5565b60405161011e9190600060a0820190506001600160a01b038351168252602083015167ffffffffffffffff8082166020850152806040860151166040850152806060860151166060850152806080860151166080850152505092915050565b61016061027d366004611b92565b6105dd565b6100ec610290366004611adc565b61068c565b6100ec6102a3366004611bd7565b6106a0565b60006102b3816107d6565b85841415806102c25750858214155b156102e057604051637db491eb60e01b815260040160405180910390fd5b60005b868110156104035760008686838181106102ff576102ff611c0a565b90506020020160208101906103149190611c20565b600381111561032557610325611bf4565b14801561036057503388888381811061034057610340611c0a565b90506020020160208101906103559190611bd7565b6001600160a01b0316145b1561037e57604051631eb49d6d60e11b815260040160405180910390fd5b6103fb88888381811061039357610393611c0a565b90506020020160208101906103a89190611bd7565b8787848181106103ba576103ba611c0a565b90506020020160208101906103cf9190611c20565b8686858181106103e1576103e1611c0a565b90506020020160208101906103f69190611c49565b610800565b6001016102e3565b5050505050505050565b33301461042d57604051631b17ff5560e21b815260040160405180910390fd5b61043782826108a2565b5050565b600061044682610920565b92915050565b6104378282610943565b600054600c90610100900460ff16158015610478575060005460ff8083169116105b6104e05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805461ffff191660ff8316176101001790556104fd82610b77565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6001600160a01b03821660009081526002602052604081208183600381111561056e5761056e611bf4565b600381111561057f5761057f611bf4565b815260208101919091526040016000205460ff169392505050565b600061044682610c08565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091526105d8610c82565b905090565b6001600160a01b03831660009081526002602052604081208184600381111561060857610608611bf4565b600381111561061957610619611bf4565b815260208101919091526040016000205460ff168061068457506001600160a01b03841660009081526002602052604081209083600381111561065e5761065e611bf4565b600381111561066f5761066f611bf4565b815260208101919091526040016000205460ff165b949350505050565b6001610697816107d6565b61043782610d20565b600054610100900460ff16158080156106c05750600054600160ff909116105b806106da5750303b1580156106da575060005460ff166001145b61073d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104d7565b6000805460ff191660011790558015610760576000805461ff0019166101001790555b6001600160a01b03821661078757604051632c1c702960e21b815260040160405180910390fd5b6107948260006001610800565b8015610437576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610537565b6107e03382610543565b6107fd57604051631b17ff5560e21b815260040160405180910390fd5b50565b6001600160a01b0383166000908152600260205260408120829184600381111561082c5761082c611bf4565b600381111561083d5761083d611bf4565b815260200190815260200160002060006101000a81548160ff0219169083151502179055507f8d7fdec37f50c07219a6a0859420936836eb9254bf412035e3acede18b8b093d83838360405161089593929190611c66565b60405180910390a1505050565b60006108ac610f4c565b60ff8416600090815260208290526040812054919250906108ce908490611cc0565b60ff851660008181526020858152604091829020849055905183815292935090917f8d9467a44ee925421a7b8bcb0b7a92c4adc261c218b290e799b14630ac940b2a910160405180910390a250505050565b600061092a610f4c565b60ff909216600090815260209290925250604090205490565b600061094d610f4c565b9050600030604051638db9390d60e01b815260ff861660048201526001600160a01b039190911690638db9390d90602401602060405180830381865afa15801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf9190611cd3565b60ff8516600090815260208490526040812054911592506109e08684610f57565b905060006109ef878784611053565b905085600003610a1257604051637c946ed760e01b815260040160405180910390fd5b82861115610a3357604051631e9acf1760e31b815260040160405180910390fd5b64e8d4a51000811015610a59576040516310906acb60e01b815260040160405180910390fd5b8315610a6957610a6933826110d1565b6000610a758785611cf0565b60ff891660008181526020898152604091829020849055905183815292935090917f8d9467a44ee925421a7b8bcb0b7a92c4adc261c218b290e799b14630ac940b2a910160405180910390a26000806000610acf856110f7565b919450925090508215610ae557610ae5836111cf565b8115610af457610af4826111ed565b8015610b0357610b0381611266565b8715610b1657610b168b338c60006112d3565b604080518b815260208101889052908101849052606081018390526080810182905260ff8c16907f946f4776eb5a3c4119694bcd42c3ac90e75160db79b8009a9e7748ed7599d1109060a00160405180910390a25050505050505050505050565b6000610b816113b3565b8054600182015460405163095ea7b360e01b81526001600160a01b0391821660048201526000196024820152929350169063095ea7b3906044016020604051808303816000875af1158015610bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfe9190611cd3565b5061043782610d20565b60006104468230604051638db9390d60e01b815260ff861660048201526001600160a01b039190911690638db9390d90602401602060405180830381865afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c9190611cd3565b15610f57565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152610cb5610f4c565b6040805160a08101825260018301546001600160a01b038116825267ffffffffffffffff600160a01b909104811660208301526002909301548084169282019290925268010000000000000000820483166060820152600160801b9091049091166080820152919050565b80516001600160a01b031615610d4957604051635863f78960e01b815260040160405180910390fd5b610d596402540be4006064611d03565b816060015182604001518360200151610d729190611d1a565b610d7c9190611d1a565b67ffffffffffffffff1614610da457604051630e2ea4c960e11b815260040160405180910390fd5b610db46402540be4006005611d03565b67ffffffffffffffff16816080015167ffffffffffffffff161115610dec57604051630ad1e31b60e01b815260040160405180910390fd5b80610df5610f4c565b8151600182018054602085015167ffffffffffffffff908116600160a01b027fffffffff000000000000000000000000000000000000000000000000000000009092166001600160a01b03909416939093171790556040808401516002909301805460608601516080909601518416600160801b027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff96851668010000000000000000026fffffffffffffffffffffffffffffffff1990921695909416949094179390931793909316179055517f8b0fa5246ac429f9dd5a918b5407b1c7d0d2e21903d0a690b811e97cdb1fff8090610f41908390600060a0820190506001600160a01b038351168252602083015167ffffffffffffffff8082166020850152806040860151166040850152806060860151166060850152806080860151166080850152505092915050565b60405180910390a150565b600080610259610446565b6000803060405163a91fa36160e01b815260ff861660048201526001600160a01b03919091169063a91fa36190602401602060405180830381865afa158015610fa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fc89190611d42565b9050600083610fd8576000610ff6565b610fe0610f4c565b60020154600160801b900467ffffffffffffffff165b905060008167ffffffffffffffff1611611010578161104a565b6402540be400606461102c67ffffffffffffffff841685611d03565b6110369190611d5b565b6110409190611d5b565b61104a9083611cc0565b95945050505050565b6000610684833060405163bb33a55b60e01b815260ff881660048201526001600160a01b03919091169063bb33a55b9060240160a060405180830381865afa1580156110a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c79190611d9d565b60800151846113bd565b8015610437576104378230836110e56113b3565b546001600160a01b03169291906113f6565b600080600080611105610f4c565b60010180549091506402540be4009060649061113290600160a01b900467ffffffffffffffff1688611d03565b61113c9190611d5b565b6111469190611d5b565b60018201549094506402540be4009060649061116c9067ffffffffffffffff1688611d03565b6111769190611d5b565b6111809190611d5b565b60018201549093506402540be400906064906111b29068010000000000000000900467ffffffffffffffff1688611d03565b6111bc9190611d5b565b6111c69190611d5b565b93959294505050565b6107fd6111da6113b3565b600201546001600160a01b03168261140b565b60006111f76113b3565b600181015481546040516307b22ee360e21b81526001600160a01b039182166004820152602481018690529293501690631ec8bb8c90604401600060405180830381600087803b15801561124a57600080fd5b505af115801561125e573d6000803e3d6000fd5b505050505050565b61126e6113b3565b54604051632770a7eb60e21b8152306004820152602481018390526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b5050505050565b81156113ad5760003060405163bb33a55b60e01b815260ff871660048201526001600160a01b03919091169063bb33a55b9060240160a060405180830381865afa158015611325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113499190611d9d565b51905081801561135d575061135d8161142f565b801561136c575061136c611466565b1561139957611394848461137e611482565b6001600160a01b03851692919061ffff166114ad565b6112cc565b6112cc6001600160a01b038216858561157c565b50505050565b6000806003610446565b6000816402540be4006113e26fffffffffffffffffffffffffffffffff861687611d03565b6113ec9190611d03565b6106849190611d5b565b6113ad6001600160a01b038516848484611595565b801561043757610437828261141e6113b3565b546001600160a01b0316919061157c565b60006001600160a01b03821615801590610446575061144c61162d565b6001600160a01b0316826001600160a01b03161492915050565b60006114706116ea565b6001015462010000900460ff16919050565b60008061148d6116ea565b6001015461ffff16905080156114a357806114a7565b6152085b91505090565b604051632e1a7d4d60e01b8152600481018390526001600160a01b03851690632e1a7d4d90602401600060405180830381600087803b1580156114ef57600080fd5b505af1158015611503573d6000803e3d6000fd5b505050506000806000806000868887f19050801561152157506113ad565b846001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b15801561155c57600080fd5b505af1158015611570573d6000803e3d6000fd5b50505050506112cc8585855b6115906001600160a01b03841683836116f5565b505050565b6040516001600160a01b03808516602483015283166044820152606481018290526113ad9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611725565b600061a4b1460361165157507382af49447d8a07e3bd95bd0d56f35241523fbab190565b6121054603611673575073420000000000000000000000000000000000000690565b618173460361169057506e0f7e000644657dc9417b185962645a90565b608946036116b15750730d500b1d8e8ef31e21c99d1db9a6444d3adf127090565b62066eee46036116d4575073980b62da83eff3d4576c647993b0c1d7faf17c7390565b617a6946036116e457506101a590565b50600090565b60008061028b610446565b6040516001600160a01b03831660248201526044810182905261159090849063a9059cbb60e01b906064016115c9565b600061177a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661180d9092919063ffffffff16565b905080516000148061179b57508080602001905181019061179b9190611cd3565b6115905760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104d7565b6060610684848460008585600080866001600160a01b031685876040516118349190611e3b565b60006040518083038185875af1925050503d8060008114611871576040519150601f19603f3d011682016040523d82523d6000602084013e611876565b606091505b509150915061188787838387611892565b979650505050505050565b606083156119015782516000036118fa576001600160a01b0385163b6118fa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104d7565b5081610684565b61068483838151156119165781518083602001fd5b8060405162461bcd60e51b81526004016104d79190611e57565b60008083601f84011261194257600080fd5b50813567ffffffffffffffff81111561195a57600080fd5b6020830191508360208260051b850101111561197557600080fd5b9250929050565b6000806000806000806060878903121561199557600080fd5b863567ffffffffffffffff808211156119ad57600080fd5b6119b98a838b01611930565b909850965060208901359150808211156119d257600080fd5b6119de8a838b01611930565b909650945060408901359150808211156119f757600080fd5b50611a0489828a01611930565b979a9699509497509295939492505050565b803560ff81168114611a2757600080fd5b919050565b60008060408385031215611a3f57600080fd5b611a4883611a16565b946020939093013593505050565b600060208284031215611a6857600080fd5b611a7182611a16565b9392505050565b60405160a0810167ffffffffffffffff81118282101715611aa957634e487b7160e01b600052604160045260246000fd5b60405290565b6001600160a01b03811681146107fd57600080fd5b803567ffffffffffffffff81168114611a2757600080fd5b600060a08284031215611aee57600080fd5b611af6611a78565b8235611b0181611aaf565b8152611b0f60208401611ac4565b6020820152611b2060408401611ac4565b6040820152611b3160608401611ac4565b6060820152611b4260808401611ac4565b60808201529392505050565b803560048110611a2757600080fd5b60008060408385031215611b7057600080fd5b8235611b7b81611aaf565b9150611b8960208401611b4e565b90509250929050565b600080600060608486031215611ba757600080fd5b8335611bb281611aaf565b9250611bc060208501611b4e565b9150611bce60408501611b4e565b90509250925092565b600060208284031215611be957600080fd5b8135611a7181611aaf565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215611c3257600080fd5b611a7182611b4e565b80151581146107fd57600080fd5b600060208284031215611c5b57600080fd5b8135611a7181611c3b565b6001600160a01b03841681526060810160048410611c9457634e487b7160e01b600052602160045260246000fd5b8360208301528215156040830152949350505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561044657610446611caa565b600060208284031215611ce557600080fd5b8151611a7181611c3b565b8181038181111561044657610446611caa565b808202811582820484141761044657610446611caa565b67ffffffffffffffff818116838216019080821115611d3b57611d3b611caa565b5092915050565b600060208284031215611d5457600080fd5b5051919050565b600082611d7857634e487b7160e01b600052601260045260246000fd5b500490565b80516fffffffffffffffffffffffffffffffff81168114611a2757600080fd5b600060a08284031215611daf57600080fd5b611db7611a78565b8251611dc281611aaf565b81526020830151611dd281611c3b565b602082015260408301516affffffffffffffffffffff81168114611df557600080fd5b6040820152611e0660608401611d7d565b6060820152611b4260808401611d7d565b60005b83811015611e32578181015183820152602001611e1a565b50506000910152565b60008251611e4d818460208701611e17565b9190910192915050565b6020815260008251806020840152611e76816040850160208701611e17565b601f01601f1916919091016040019291505056fea264697066735822122061c21bacdcdce014a9a03d24a9f750f3ed95b07f25573a175878bb2a5cd1c01764736f6c63430008170033