0 txs
1 call
constructor
constructor(address _roleStore, address _dataStore, address _eventEmitter, address _oracle, address _shiftVault)
functions
dataStore
viewfunction dataStore() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
oracle
viewfunction oracle() view returns (address)
roleStore
viewfunction roleStore() view returns (address)
shiftVault
viewfunction shiftVault() view returns (address)
_executeShift
nonpayablefunction _executeShift(bytes32 key, tuple shift, address keeper)
cancelShift
nonpayablefunction cancelShift(bytes32 key)
createShift
nonpayablefunction createShift(address account, tuple params) returns (bytes32)
executeShift
nonpayablefunction executeShift(bytes32 key, tuple oracleParams)
simulateExecuteShift
nonpayablefunction simulateExecuteShift(bytes32 key, tuple params)
events
No events.
errors
DisabledFeature
error DisabledFeature(bytes32 key)
EndOfOracleSimulation
error EndOfOracleSimulation()
InsufficientExecutionGas
error InsufficientExecutionGas(uint256 startingGas, uint256 estimatedGasLimit, uint256 minAdditionalGasForExecution)
InsufficientExecutionGasForErrorHandling
error InsufficientExecutionGasForErrorHandling(uint256 startingGas, uint256 minHandleErrorGas)
InsufficientHandleExecutionErrorGas
error InsufficientHandleExecutionErrorGas(uint256 gas, uint256 minHandleExecutionErrorGas)
InvalidNativeTokenSender
error InvalidNativeTokenSender(address msgSender)
InvalidPrimaryPricesForSimulation
error InvalidPrimaryPricesForSimulation(uint256 primaryTokensLength, uint256 primaryPricesLength)
RequestNotYetCancellable
error RequestNotYetCancellable(uint256 requestAge, uint256 requestExpirationAge, string requestType)
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x6101206040523480156200001257600080fd5b5060405162002a5538038062002a55833981016040819052620000359162000077565b6001600160a01b0394851660805292841660a052831660c052821660e0521661010052620000f7565b6001600160a01b03811681146200007457600080fd5b50565b600080600080600060a086880312156200009057600080fd5b85516200009d816200005e565b6020870151909550620000b0816200005e565b6040870151909450620000c3816200005e565b6060870151909350620000d6816200005e565b6080870151909250620000e9816200005e565b809150509295509295909350565b60805160a05160c05160e051610100516128416200021460003960008181610336015281816104570152818161090101528181610dd701526115de0152600081816102c201528181610435015281816108e001528181610daf01526115bc01526000818161026e0152818161059f0152818161061501528181610a5401528181610c830152610dfe015260008181608e0152818161023a015281816103b701528181610413015281816106d5015281816107ee01528181610ade01528181610b6601528181610b9201528181610bbf01528181610d4e01528181610d8a01528181610ebe01528181610fc1015281816111df015281816112da0152818161151e015261159a0152600081816101f9015261108c01526128416000f3fe6080604052600436106100855760003560e01c80631d3b5b3c1461019457806349e58799146101c75780634a4a7b04146101e7578063660d0d67146102285780637dc0d1d01461025c57806396be2898146102905780639ff78c30146102b0578063c68f53c1146102e4578063d11bbdd214610304578063ece9296b1461032457600080fd5b3661018f5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166321f8a7216040516020016100e29060208082526003908201526215d39560ea1b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161011691815260200190565b602060405180830381865afa158015610133573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101579190611abf565b9050336001600160a01b0382161461018d573360405163738d28df60e11b81526004016101849190611ae9565b60405180910390fd5b005b600080fd5b3480156101a057600080fd5b506101b46101af366004611b0d565b610358565b6040519081526020015b60405180910390f35b3480156101d357600080fd5b5061018d6101e2366004611cdd565b6104d4565b3480156101f357600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be9190611ae9565b34801561023457600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561026857600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b34801561029c57600080fd5b5061018d6102ab366004611e04565b6107bf565b3480156102bc57600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102f057600080fd5b5061018d6102ff366004611e1d565b6109b9565b34801561031057600080fd5b5061018d61031f366004611eb8565b610d00565b34801561033057600080fd5b5061021b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610362610eba565b6103b260405160200161037490611fa4565b604051602081830303815290604052805190602001206040518060400160405280600a81526020016921a7a72a2927a62622a960b11b815250611075565b6103e47f00000000000000000000000000000000000000000000000000000000000000006103df30611125565b6111b2565b60405163c621882360e01b815273bff10575fbd785af0f26267fc20c30cdea428ae19063c621882390610483907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f00000000000000000000000000000000000000000000000000000000000000009089908990600401611fc8565b602060405180830381865af41580156104a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c49190612093565b90506104ce6111dd565b92915050565b6104e660405160200161037490611fa4565b60208101515181515182911461051a5780515160208201515160405163663de02360e01b81526101849291906004016120ac565b60005b8151518110156106125760008260000151828151811061053f5761053f6120ba565b60200260200101519050600083602001518381518110610561576105616120ba565b6020908102919091018101516040516347cba33d60e01b81526001600160a01b038581166004830152825160248301529282015160448201529092507f0000000000000000000000000000000000000000000000000000000000000000909116906347cba33d90606401600060405180830381600087803b1580156105e557600080fd5b505af11580156105f9573d6000803e3d6000fd5b505050505050808061060a906120e6565b91505061051d565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa101977826040015183606001516040518363ffffffff1660e01b81526004016106699291906120ac565b600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b505050506106a3610eba565b60405163fdfc26f360e01b815260009073eb91c69615baeb583a52d072ebe750ce562c34d89063fdfc26f3906106ff907f00000000000000000000000000000000000000000000000000000000000000009088906004016120ff565b61016060405180830381865af415801561071d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190612166565b60405163688ddee960e11b8152909150309063d11bbdd29061076b9087908590339060040161229e565b600060405180830381600087803b15801561078557600080fd5b505af1158015610799573d6000803e3d6000fd5b50505050506107a66111dd565b6040516327246e6d60e11b815260040160405180910390fd5b6107c7610eba565b6107d960405160200161037490611fa4565b60005a60405163fdfc26f360e01b81529091507f00000000000000000000000000000000000000000000000000000000000000009060009073eb91c69615baeb583a52d072ebe750ce562c34d89063fdfc26f39061083d90859088906004016120ff565b61016060405180830381865af415801561085b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087f9190612166565b905061088e826103df30611293565b6108c36108a082602001516040015190565b6040518060400160405280600581526020016414da1a599d60da1b8152506112d6565b73bff10575fbd785af0f26267fc20c30cdea428ae163e54cd0f6837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008861092a87515190565b60408051808201825260158152741554d15497d2539255125055115117d0d05390d153605a1b602082015290516001600160e01b031960e089901b16815261097b9695949392918c91600401612335565b60006040518083038186803b15801561099357600080fd5b505af41580156109a7573d6000803e3d6000fd5b505050505050506109b66111dd565b50565b6109c1610eba565b610a346040516020016109f4906020808252600c908201526b27a92222a92fa5a2a2a822a960a11b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280600c81526020016b27a92222a92fa5a2a2a822a960a11b815250611075565b610a3d816123c7565b604051633d333c8560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d333c8590610a89908490600401612549565b600060405180830381600087803b158015610aa357600080fd5b505af1158015610ab7573d6000803e3d6000fd5b5050505060005a9050600073eb91c69615baeb583a52d072ebe750ce562c34d863fdfc26f37f0000000000000000000000000000000000000000000000000000000000000000876040518363ffffffff1660e01b8152600401610b1b9291906120ff565b61016060405180830381865af4158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d9190612166565b90506000610b8b7f0000000000000000000000000000000000000000000000000000000000000000836113f4565b9050610bb87f0000000000000000000000000000000000000000000000000000000000000000848361148c565b6000610be47f0000000000000000000000000000000000000000000000000000000000000000856114d4565b60405163688ddee960e11b8152909150309063d11bbdd2908390610c10908b908890339060040161229e565b600060405180830381600088803b158015610c2a57600080fd5b5087f193505050508015610c3c575060015b610c7d573d808015610c6a576040519150601f19603f3d011682016040523d82523d6000602084013e610c6f565b606091505b50610c7b888683611519565b505b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662ccf1556040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610cdb57600080fd5b505af1158015610cef573d6000803e3d6000fd5b5050505050610cfc6111dd565b5050565b333014610d44576040805163a35b150b60e01b815233600480830191909152602482019290925260448101919091526329a2a62360e11b6064820152608401610184565b60005a9050610d767f00000000000000000000000000000000000000000000000000000000000000006103df30611647565b6040805160e0810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301527f00000000000000000000000000000000000000000000000000000000000000008116828401527f00000000000000000000000000000000000000000000000000000000000000008116606083015260808201879052841660a082015260c081018390529051634baad2d560e01b815273bff10575fbd785af0f26267fc20c30cdea428ae190634baad2d590610e7190849088906004016125e7565b602060405180830381865af4158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190612093565b505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f5604051602001610efa9061266b565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b8152600401610f2e91815260200190565b602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612093565b90508015610fbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610184565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e2a4853a604051602001610ffd9061266b565b6040516020818303038152906040528051906020012060016040518363ffffffff1660e01b81526004016110329291906120ac565b6020604051808303816000875af1158015611051573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfc9190612093565b60405163ac4ab3fb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ac4ab3fb906110c390339086906004016120ff565b602060405180830381865afa1580156110e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611104919061269c565b610cfc57338160405163a35b150b60e01b81526004016101849291906126be565b6000604051602001611168906020808252601d908201527f4352454154455f53484946545f464541545552455f44495341424c4544000000604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b6111bc828261168a565b15610cfc5760405163dd70e0c960e01b815260048101829052602401610184565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e2a4853a60405160200161121b9061266b565b6040516020818303038152906040528051906020012060006040518363ffffffff1660e01b81526004016112509291906120ac565b6020604051808303816000875af115801561126f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b69190612093565b6000604051602001611168906020808252601d908201527f43414e43454c5f53484946545f464541545552455f44495341424c4544000000604082015260600190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161134290602080825260179082015276524551554553545f45585049524154494f4e5f54494d4560481b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161137691815260200190565b602060405180830381865afa158015611393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b79190612093565b905060006113c584426126e2565b9050818110156113ee57808284604051631d04cc8760e31b8152600401610184939291906126f5565b50505050565b600061140582602001516080015190565b836001600160a01b031663bd02d0f561141c6116f6565b6040518263ffffffff1660e01b815260040161143a91815260200190565b602060405180830381865afa158015611457573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147b9190612093565b611485919061271d565b9392505050565b600061149784611746565b90506114a3818361271d565b8310156113ee5760405163bb416f9360e01b8152600481018490526024810183905260448101829052606401610184565b6000806114e08461180b565b905080831015611507578281604051631e4a4e5960e21b81526004016101849291906120ac565b61151181846126e2565b949350505050565b6115437f00000000000000000000000000000000000000000000000000000000000000008261186f565b6000611550826020015190565b905061155c81836118bd565b600061156783611925565b506040516372a6687b60e11b815290915073bff10575fbd785af0f26267fc20c30cdea428ae19063e54cd0f690611610907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908b9033908c908a908d90600401612730565b60006040518083038186803b15801561162857600080fd5b505af415801561163c573d6000803e3d6000fd5b505050505050505050565b6000604051602001611168906020808252601e908201527f455845435554455f53484946545f464541545552455f44495341424c45440000604082015260600190565b604051633d70e7e560e11b8152600481018290526000906001600160a01b03841690637ae1cfca90602401602060405180830381865afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611485919061269c565b600060405160200161172b906020808252600f908201526e14d212519517d1d054d7d312535255608a1b604082015260600190565b60405160208183030381529060405280519060200120905090565b6000816001600160a01b031663bd02d0f5604051602001611796906020808252818101527f4d494e5f4144444954494f4e414c5f4741535f464f525f455845435554494f4e604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016117ca91815260200190565b602060405180830381865afa1580156117e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ce9190612093565b6000816001600160a01b031663bd02d0f56040516020016117969060208082526029908201527f4d494e5f48414e444c455f455845435554494f4e5f4552524f525f4741535f5460408201526813d7d193d495d0549160ba1b606082015260800190565b805115158061187d57503215155b15611886575050565b60005a90506000611896846119b5565b9050808210156113ee578181604051633083b9e560e01b81526004016101849291906120ac565b6118c682611a07565b806118e157506001600160e01b0319821663dd70e0c960e01b145b806118fc57506001600160e01b031982166379a2abad60e01b145b8061191757506001600160e01b031982166334f6b2ab60e21b145b15610cfc57610cfc81611a3d565b6060600060448351101561194c575050604080516020810190915260008082529092909150565b6000611959846020015190565b90506307b9e43360e51b6001600160e01b0319821601611998576004840193508380602001905181019061198d919061279e565b946001945092505050565b600060405180602001604052806000815250909250925050915091565b6000816001600160a01b031663bd02d0f5604051602001611796906020808252601e908201527f4d494e5f48414e444c455f455845435554494f4e5f4552524f525f4741530000604082015260600190565b6000611a1282611a46565b15611a1f57506001919050565b611a2882611a88565b15611a3557506001919050565b506000919050565b80518060208301fd5b60006304f68e2360e31b6001600160e01b0319831601611a6857506001919050565b638298854160e01b6001600160e01b0319831601611a3557506001919050565b600063329b5fdb60e01b6001600160e01b0319831601611a3557506001919050565b6001600160a01b03811681146109b657600080fd5b600060208284031215611ad157600080fd5b815161148581611aaa565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b8035611b0881611aaa565b919050565b600080828403610120811215611b2257600080fd5b8335611b2d81611aaa565b9250610100601f1982011215611b4257600080fd5b506020830190509250929050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715611b8857611b88611b50565b60405290565b604080519081016001600160401b0381118282101715611b8857611b88611b50565b60405160a081016001600160401b0381118282101715611b8857611b88611b50565b60405160c081016001600160401b0381118282101715611b8857611b88611b50565b604051606081016001600160401b0381118282101715611b8857611b88611b50565b604051601f8201601f191681016001600160401b0381118282101715611c3e57611c3e611b50565b604052919050565b60006001600160401b03821115611c5f57611c5f611b50565b5060051b60200190565b600082601f830112611c7a57600080fd5b81356020611c8f611c8a83611c46565b611c16565b82815260059290921b84018101918181019086841115611cae57600080fd5b8286015b84811015611cd2578035611cc581611aaa565b8352918301918301611cb2565b509695505050505050565b6000806040808486031215611cf157600080fd5b833592506020808501356001600160401b0380821115611d1057600080fd5b9086019060808289031215611d2457600080fd5b611d2c611b66565b823582811115611d3b57600080fd5b611d478a828601611c69565b8252508383013582811115611d5b57600080fd5b83019150601f82018913611d6e57600080fd5b8135611d7c611c8a82611c46565b81815260069190911b8301850190858101908b831115611d9b57600080fd5b938601935b82851015611ddb5787858d031215611db85760008081fd5b611dc0611b8e565b85358152878601358882015282529387019390860190611da0565b808785015250505084830135858201526060830135606082015280955050505050509250929050565b600060208284031215611e1657600080fd5b5035919050565b60008060408385031215611e3057600080fd5b8235915060208301356001600160401b03811115611e4d57600080fd5b830160608186031215611e5f57600080fd5b809150509250929050565b600060a08284031215611e7c57600080fd5b611e84611bb0565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015292915050565b60008060008385036101a0811215611ecf57600080fd5b84359350601f1901610160811215611ee657600080fd5b611eee611b8e565b60c0821215611efc57600080fd5b611f04611bd2565b91506020860135611f1481611aaa565b82526040860135611f2481611aaa565b60208301526060860135611f3781611aaa565b60408301526080860135611f4a81611aaa565b606083015260a0860135611f5d81611aaa565b608083015260c0860135611f7081611aaa565b60a0830152818152611f858760e08801611e6a565b60208201529250611f9b90506101808501611afd565b90509250925092565b6020808252600a908201526921a7a72a2927a62622a960b11b604082015260600190565b6001600160a01b0386811682528581166020830152848116604083015283811660608301526101808201908335611ffe81611aaa565b81166080840152602084013561201381611aaa565b1660a083015261202560408401611afd565b61203260c0840182611adc565b5061203f60608401611afd565b61204c60e0840182611adc565b5061205960808401611afd565b612067610100840182611adc565b5060a083013561012083015260c083013561014083015260e08301356101608301529695505050505050565b6000602082840312156120a557600080fd5b5051919050565b918252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016120f8576120f86120d0565b5060010190565b6001600160a01b03929092168252602082015260400190565b600060a0828403121561212a57600080fd5b612132611bb0565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b600081830361016081121561217a57600080fd5b612182611b8e565b60c082121561219057600080fd5b612198611bd2565b915083516121a581611aaa565b825260208401516121b581611aaa565b602083015260408401516121c881611aaa565b604083015260608401516121db81611aaa565b606083015260808401516121ee81611aaa565b608083015260a084015161220181611aaa565b60a08301528181526122168560c08601612118565b6020820152949350505050565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260808083015182169084015260a09182015116910152565b80518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b60006101a0820190508482526122b8602083018551612223565b60208401516122ca60e084018261226e565b506001600160a01b0392909216610180919091015292915050565b60005b838110156123005781810151838201526020016122e8565b50506000910152565b600081518084526123218160208601602086016122e5565b601f01601f19169290920160200192915050565b6001600160a01b03888116825287811660208301528681166040830152606082018690528416608082015260a0810183905261010060c0820181905260009061238083820185612309565b83810360e090940193909352505060008152602001979650505050505050565b60006001600160401b038211156123b9576123b9611b50565b50601f01601f191660200190565b6000606082360312156123d957600080fd5b6123e1611bf4565b82356001600160401b03808211156123f857600080fd5b61240436838701611c69565b835260209150818501358181111561241b57600080fd5b61242736828801611c69565b83850152506040808601358281111561243f57600080fd5b860136601f82011261245057600080fd5b803561245e611c8a82611c46565b81815260059190911b8201850190858101903683111561247d57600080fd5b8684015b838110156124f1578035878111156124995760008081fd5b850136603f8201126124ab5760008081fd5b888101356124bb611c8a826123a0565b81815236898385010111156124d05760008081fd5b818984018c83013760009181018b0191909152845250918701918701612481565b509387019390935250939695505050505050565b600081518084526020808501945080840160005b8381101561253e5781516001600160a01b031687529582019590820190600101612519565b509495945050505050565b6000602080835283516060828501526125656080850182612505565b905081850151601f19808684030160408701526125828383612505565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b828110156125d957848783030184526125c7828751612309565b958801959388019391506001016125ad565b509998505050505050505050565b60006102408201905060018060a01b03808551168352806020860151166020840152806040860151166040840152806060860151166060840152608085015160808401528060a08601511660a08401525060c084015160c083015261265060e083018451612223565b60208301516126636101a084018261226e565b509392505050565b6020808252601790820152765245454e5452414e43595f47554152445f53544154555360481b604082015260600190565b6000602082840312156126ae57600080fd5b8151801515811461148557600080fd5b6001600160a01b038316815260406020820181905260009061151190830184612309565b818103818111156104ce576104ce6120d0565b8381528260208201526060604082015260006127146060830184612309565b95945050505050565b808201808211156104ce576104ce6120d0565b6001600160a01b03898116825288811660208301528781166040830152606082018790528516608082015260a0810184905261010060c0820181905260009061277b83820186612309565b905082810360e084015261278f8185612309565b9b9a5050505050505050505050565b6000602082840312156127b057600080fd5b81516001600160401b038111156127c657600080fd5b8201601f810184136127d757600080fd5b80516127e5611c8a826123a0565b8181528560208385010111156127fa57600080fd5b6127148260208301602086016122e556fea264697066735822122078a466bc72228f521f89b9ecc10bad27cacd17490d38806d5aa843d3115c8a7764736f6c634300081200330000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb000000000000000000000000918b60ba71badfada72ef3a6c6f71d0c41d4785c000000000000000000000000fe99609c4aa83ff6816b64563bdffd7fa68753ab