bsc/core/systemcontracts/feynman/chapel/TimelockContract

1 line
19 KiB
Plaintext

6080604052600436106101e75760003560e01c80638129fc1c11610102578063bc197c8111610095578063e38335e511610064578063e38335e5146105e1578063f1fad104146105f4578063f23a6e6114610609578063f27a0c921461063557600080fd5b8063bc197c8114610548578063c4d252f514610574578063d45c443514610594578063d547741f146105c157600080fd5b8063a217fddf116100d1578063a217fddf146104d1578063ac431751146104e6578063b08e51c014610506578063b1c5f4271461052857600080fd5b80638129fc1c1461045a5780638f2a0bb01461046f5780638f61f4f51461048f57806391d14854146104b157600080fd5b80632ab0f5291161017a5780634bf6c882116101495780634bf6c882146103d3578063584b153e146103fa57806364d623531461041a5780638065657f1461043a57600080fd5b80632ab0f529146103435780632f2ff15d1461037357806331d507501461039357806336568abe146103b357600080fd5b8063134008d3116101b6578063134008d31461029c57806313bc9f20146102af578063150b7a02146102cf578063248a9ca31461031357600080fd5b806301d5062a146101f357806301ffc9a71461021557806307bd02651461024a5780630d3cf6fc1461027a57600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021361020e366004611aa5565b61064a565b005b34801561022157600080fd5b50610235610230366004611b19565b61070e565b60405190151581526020015b60405180910390f35b34801561025657600080fd5b5061026c60008051602061258983398151915281565b604051908152602001610241565b34801561028657600080fd5b5061026c60008051602061254983398151915281565b6102136102aa366004611b43565b610739565b3480156102bb57600080fd5b506102356102ca366004611bae565b6107dc565b3480156102db57600080fd5b506102fa6102ea366004611c7c565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610241565b34801561031f57600080fd5b5061026c61032e366004611bae565b60009081526065602052604090206001015490565b34801561034f57600080fd5b5061023561035e366004611bae565b60009081526097602052604090205460011490565b34801561037f57600080fd5b5061021361038e366004611ce3565b610802565b34801561039f57600080fd5b506102356103ae366004611bae565b61082c565b3480156103bf57600080fd5b506102136103ce366004611ce3565b610845565b3480156103df57600080fd5b506103e8600881565b60405160ff9091168152602001610241565b34801561040657600080fd5b50610235610415366004611bae565b6108c8565b34801561042657600080fd5b50610213610435366004611bae565b6108df565b34801561044657600080fd5b5061026c610455366004611b43565b610983565b34801561046657600080fd5b506102136109c2565b34801561047b57600080fd5b5061021361048a366004611d53565b610b73565b34801561049b57600080fd5b5061026c60008051602061256983398151915281565b3480156104bd57600080fd5b506102356104cc366004611ce3565b610cf4565b3480156104dd57600080fd5b5061026c600081565b3480156104f257600080fd5b50610213610501366004611e04565b610d1f565b34801561051257600080fd5b5061026c6000805160206125a983398151915281565b34801561053457600080fd5b5061026c610543366004611e6f565b610f09565b34801561055457600080fd5b506102fa610563366004611f96565b63bc197c8160e01b95945050505050565b34801561058057600080fd5b5061021361058f366004611bae565b610f4e565b3480156105a057600080fd5b5061026c6105af366004611bae565b60009081526097602052604090205490565b3480156105cd57600080fd5b506102136105dc366004611ce3565b611011565b6102136105ef366004611e6f565b611036565b34801561060057600080fd5b506103e8601181565b34801561061557600080fd5b506102fa61062436600461203f565b63f23a6e6160e01b95945050505050565b34801561064157600080fd5b5060985461026c565b600080516020612569833981519152610662816111ae565b6000610672898989898989610983565b905061067e81846111b8565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106ba969594939291906120cc565b60405180910390a3831561070357807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106fa91815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806107335750610733826112a7565b92915050565b600080516020612589833981519152610753816000610cf4565b6107615761076181336112dc565b6000610771888888888888610983565b905061077d8185611335565b610789888888886113d0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107c19493929190612109565b60405180910390a36107d2816114a3565b5050505050505050565b6000818152609760205260408120546001811180156107fb5750428111155b9392505050565b60008281526065602052604090206001015461081d816111ae565b61082783836114dc565b505050565b60008181526097602052604081205481905b1192915050565b6001600160a01b03811633146108ba5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6108c48282611562565b5050565b60008181526097602052604081205460019061083e565b3330146109425760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b60648201526084016108b1565b60985460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1609855565b60008686868686866040516020016109a0969594939291906120cc565b6040516020818303038152906040528051906020012090509695505050505050565b600054610100900460ff16158080156109e25750600054600160ff909116105b806109fc5750303b1580156109fc575060005460ff166001145b610a5f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108b1565b6000805460ff191660011790558015610a82576000805461ff0019166101001790555b334114610aa25760405163022d8c9560e31b815260040160405180910390fd5b3a15610ac1576040516383f1b1d360e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905061200481600081518110610af957610af961213b565b60200260200101906001600160a01b031690816001600160a01b031681525050610b2961546082836120046115c9565b508015610b70576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b600080516020612569833981519152610b8b816111ae565b888714610baa5760405162461bcd60e51b81526004016108b190612151565b888514610bc95760405162461bcd60e51b81526004016108b190612151565b6000610bdb8b8b8b8b8b8b8b8b610f09565b9050610be781846111b8565b60005b8a811015610ca55780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c2757610c2761213b565b9050602002016020810190610c3c9190612194565b8d8d86818110610c4e57610c4e61213b565b905060200201358c8c87818110610c6757610c6761213b565b9050602002810190610c7991906121af565b8c8b604051610c8d969594939291906120cc565b60405180910390a3610c9e8161220b565b9050610bea565b508315610ce757807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610cde91815260200190565b60405180910390a25b5050505050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3361100714610d4557604051630f22c43960e41b815261100760048201526024016108b1565b610da8604051806040016040528060088152602001676d696e44656c617960c01b81525085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506116029050565b15610ea55760208114610dd65783838383604051630a5a604160e01b81526004016108b19493929190612224565b604080516020601f8401819004810282018101909252828152600091610e1791858580838501838280828437600092019190915250929392505061165b9050565b9050801580610e2857506212750081115b15610e4e5784848484604051630a5a604160e01b81526004016108b19493929190612224565b6040516364d6235360e01b81526004810182905230906364d6235390602401600060405180830381600087803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b5050505050610ec6565b838383836040516325ee20d560e21b81526004016108b19493929190612224565b7ff1ce9b2cbf50eeb05769a29e2543fd350cab46894a7dd9978a12d534bb20e63384848484604051610efb9493929190612224565b60405180910390a150505050565b60008888888888888888604051602001610f2a9897969594939291906122d9565b60405160208183030381529060405280519060200120905098975050505050505050565b6000805160206125a9833981519152610f66816111ae565b610f6f826108c8565b610fd55760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b60648201526084016108b1565b6000828152609760205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b60008281526065602052604090206001015461102c816111ae565b6108278383611562565b600080516020612589833981519152611050816000610cf4565b61105e5761105e81336112dc565b87861461107d5760405162461bcd60e51b81526004016108b190612151565b87841461109c5760405162461bcd60e51b81526004016108b190612151565b60006110ae8a8a8a8a8a8a8a8a610f09565b90506110ba8185611335565b60005b898110156111985760008b8b838181106110d9576110d961213b565b90506020020160208101906110ee9190612194565b905060008a8a848181106111045761110461213b565b9050602002013590503660008a8a868181106111225761112261213b565b905060200281019061113491906121af565b91509150611144848484846113d0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588686868660405161117b9493929190612109565b60405180910390a350505050806111919061220b565b90506110bd565b506111a2816114a3565b50505050505050505050565b610b7081336112dc565b6111c18261082c565b156112265760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b60648201526084016108b1565b6098548110156112875760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b60648201526084016108b1565b611291814261237a565b6000928352609760205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b148061073357506301ffc9a760e01b6001600160e01b0319831614610733565b6112e68282610cf4565b6108c4576112f381611660565b6112fe836020611672565b60405160200161130f9291906123b1565b60408051601f198184030181529082905262461bcd60e51b82526108b191600401612426565b61133e826107dc565b61135a5760405162461bcd60e51b81526004016108b190612459565b80158061137557506000818152609760205260409020546001145b6108c45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b60648201526084016108b1565b6000846001600160a01b03168484846040516113ed9291906124a3565b60006040518083038185875af1925050503d806000811461142a576040519150601f19603f3d011682016040523d82523d6000602084013e61142f565b606091505b505090508061149c5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b60648201526084016108b1565b5050505050565b6114ac816107dc565b6114c85760405162461bcd60e51b81526004016108b190612459565b600090815260976020526040902060019055565b6114e68282610cf4565b6108c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561151e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61156c8282610cf4565b156108c45760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600054610100900460ff166115f05760405162461bcd60e51b81526004016108b1906124b3565b6115fc8484848461180d565b50505050565b60008160405160200161161591906124fe565b604051602081830303815290604052805190602001208360405160200161163c91906124fe565b6040516020818303038152906040528051906020012014905092915050565b015190565b60606107336001600160a01b03831660145b6060600061168183600261251a565b61168c90600261237a565b6001600160401b038111156116a3576116a3611bc7565b6040519080825280601f01601f1916602001820160405280156116cd576020820181803683370190505b509050600360fc1b816000815181106116e8576116e861213b565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117175761171761213b565b60200101906001600160f81b031916908160001a905350600061173b84600261251a565b61174690600161237a565b90505b60018111156117be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177a5761177a61213b565b1a60f81b8282815181106117905761179061213b565b60200101906001600160f81b031916908160001a90535060049490941c936117b781612531565b9050611749565b5083156107fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108b1565b600054610100900460ff166118345760405162461bcd60e51b81526004016108b1906124b3565b61184c600080516020612549833981519152806119ec565b6118726000805160206125698339815191526000805160206125498339815191526119ec565b6118986000805160206125898339815191526000805160206125498339815191526119ec565b6118be6000805160206125a98339815191526000805160206125498339815191526119ec565b6118d660008051602061254983398151915230611a37565b6001600160a01b038116156118fd576118fd60008051602061254983398151915282611a37565b60005b835181101561196e5761193a60008051602061256983398151915285838151811061192d5761192d61213b565b6020026020010151611a37565b61195e6000805160206125a983398151915285838151811061192d5761192d61213b565b6119678161220b565b9050611900565b5060005b82518110156119af5761199f60008051602061258983398151915284838151811061192d5761192d61213b565b6119a88161220b565b9050611972565b5060988490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d59101610efb565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6108c482826114dc565b80356001600160a01b0381168114611a5857600080fd5b919050565b60008083601f840112611a6f57600080fd5b5081356001600160401b03811115611a8657600080fd5b602083019150836020828501011115611a9e57600080fd5b9250929050565b600080600080600080600060c0888a031215611ac057600080fd5b611ac988611a41565b96506020880135955060408801356001600160401b03811115611aeb57600080fd5b611af78a828b01611a5d565b989b979a50986060810135976080820135975060a09091013595509350505050565b600060208284031215611b2b57600080fd5b81356001600160e01b0319811681146107fb57600080fd5b60008060008060008060a08789031215611b5c57600080fd5b611b6587611a41565b95506020870135945060408701356001600160401b03811115611b8757600080fd5b611b9389828a01611a5d565b979a9699509760608101359660809091013595509350505050565b600060208284031215611bc057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611c0557611c05611bc7565b604052919050565b600082601f830112611c1e57600080fd5b81356001600160401b03811115611c3757611c37611bc7565b611c4a601f8201601f1916602001611bdd565b818152846020838601011115611c5f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215611c9257600080fd5b611c9b85611a41565b9350611ca960208601611a41565b92506040850135915060608501356001600160401b03811115611ccb57600080fd5b611cd787828801611c0d565b91505092959194509250565b60008060408385031215611cf657600080fd5b82359150611d0660208401611a41565b90509250929050565b60008083601f840112611d2157600080fd5b5081356001600160401b03811115611d3857600080fd5b6020830191508360208260051b8501011115611a9e57600080fd5b600080600080600080600080600060c08a8c031215611d7157600080fd5b89356001600160401b0380821115611d8857600080fd5b611d948d838e01611d0f565b909b50995060208c0135915080821115611dad57600080fd5b611db98d838e01611d0f565b909950975060408c0135915080821115611dd257600080fd5b50611ddf8c828d01611d0f565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060408587031215611e1a57600080fd5b84356001600160401b0380821115611e3157600080fd5b611e3d88838901611a5d565b90965094506020870135915080821115611e5657600080fd5b50611e6387828801611a5d565b95989497509550505050565b60008060008060008060008060a0898b031215611e8b57600080fd5b88356001600160401b0380821115611ea257600080fd5b611eae8c838d01611d0f565b909a50985060208b0135915080821115611ec757600080fd5b611ed38c838d01611d0f565b909850965060408b0135915080821115611eec57600080fd5b50611ef98b828c01611d0f565b999c989b509699959896976060870135966080013595509350505050565b600082601f830112611f2857600080fd5b813560206001600160401b03821115611f4357611f43611bc7565b8160051b611f52828201611bdd565b9283528481018201928281019087851115611f6c57600080fd5b83870192505b84831015611f8b57823582529183019190830190611f72565b979650505050505050565b600080600080600060a08688031215611fae57600080fd5b611fb786611a41565b9450611fc560208701611a41565b935060408601356001600160401b0380821115611fe157600080fd5b611fed89838a01611f17565b9450606088013591508082111561200357600080fd5b61200f89838a01611f17565b9350608088013591508082111561202557600080fd5b5061203288828901611c0d565b9150509295509295909350565b600080600080600060a0868803121561205757600080fd5b61206086611a41565b945061206e60208701611a41565b9350604086013592506060860135915060808601356001600160401b0381111561209757600080fd5b61203288828901611c0d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a0604082015260006120f460a0830186886120a3565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006121316060830184866120a3565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b6000602082840312156121a657600080fd5b6107fb82611a41565b6000808335601e198436030181126121c657600080fd5b8301803591506001600160401b038211156121e057600080fd5b602001915036819003821315611a9e57600080fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161221d5761221d6121f5565b5060010190565b6040815260006122386040830186886120a3565b8281036020840152611f8b8185876120a3565b818352600060208085019450848460051b86018460005b878110156122cc5783830389528135601e1988360301811261228357600080fd5b870185810190356001600160401b0381111561229e57600080fd5b8036038213156122ad57600080fd5b6122b88582846120a3565b9a87019a9450505090840190600101612262565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b81101561231a576001600160a01b0361230584611a41565b168252602092830192909101906001016122ec565b5083810360208501528881526001600160fb1b0389111561233a57600080fd5b8860051b9150818a60208301370182810360209081016040850152612362908201878961224b565b60608401959095525050608001529695505050505050565b80820180821115610733576107336121f5565b60005b838110156123a8578181015183820152602001612390565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516123e981601785016020880161238d565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161241a81602884016020880161238d565b01602801949350505050565b602081526000825180602084015261244581604085016020870161238d565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000825161251081846020870161238d565b9190910192915050565b8082028115828204841417610733576107336121f5565b600081612540576125406121f5565b50600019019056fe5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a164736f6c6343000811000a