diff --git a/contracts/.gas-snapshot b/contracts/.gas-snapshot index c878562d3..f1536b22c 100644 --- a/contracts/.gas-snapshot +++ b/contracts/.gas-snapshot @@ -65,8 +65,8 @@ OmniAVS_canRegister_Test:test_canRegister_notOperator() (gas: 119994) OmniAVS_initialize_Test:test_initialize_defaultParams_succeeds() (gas: 3588147) OmniAVS_syncWithOmni_Test:test_depositBeaconEth_succeeds() (gas: 630918) OmniAVS_syncWithOmni_Test:test_unsupportedStrategyDeposit_succeeds() (gas: 1532940) -OmniPortal_admin_Test:test_pause() (gas: 64866834) -OmniPortal_admin_Test:test_setFeeOracle() (gas: 34909) +OmniPortal_admin_Test:test_pause() (gas: 64850137) +OmniPortal_admin_Test:test_setFeeOracle() (gas: 34953) OmniPortal_adversarial:test_xcallToPortal_adminFunc_fails() (gas: 82800) OmniPortal_adversarial:test_xcallToPortal_internalFunction_fails() (gas: 57901) OmniPortal_adversarial:test_xcallToPortal_selfXCall_fails() (gas: 93714) @@ -78,40 +78,40 @@ OmniPortal_exec_Test:test_exec_notEnoughGas_reverts() (gas: 4996992) OmniPortal_exec_Test:test_exec_wrongChainId_reverts() (gas: 26298) OmniPortal_exec_Test:test_exec_xmsgRevert_succeeds() (gas: 71152) OmniPortal_exec_Test:test_exec_xmsg_succeeds() (gas: 129162) -OmniPortal_feeFor_Test:test_feeFor_defaultGasLimit_succeeds() (gas: 45336) -OmniPortal_feeFor_Test:test_feeFor_succeeds() (gas: 41807) -OmniPortal_xcall_Test:test_xcall_defaultGasLimit_succeeds() (gas: 108968) +OmniPortal_feeFor_Test:test_feeFor_defaultGasLimit_succeeds() (gas: 45380) +OmniPortal_feeFor_Test:test_feeFor_succeeds() (gas: 41829) +OmniPortal_xcall_Test:test_xcall_defaultGasLimit_succeeds() (gas: 108990) OmniPortal_xcall_Test:test_xcall_explicitGasLimit_succeeds() (gas: 109226) OmniPortal_xcall_Test:test_xcall_gasLimitTooHigh_reverts() (gas: 70531) OmniPortal_xcall_Test:test_xcall_gasLimitTooLow_reverts() (gas: 70807) OmniPortal_xcall_Test:test_xcall_insufficientFee_reverts() (gas: 72900) OmniPortal_xcall_Test:test_xcall_sameChain_reverts() (gas: 59952) OmniPortal_xcall_Test:test_xcall_unsupportedChain_reverts() (gas: 43847) -OmniPortal_xsubmit_Test:test_xsubmit_addValidatorSet_succeeds() (gas: 65535232) -OmniPortal_xsubmit_Test:test_xsubmit_duplicateValidator_reverts() (gas: 64509952) -OmniPortal_xsubmit_Test:test_xsubmit_invalidAttestationRoot_reverts() (gas: 64554765) -OmniPortal_xsubmit_Test:test_xsubmit_invalidMsgs_reverts() (gas: 64542145) -OmniPortal_xsubmit_Test:test_xsubmit_noQuorum_reverts() (gas: 64516744) -OmniPortal_xsubmit_Test:test_xsubmit_noXmsgs_reverts() (gas: 64492044) -OmniPortal_xsubmit_Test:test_xsubmit_notNewValSet_succeeds() (gas: 65506995) -OmniPortal_xsubmit_Test:test_xsubmit_oldValSet_reverts() (gas: 66090795) -OmniPortal_xsubmit_Test:test_xsubmit_reentrancy_reverts() (gas: 64630259) -OmniPortal_xsubmit_Test:test_xsubmit_uknownValSetId_reverts() (gas: 64500211) -OmniPortal_xsubmit_Test:test_xsubmit_wrongChainId_reverts() (gas: 64586493) -OmniPortal_xsubmit_Test:test_xsubmit_wrongStreamOffset_reverts() (gas: 64588991) -OmniPortal_xsubmit_Test:test_xsubmit_xblock1_chainB_succeeds() (gas: 64774202) -OmniPortal_xsubmit_Test:test_xsubmit_xblock1_succeeds() (gas: 64774311) -OmniPortal_xsubmit_Test:test_xsubmit_xblock2_chainB_succeeds() (gas: 65436622) -OmniPortal_xsubmit_Test:test_xsubmit_xblock2_succeeds() (gas: 65436738) -OmniPortal_xsubmit_gas_Test:test_singleExec() (gas: 65057790) -OmniPortal_xsubmit_gas_Test:test_xsubmi_addValidator_succeeds() (gas: 64690486) -OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle10_succeeds() (gas: 65741294) -OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle1_succeeds() (gas: 64707358) -OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle25_succeeds() (gas: 67465258) -OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle50_succeeds() (gas: 70340274) -OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle5_succeeds() (gas: 65166924) +OmniPortal_xsubmit_Test:test_xsubmit_addValidatorSet_succeeds() (gas: 65501963) +OmniPortal_xsubmit_Test:test_xsubmit_duplicateValidator_reverts() (gas: 64509966) +OmniPortal_xsubmit_Test:test_xsubmit_invalidAttestationRoot_reverts() (gas: 64554779) +OmniPortal_xsubmit_Test:test_xsubmit_invalidMsgs_reverts() (gas: 64542159) +OmniPortal_xsubmit_Test:test_xsubmit_noQuorum_reverts() (gas: 64516758) +OmniPortal_xsubmit_Test:test_xsubmit_noXmsgs_reverts() (gas: 64492055) +OmniPortal_xsubmit_Test:test_xsubmit_notNewValSet_succeeds() (gas: 65470633) +OmniPortal_xsubmit_Test:test_xsubmit_oldValSet_reverts() (gas: 66057768) +OmniPortal_xsubmit_Test:test_xsubmit_reentrancy_reverts() (gas: 64610594) +OmniPortal_xsubmit_Test:test_xsubmit_uknownValSetId_reverts() (gas: 64497818) +OmniPortal_xsubmit_Test:test_xsubmit_wrongChainId_reverts() (gas: 64566828) +OmniPortal_xsubmit_Test:test_xsubmit_wrongStreamOffset_reverts() (gas: 64569326) +OmniPortal_xsubmit_Test:test_xsubmit_xblock1_chainB_succeeds() (gas: 64757505) +OmniPortal_xsubmit_Test:test_xsubmit_xblock1_succeeds() (gas: 64757614) +OmniPortal_xsubmit_Test:test_xsubmit_xblock2_chainB_succeeds() (gas: 65423649) +OmniPortal_xsubmit_Test:test_xsubmit_xblock2_succeeds() (gas: 65423765) +OmniPortal_xsubmit_gas_Test:test_singleExec() (gas: 65057812) +OmniPortal_xsubmit_gas_Test:test_xsubmit_addValidator_succeeds() (gas: 64670779) +OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle10_succeeds() (gas: 65728329) +OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle1_succeeds() (gas: 64687715) +OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle25_succeeds() (gas: 67463423) +OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle50_succeeds() (gas: 70356989) +OmniPortal_xsubmit_gas_Test:test_xsubmit_guzzle5_succeeds() (gas: 65150138) Omni_Test:test_constructor() (gas: 1006927) -PortalRegistry_Test:test_register() (gas: 808342) +PortalRegistry_Test:test_register() (gas: 818023) Quorum_Test:test_verify_allInvalidSigs_reverts() (gas: 281140) Quorum_Test:test_verify_duplicateValidator_reverts() (gas: 283391) Quorum_Test:test_verify_invalidSignature_reverts() (gas: 282508) diff --git a/contracts/bindings/omniportal.go b/contracts/bindings/omniportal.go index 13d04ed6a..29fc2d889 100644 --- a/contracts/bindings/omniportal.go +++ b/contracts/bindings/omniportal.go @@ -78,8 +78,8 @@ type XTypesValidator struct { // OmniPortalMetaData contains all meta data concerning the OmniPortal contract. var OmniPortalMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"XSUB_QUORUM_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"XSUB_QUORUM_NUMERATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addValidatorSet\",\"inputs\":[{\"name\":\"valSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"validators\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Validator[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"power\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"chainId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"collectFees\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeFor\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeFor\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeOracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamBlockHeight\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamOffset\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamValidatorSetId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeOracle_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"xregistry_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"omniChainId_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"omniCChainID_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgDefaultGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgMaxGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgMinGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xreceiptMaxErrorBytes_\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"valSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"validators\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Validator[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"power\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isSupportedChain\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isXCall\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omniCChainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omniChainId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"outXStreamOffset\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeOracle\",\"inputs\":[{\"name\":\"feeOracle_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgDefaultGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgMaxGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgMinGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXReceiptMaxErrorBytes\",\"inputs\":[{\"name\":\"maxErrorBytes\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXRegistry\",\"inputs\":[{\"name\":\"xregistry_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorSet\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorSetTotalPower\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xcall\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"xcall\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"xmsg\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structXTypes.MsgShort\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgDefaultGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgMaxGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgMinGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xreceiptMaxErrorBytes\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xregistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xsubmit\",\"inputs\":[{\"name\":\"xsub\",\"type\":\"tuple\",\"internalType\":\"structXTypes.Submission\",\"components\":[{\"name\":\"attestationRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHeader\",\"type\":\"tuple\",\"internalType\":\"structXTypes.BlockHeader\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"msgs\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Msg[]\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proofFlags\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"signatures\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.SigTuple[]\",\"components\":[{\"name\":\"validatorAddr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"FeeOracleChanged\",\"inputs\":[{\"name\":\"oldOracle\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOrcale\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeesCollected\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorSetAdded\",\"inputs\":[{\"name\":\"setId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsg\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"fees\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgDefaultGasLimitChanged\",\"inputs\":[{\"name\":\"oldDefault\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newDefault\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgMaxGasLimitChanged\",\"inputs\":[{\"name\":\"oldMax\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newMax\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgMinGasLimitChanged\",\"inputs\":[{\"name\":\"oldMin\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newMin\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XReceipt\",\"inputs\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"gasUsed\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"relayer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"success\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XReceiptMaxErrorBytesChanged\",\"inputs\":[{\"name\":\"oldMax\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"newMax\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"}],\"anonymous\":false}]", - Bin: "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6138a580620000f36000396000f3fe60806040526004361061023b5760003560e01c80638926f54f1161012e578063a6cfb978116100ab578063d34419a81161006f578063d34419a81461078a578063e5dfacc6146107aa578063ef02238f146107ca578063f2fde38b146107ea578063f65dd27b1461080a57600080fd5b8063a6cfb978146106d8578063a8a98962146106ed578063b58e964f1461070d578063bb8590ad14610743578063cf84c8181461076357600080fd5b80638f6b05ca116100f25780638f6b05ca146105f857806390ab417c146106395780639a8a05921461066f5780639c346d9914610682578063a480ca79146106b857600080fd5b80638926f54f14610554578063894040a5146105745780638da5cb5b1461059a5780638dd9523c146105b85780638e9e7cbe146105d857600080fd5b80635118de8e116101bc578063738b07a611610180578063738b07a6146104b8578063738ec47c146104d857806378fe5307146104f85780638456cb591461051f5780638532eb9f1461053457600080fd5b80635118de8e1461041657806355e2448e1461044c5780635c975abb1461047857806370e8b56a14610490578063715018a6146104a357600080fd5b80633f4ba83a116102035780633f4ba83a146103615780634115ab79146103765780634f93e91f146103a4578063500b19e7146103cb57806350e646dd1461040357600080fd5b8063047c576414610240578063110ff5f1146102845780631da9ed61146102a45780632f32700e146102da57806336d853f91461033f575b600080fd5b34801561024c57600080fd5b5060ca5461026790600160401b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029057600080fd5b5060ca54610267906001600160401b031681565b3480156102b057600080fd5b506102676102bf366004612e16565b60d1602052600090815260409020546001600160401b031681565b3480156102e657600080fd5b5060408051808201825260008082526020918201528151808301835260d3546001600160401b0381168083526001600160a01b03600160401b90920482169284019283528451908152915116918101919091520161027b565b34801561034b57600080fd5b5061035f61035a366004612e16565b610838565b005b34801561036d57600080fd5b5061035f61084c565b34801561038257600080fd5b50610396610391366004612e72565b61085e565b60405190815260200161027b565b3480156103b057600080fd5b506103b9600381565b60405160ff909116815260200161027b565b3480156103d757600080fd5b5060cb546103eb906001600160a01b031681565b6040516001600160a01b03909116815260200161027b565b61035f610411366004612edb565b6108f2565b34801561042257600080fd5b50610267610431366004612e16565b60d0602052600090815260409020546001600160401b031681565b34801561045857600080fd5b5060d3546001600160401b031615155b604051901515815260200161027b565b34801561048457600080fd5b5060655460ff16610468565b61035f61049e366004612f3b565b610923565b3480156104af57600080fd5b5061035f610940565b3480156104c457600080fd5b5060cc546103eb906001600160a01b031681565b3480156104e457600080fd5b5061035f6104f3366004612fb0565b610952565b34801561050457600080fd5b5060c95461026790600160901b90046001600160401b031681565b34801561052b57600080fd5b5061035f610d35565b34801561054057600080fd5b5061035f61054f36600461310a565b610d45565b34801561056057600080fd5b5061046861056f366004612e16565b610e61565b34801561058057600080fd5b5060c954610267906201000090046001600160401b031681565b3480156105a657600080fd5b506033546001600160a01b03166103eb565b3480156105c457600080fd5b506103966105d3366004613157565b610f2d565b3480156105e457600080fd5b5061035f6105f33660046131cd565b610fae565b34801561060457600080fd5b506102676106133660046132b3565b60d26020908152600092835260408084209091529082529020546001600160401b031681565b34801561064557600080fd5b50610267610654366004612e16565b60cd602052600090815260409020546001600160401b031681565b34801561067b57600080fd5b5046610267565b34801561068e57600080fd5b5061026761069d366004612e16565b60cf602052600090815260409020546001600160401b031681565b3480156106c457600080fd5b5061035f6106d33660046132e6565b611179565b3480156106e457600080fd5b506103b9600281565b3480156106f957600080fd5b5061035f6107083660046132e6565b611201565b34801561071957600080fd5b50610267610728366004612e16565b60ce602052600090815260409020546001600160401b031681565b34801561074f57600080fd5b5061035f61075e366004612e16565b611212565b34801561076f57600080fd5b5060c95461026790600160501b90046001600160401b031681565b34801561079657600080fd5b5061035f6107a5366004612e16565b611223565b3480156107b657600080fd5b5061035f6107c53660046132e6565b611234565b3480156107d657600080fd5b5061035f6107e5366004613301565b611245565b3480156107f657600080fd5b5061035f6108053660046132e6565b611256565b34801561081657600080fd5b5060c9546108259061ffff1681565b60405161ffff909116815260200161027b565b6108406112cc565b61084981611326565b50565b6108546112cc565b61085c6113de565b565b60cb5460c954604051632376548f60e21b81526000926001600160a01b031691638dd9523c916108a791889188918891620100009091046001600160401b031690600401613345565b602060405180830381865afa1580156108c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e8919061337d565b90505b9392505050565b6108fa611430565b61091d843385858560c960029054906101000a90046001600160401b0316611476565b50505050565b61092b611430565b610939853386868686611476565b5050505050565b6109486112cc565b61085c60006117fd565b61095a611430565b61096261184f565b600061097160a0830183613396565b9050116109bc5760405162461bcd60e51b81526020600482015260146024820152734f6d6e69506f7274616c3a206e6f20786d73677360601b60448201526064015b60405180910390fd5b60006109ce6040830160208401612e16565b9050600060d0816109e56060860160408701612e16565b6001600160401b0390811682526020808301939093526040918201600090812054868316825260d19094529190912054918116925016610a675760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a20756e6b6e6f776e2076616c20736574000000000060448201526064016109b3565b806001600160401b0316826001600160401b03161015610ac95760405162461bcd60e51b815260206004820152601760248201527f4f6d6e69506f7274616c3a206f6c642076616c2073657400000000000000000060448201526064016109b3565b610b0d8335610adc610100860186613396565b6001600160401b03808716600090815260d26020908152604080832060d190925290912054909116600260036118a8565b610b515760405162461bcd60e51b81526020600482015260156024820152744f6d6e69506f7274616c3a206e6f2071756f72756d60581b60448201526064016109b3565b610b86833560408501610b6760a0870187613396565b610b7460c0890189613396565b610b8160e08b018b613396565b611aca565b610bd25760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a20696e76616c69642070726f6f660000000000000060448201526064016109b3565b6000610be46080850160608601612e16565b9050600060cf81610bfb6060880160408901612e16565b6001600160401b039081168252602082019290925260400160002054811691508216811015610c6c578160cf6000610c396060890160408a01612e16565b6001600160401b0390811682526020820192909252604001600020805467ffffffffffffffff1916929091169190911790555b826001600160401b0316846001600160401b03161115610cce578360d06000610c9b6060890160408a01612e16565b6001600160401b0390811682526020820192909252604001600020805467ffffffffffffffff1916929091169190911790555b60005b610cde60a0870187613396565b9050811015610d2657610d1e610cf760a0880188613396565b83818110610d0757610d076133df565b9050602002810190610d1991906133f5565b611b54565b600101610cd1565b50505050506108496001609755565b610d3d6112cc565b61085c611e8e565b333014610d8c5760405162461bcd60e51b815260206004820152601560248201527427b6b734a837b93a30b61d1037b7363c9039b2b63360591b60448201526064016109b3565b60ca5460d3546001600160401b03908116600160401b9092041614610df35760405162461bcd60e51b815260206004820152601760248201527f4f6d6e69506f7274616c3a206f6e6c792063636861696e00000000000000000060448201526064016109b3565b60d354600160401b90046001600160a01b031615610e535760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a206f6e6c792063636861696e2073656e646572000060448201526064016109b3565b610e5d8282611ecb565b5050565b6000466001600160401b0316826001600160401b031614158015610f27575060cc54604080518082018252600a81526913db5b9a541bdc9d185b60b21b6020820152905163fd0b64f760e01b81526001600160a01b039092169163fd0b64f791610ee69186919073121e2400000000000000000000000000000000029060040161345b565b602060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190613495565b92915050565b60cb54604051632376548f60e21b81526000916001600160a01b031690638dd9523c90610f64908890889088908890600401613345565b602060405180830381865afa158015610f81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa5919061337d565b95945050505050565b600054610100900460ff1615808015610fce5750600054600160ff909116105b80610fe85750303b158015610fe8575060005460ff166001145b61104b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016109b3565b6000805460ff19166001179055801561106e576000805461ff0019166101001790555b6110778c6117fd565b6110808b61214a565b6110898a6121f2565b6110928761226a565b61109b86611326565b6110a485612320565b6110ad846123d8565b6110b78383611ecb565b60ca80546001600160401b038a8116600160401b81026fffffffffffffffffffffffffffffffff19909316828e161792909217909255600090815260ce60209081526040808320805494881667ffffffffffffffff19958616811790915560cf9092529091208054909216179055801561116b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b6111816112cc565b60405147906001600160a01b0383169082156108fc029083906000818181858888f193505050501580156111b9573d6000803e3d6000fd5b50816001600160a01b03167f9dc46f23cfb5ddcad0ae7ea2be38d47fec07bb9382ec7e564efc69e036dd66ce826040516111f591815260200190565b60405180910390a25050565b6112096112cc565b6108498161214a565b61121a6112cc565b61084981612320565b61122b6112cc565b6108498161226a565b61123c6112cc565b610849816121f2565b61124d6112cc565b610849816123d8565b61125e6112cc565b6001600160a01b0381166112c35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109b3565b610849816117fd565b6033546001600160a01b0316331461085c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109b3565b6000816001600160401b03161161137f5760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d617820676173000000000060448201526064016109b3565b60c980546001600160401b03838116600160501b81810267ffffffffffffffff60501b1985161790945560405193909204169182907f251f3ae1733d684e5cac178693d5377ceed13586692070e29ba70b0aa1f3fc2a90600090a35050565b6113e6612474565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60655460ff161561085c5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016109b3565b466001600160401b0316866001600160401b0316036114d75760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206e6f2073616d652d636861696e207863616c6c0060448201526064016109b3565b6001600160401b03861661152d5760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a206e6f2062726f616463617374207863616c6c000060448201526064016109b3565b61153686610e61565b6115825760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a20756e737570706f7274656420636861696e00000060448201526064016109b3565b6001600160a01b0384166115d85760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f20706f7274616c207863616c6c000000000060448201526064016109b3565b60c9546001600160401b03600160501b9091048116908216111561163e5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206761734c696d697420746f6f206869676800000060448201526064016109b3565b60c9546001600160401b03600160901b909104811690821610156116a45760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69506f7274616c3a206761734c696d697420746f6f206c6f770000000060448201526064016109b3565b3033036116f35760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a20706f7274616c2063616e6e6f74207863616c6c0060448201526064016109b3565b6116ff86848484610f2d565b34101561174e5760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69506f7274616c3a20696e73756666696369656e74206665650000000060448201526064016109b3565b6001600160401b03808716600090815260cd60205260408120805460019391929161177b918591166134cd565b82546101009290920a6001600160401b03818102199093169183160217909155878116600081815260cd60205260409081902054905192169250907ff000fa616b983cf98d20d0bfe023c3c6e345b16d955e261287067ffc35e222af906117ed908990899089908990899034906134f4565b60405180910390a3505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6002609754036118a15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016109b3565b6002609755565b6000803660005b88811015611ab7578989828181106118c9576118c96133df565b90506020028101906118db919061353f565b915080156119fd5760008a8a6118f2600185613555565b818110611901576119016133df565b9050602002810190611913919061353f565b61191c90613568565b80519091506001600160a01b031661193760208501856132e6565b6001600160a01b03160361198d5760405162461bcd60e51b815260206004820152601b60248201527f51756f72756d3a206475706c69636174652076616c696461746f72000000000060448201526064016109b3565b80516001600160a01b03166119a560208501856132e6565b6001600160a01b0316116119fb5760405162461bcd60e51b815260206004820152601760248201527f51756f72756d3a2073696773206e6f7420736f7274656400000000000000000060448201526064016109b3565b505b611a07828c6124bd565b611a535760405162461bcd60e51b815260206004820152601960248201527f51756f72756d3a20696e76616c6964207369676e61747572650000000000000060448201526064016109b3565b876000611a6360208501856132e6565b6001600160a01b03168152602081019190915260400160002054611a90906001600160401b0316846134cd565b9250611a9e83888888612531565b15611aaf5760019350505050611abf565b6001016118af565b506000925050505b979650505050505050565b6000611b47858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152508e9250611b4291508d90508c8c61256e565b612681565b9998505050505050505050565b466001600160401b0316611b6e6040830160208401612e16565b6001600160401b03161480611b9b57506000611b906040830160208401612e16565b6001600160401b0316145b611be75760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a2077726f6e672064657374436861696e496400000060448201526064016109b3565b60ce6000611bf86020840184612e16565b6001600160401b039081168252602082019290925260400160002054611c20911660016134cd565b6001600160401b0316611c396060830160408401612e16565b6001600160401b031614611c8f5760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a2077726f6e672073747265616d4f6666736574000060448201526064016109b3565b6040805180820190915280611ca76020840184612e16565b6001600160401b03168152602001611cc560808401606085016132e6565b6001600160a01b03908116909152815160d38054602094850151909316600160401b026001600160e01b03199093166001600160401b039092169190911791909117905560019060ce90600090611d1e90850185612e16565b6001600160401b0390811682526020820192909252604001600090812080549092611d4b918591166134cd565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506000806001600160a01b0316826080016020810190611d8e91906132e6565b6001600160a01b0316149050600080600083611dde57611dd9611db760a08701608088016132e6565b611dc760e0880160c08901612e16565b611dd460a0890189613613565b612699565b611df3565b611df3611dee60a0870187613613565b61276b565b60d380546001600160e01b031916905591945092509050600083611e175782611e28565b604051806020016040528060008152505b9050611e3a6060870160408801612e16565b6001600160401b0316611e506020880188612e16565b6001600160401b03167fc2f03986562c9333b7872c7694832b7583b6a4dbde9868c9d43a2a3896c64343843388866040516117ed9493929190613659565b611e96611430565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586114133390565b6000815111611f1c5760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a206e6f2076616c696461746f72730000000000000060448201526064016109b3565b604080518082018252600080825260208083018290526001600160401b038616825260d29052918220825b84518110156120ea57848181518110611f6257611f626133df565b602090810291909101015180519093506001600160a01b0316611fc75760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2076616c696461746f7200000060448201526064016109b3565b600083602001516001600160401b0316116120245760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a206e6f207a65726f20706f7765720000000000000060448201526064016109b3565b82516001600160a01b03166000908152602083905260409020546001600160401b0316156120945760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206475706c69636174652076616c696461746f720060448201526064016109b3565b60208301516120a390856134cd565b60208481015185516001600160a01b03166000908152918590526040909120805467ffffffffffffffff19166001600160401b039092169190911790559350600101611f47565b506001600160401b03858116600081815260d16020526040808220805467ffffffffffffffff191694881694909417909355915190917f3a7c2f997a87ba92aedaecd1127f4129cae1283e2809ebf5304d321b943fd10791a25050505050565b6001600160a01b0381166121a05760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206665654f7261636c6500000060448201526064016109b3565b60cb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f2819896846ed9ab612eb19218fd845f8328f084c8706b9ec2c47eabd479037a290600090a35050565b6001600160a01b0381166122485760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2078726567697374727900000060448201526064016109b3565b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160401b0316116122c35760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2064656661756c74206761730060448201526064016109b3565b60c980546001600160401b038381166201000081810269ffffffffffffffff00001985161790945560405193909204169182907f479467d7183aeaacc2c95e61181bab2a6c3ae8bbc3af3f5746fb8742b559f6f090600090a35050565b6000816001600160401b0316116123795760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d696e20676173000000000060448201526064016109b3565b60c980546001600160401b03838116600160901b81810267ffffffffffffffff60901b1985161790945560405193909204169182907f7f60dee945e48cd3b3dc543aa68ce448509f2d31dd910ae06a2dbddf939ed80e90600090a35050565b60008161ffff161161242c5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d617820627974657300000060448201526064016109b3565b60c9805461ffff83811661ffff19831681179093556040519116919082907f6cbf88f9d82c3743ec3192f1ab1fbae71ef9535bf1d8b8e8d7e655dc68fb911990600090a35050565b60655460ff1661085c5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016109b3565b60006124cc60208401846132e6565b6001600160a01b0316612520836124e66020870187613613565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061280192505050565b6001600160a01b0316149392505050565b60008160ff168360ff16856125469190613695565b61255091906136c0565b6001600160401b0316856001600160401b0316119050949350505050565b6060600061257d8360016136f4565b6001600160401b0381111561259457612594612feb565b6040519080825280602002602001820160405280156125bd578160200160208202803683370190505b5090506125e8856040516020016125d49190613707565b604051602081830303815290604052612825565b816000815181106125fb576125fb6133df565b60200260200101818152505060005b8381101561267857612649858583818110612627576126276133df565b905060200281019061263991906133f5565b6040516020016125d49190613744565b826126558360016136f4565b81518110612665576126656133df565b602090810291909101015260010161260a565b50949350505050565b60008261268f86868561285e565b1495945050505050565b600060606000805a9050600080612726896001600160401b0316600060c960009054906101000a900461ffff168b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e6001600160a01b0316612af190949392919063ffffffff16565b9150915060005a905061273a603f8b6136c0565b6001600160401b0316811161274b57fe5b82826127578387613555565b965096509650505050509450945094915050565b600060606000805a9050600080306001600160a01b03168888604051612792929190613830565b6000604051808303816000865af19150503d80600081146127cf576040519150601f19603f3d011682016040523d82523d6000602084013e6127d4565b606091505b50915091505a6127e49084613555565b9250816127f357805160208201fd5b909450925090509250925092565b60008060006128108585612b7b565b9150915061281d81612bc0565b509392505050565b6000818051906020012060405160200161284191815260200190565b604051602081830303815290604052805190602001209050919050565b805183518351600092919080600161287684866136f4565b6128809190613555565b146128cd5760405162461bcd60e51b815260206004820152601f60248201527f4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f660060448201526064016109b3565b6000816001600160401b038111156128e7576128e7612feb565b604051908082528060200260200182016040528015612910578160200160208202803683370190505b5090506000806000805b85811015612a4457600088851061295557858461293681613840565b955081518110612948576129486133df565b602002602001015161297b565b8a8561296081613840565b965081518110612972576129726133df565b60200260200101515b905060008c8381518110612991576129916133df565b60200260200101516129c7578d846129a881613840565b9550815181106129ba576129ba6133df565b6020026020010151612a11565b8986106129eb5786856129d981613840565b9650815181106129ba576129ba6133df565b8b866129f681613840565b975081518110612a0857612a086133df565b60200260200101515b9050612a1d8282612d0a565b878481518110612a2f57612a2f6133df565b6020908102919091010152505060010161291a565b508415612ac557858114612a9a5760405162461bcd60e51b815260206004820152601f60248201527f4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f660060448201526064016109b3565b836001860381518110612aaf57612aaf6133df565b60200260200101519750505050505050506108eb565b8615612ade5788600081518110612aaf57612aaf6133df565b8a600081518110612aaf57612aaf6133df565b6000606060008060008661ffff166001600160401b03811115612b1657612b16612feb565b6040519080825280601f01601f191660200182016040528015612b40576020820181803683370190505b5090506000808751602089018b8e8ef191503d925086831115612b61578692505b828152826000602083013e90999098509650505050505050565b6000808251604103612bb15760208301516040840151606085015160001a612ba587828585612d36565b94509450505050612bb9565b506000905060025b9250929050565b6000816004811115612bd457612bd4613859565b03612bdc5750565b6001816004811115612bf057612bf0613859565b03612c3d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016109b3565b6002816004811115612c5157612c51613859565b03612c9e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016109b3565b6003816004811115612cb257612cb2613859565b036108495760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016109b3565b6000818310612d265760008281526020849052604090206108eb565b5060009182526020526040902090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612d6d5750600090506003612df1565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612dc1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612dea57600060019250925050612df1565b9150600090505b94509492505050565b80356001600160401b0381168114612e1157600080fd5b919050565b600060208284031215612e2857600080fd5b6108eb82612dfa565b60008083601f840112612e4357600080fd5b5081356001600160401b03811115612e5a57600080fd5b602083019150836020828501011115612bb957600080fd5b600080600060408486031215612e8757600080fd5b612e9084612dfa565b925060208401356001600160401b03811115612eab57600080fd5b612eb786828701612e31565b9497909650939450505050565b80356001600160a01b0381168114612e1157600080fd5b60008060008060608587031215612ef157600080fd5b612efa85612dfa565b9350612f0860208601612ec4565b925060408501356001600160401b03811115612f2357600080fd5b612f2f87828801612e31565b95989497509550505050565b600080600080600060808688031215612f5357600080fd5b612f5c86612dfa565b9450612f6a60208701612ec4565b935060408601356001600160401b03811115612f8557600080fd5b612f9188828901612e31565b9094509250612fa4905060608701612dfa565b90509295509295909350565b600060208284031215612fc257600080fd5b81356001600160401b03811115612fd857600080fd5b820161012081850312156108eb57600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561302357613023612feb565b60405290565b604051601f8201601f191681016001600160401b038111828210171561305157613051612feb565b604052919050565b600082601f83011261306a57600080fd5b813560206001600160401b0382111561308557613085612feb565b613093818360051b01613029565b82815260069290921b840181019181810190868411156130b257600080fd5b8286015b848110156130ff57604081890312156130cf5760008081fd5b6130d7613001565b6130e082612ec4565b81526130ed858301612dfa565b818601528352918301916040016130b6565b509695505050505050565b6000806040838503121561311d57600080fd5b61312683612dfa565b915060208301356001600160401b0381111561314157600080fd5b61314d85828601613059565b9150509250929050565b6000806000806060858703121561316d57600080fd5b61317685612dfa565b935060208501356001600160401b0381111561319157600080fd5b61319d87828801612e31565b90945092506131b0905060408601612dfa565b905092959194509250565b803561ffff81168114612e1157600080fd5b60008060008060008060008060008060006101608c8e0312156131ef57600080fd5b6131f88c612ec4565b9a5061320660208d01612ec4565b995061321460408d01612ec4565b985061322260608d01612dfa565b975061323060808d01612dfa565b965061323e60a08d01612dfa565b955061324c60c08d01612dfa565b945061325a60e08d01612dfa565b93506132696101008d016131bb565b92506132786101208d01612dfa565b91506101408c01356001600160401b0381111561329457600080fd5b6132a08e828f01613059565b9150509295989b509295989b9093969950565b600080604083850312156132c657600080fd5b6132cf83612dfa565b91506132dd60208401612ec4565b90509250929050565b6000602082840312156132f857600080fd5b6108eb82612ec4565b60006020828403121561331357600080fd5b6108eb826131bb565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006001600160401b0380871683526060602084015261336960608401868861331c565b915080841660408401525095945050505050565b60006020828403121561338f57600080fd5b5051919050565b6000808335601e198436030181126133ad57600080fd5b8301803591506001600160401b038211156133c757600080fd5b6020019150600581901b3603821315612bb957600080fd5b634e487b7160e01b600052603260045260246000fd5b6000823560de1983360301811261340b57600080fd5b9190910192915050565b6000815180845260005b8181101561343b5760208185018101518683018201520161341f565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160401b038416815260606020820152600061347d6060830185613415565b905060018060a01b0383166040830152949350505050565b6000602082840312156134a757600080fd5b815180151581146108eb57600080fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156134ed576134ed6134b7565b5092915050565b6001600160a01b0387811682528616602082015260a060408201819052600090613521908301868861331c565b6001600160401b039490941660608301525060800152949350505050565b60008235603e1983360301811261340b57600080fd5b81810381811115610f2757610f276134b7565b60006040823603121561357a57600080fd5b613582613001565b61358b83612ec4565b81526020808401356001600160401b03808211156135a857600080fd5b9085019036601f8301126135bb57600080fd5b8135818111156135cd576135cd612feb565b6135df601f8201601f19168501613029565b915080825236848285010111156135f557600080fd5b80848401858401376000908201840152918301919091525092915050565b6000808335601e1984360301811261362a57600080fd5b8301803591506001600160401b0382111561364457600080fd5b602001915036819003821315612bb957600080fd5b8481526001600160a01b0384166020820152821515604082015260806060820181905260009061368b90830184613415565b9695505050505050565b6001600160401b038181168382160280821691908281146136b8576136b86134b7565b505092915050565b60006001600160401b03808416806136e857634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b80820180821115610f2757610f276134b7565b606081016001600160401b038061371d85612dfa565b1683528061372d60208601612dfa565b166020840152506040830135604083015292915050565b6020815260006001600160401b038061375c85612dfa565b1660208401528061376f60208601612dfa565b1660408401528061378260408601612dfa565b16606084015261379460608501612ec4565b60018060a01b038082166080860152806137b060808801612ec4565b1660a0860152505060a0840135601e198536030181126137cf57600080fd5b8401602081019035828111156137e457600080fd5b8036038213156137f357600080fd5b60e060c08601526138096101008601828461331c565b9250505061381960c08501612dfa565b6001600160401b03811660e0850152509392505050565b8183823760009101908152919050565b600060018201613852576138526134b7565b5060010190565b634e487b7160e01b600052602160045260246000fdfea264697066735822122090bc21f9342edb0a12c99e33336890dad371cfd28f51f23660722c4a41a24f4964736f6c63430008180033", + ABI: "[{\"type\":\"constructor\",\"inputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"XSUB_QUORUM_DENOMINATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"XSUB_QUORUM_NUMERATOR\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"internalType\":\"uint8\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"addValidatorSet\",\"inputs\":[{\"name\":\"valSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"validators\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Validator[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"power\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"chainId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"collectFees\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"feeFor\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeFor\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"feeOracle\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamBlockHeight\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamOffset\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"inXStreamValidatorSetId\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"initSourceChain\",\"inputs\":[{\"name\":\"srcChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"initialize\",\"inputs\":[{\"name\":\"owner_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"feeOracle_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"xregistry_\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"omniChainId_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"omniCChainID_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgDefaultGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgMaxGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xmsgMinGasLimit_\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"xreceiptMaxErrorBytes_\",\"type\":\"uint16\",\"internalType\":\"uint16\"},{\"name\":\"valSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"validators\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Validator[]\",\"components\":[{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"power\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"isSupportedChain\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isXCall\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omniCChainID\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omniChainId\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"outXStreamOffset\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"pause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"paused\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setFeeOracle\",\"inputs\":[{\"name\":\"feeOracle_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgDefaultGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgMaxGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXMsgMinGasLimit\",\"inputs\":[{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXReceiptMaxErrorBytes\",\"inputs\":[{\"name\":\"maxErrorBytes\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setXRegistry\",\"inputs\":[{\"name\":\"xregistry_\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"unpause\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"validatorSet\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"validatorSetTotalPower\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xcall\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"xcall\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"xmsg\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structXTypes.MsgShort\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgDefaultGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgMaxGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xmsgMinGasLimit\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xreceiptMaxErrorBytes\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint16\",\"internalType\":\"uint16\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xregistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"xsubmit\",\"inputs\":[{\"name\":\"xsub\",\"type\":\"tuple\",\"internalType\":\"structXTypes.Submission\",\"components\":[{\"name\":\"attestationRoot\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"},{\"name\":\"validatorSetId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHeader\",\"type\":\"tuple\",\"internalType\":\"structXTypes.BlockHeader\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"blockHash\",\"type\":\"bytes32\",\"internalType\":\"bytes32\"}]},{\"name\":\"msgs\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.Msg[]\",\"components\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"destChainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"internalType\":\"uint64\"}]},{\"name\":\"proof\",\"type\":\"bytes32[]\",\"internalType\":\"bytes32[]\"},{\"name\":\"proofFlags\",\"type\":\"bool[]\",\"internalType\":\"bool[]\"},{\"name\":\"signatures\",\"type\":\"tuple[]\",\"internalType\":\"structXTypes.SigTuple[]\",\"components\":[{\"name\":\"validatorAddr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"signature\",\"type\":\"bytes\",\"internalType\":\"bytes\"}]}]}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"FeeOracleChanged\",\"inputs\":[{\"name\":\"oldOracle\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOrcale\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"FeesCollected\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Initialized\",\"inputs\":[{\"name\":\"version\",\"type\":\"uint8\",\"indexed\":false,\"internalType\":\"uint8\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Paused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"Unpaused\",\"inputs\":[{\"name\":\"account\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"ValidatorSetAdded\",\"inputs\":[{\"name\":\"setId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsg\",\"inputs\":[{\"name\":\"destChainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"sender\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"to\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"data\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"},{\"name\":\"gasLimit\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"fees\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgDefaultGasLimitChanged\",\"inputs\":[{\"name\":\"oldDefault\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newDefault\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgMaxGasLimitChanged\",\"inputs\":[{\"name\":\"oldMax\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newMax\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XMsgMinGasLimitChanged\",\"inputs\":[{\"name\":\"oldMin\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"newMin\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XReceipt\",\"inputs\":[{\"name\":\"sourceChainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"streamOffset\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"gasUsed\",\"type\":\"uint256\",\"indexed\":false,\"internalType\":\"uint256\"},{\"name\":\"relayer\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"},{\"name\":\"success\",\"type\":\"bool\",\"indexed\":false,\"internalType\":\"bool\"},{\"name\":\"error\",\"type\":\"bytes\",\"indexed\":false,\"internalType\":\"bytes\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"XReceiptMaxErrorBytesChanged\",\"inputs\":[{\"name\":\"oldMax\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"},{\"name\":\"newMax\",\"type\":\"uint16\",\"indexed\":true,\"internalType\":\"uint16\"}],\"anonymous\":false}]", + Bin: "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613a8280620000f36000396000f3fe6080604052600436106102465760003560e01c80638532eb9f11610139578063a480ca79116100b6578063cf84c8181161007a578063cf84c8181461078e578063d34419a8146107b5578063e5dfacc6146107d5578063ef02238f146107f5578063f2fde38b14610815578063f65dd27b1461083557600080fd5b8063a480ca79146106e3578063a6cfb97814610703578063a8a9896214610718578063b58e964f14610738578063bb8590ad1461076e57600080fd5b80638e9e7cbe116100fd5780638e9e7cbe146106035780638f6b05ca1461062357806390ab417c146106645780639a8a05921461069a5780639c346d99146106ad57600080fd5b80638532eb9f1461055f5780638926f54f1461057f578063894040a51461059f5780638da5cb5b146105c55780638dd9523c146105e357600080fd5b806350e646dd116101c7578063715018a61161018b578063715018a6146104ce578063738b07a6146104e3578063738ec47c1461050357806378fe5307146105235780638456cb591461054a57600080fd5b806350e646dd1461042e5780635118de8e1461044157806355e2448e146104775780635c975abb146104a357806370e8b56a146104bb57600080fd5b80633f4ba83a1161020e5780633f4ba83a1461036c578063404792ce146103815780634115ab79146103a15780634f93e91f146103cf578063500b19e7146103f657600080fd5b8063047c57641461024b578063110ff5f11461028f5780631da9ed61146102af5780632f32700e146102e557806336d853f91461034a575b600080fd5b34801561025757600080fd5b5060ca5461027290600160401b90046001600160401b031681565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029b57600080fd5b5060ca54610272906001600160401b031681565b3480156102bb57600080fd5b506102726102ca366004612ff3565b60d1602052600090815260409020546001600160401b031681565b3480156102f157600080fd5b5060408051808201825260008082526020918201528151808301835260d3546001600160401b0381168083526001600160a01b03600160401b909204821692840192835284519081529151169181019190915201610286565b34801561035657600080fd5b5061036a610365366004612ff3565b610863565b005b34801561037857600080fd5b5061036a610877565b34801561038d57600080fd5b5061036a61039c366004612ff3565b610889565b3480156103ad57600080fd5b506103c16103bc36600461304f565b610926565b604051908152602001610286565b3480156103db57600080fd5b506103e4600381565b60405160ff9091168152602001610286565b34801561040257600080fd5b5060cb54610416906001600160a01b031681565b6040516001600160a01b039091168152602001610286565b61036a61043c3660046130b8565b6109ba565b34801561044d57600080fd5b5061027261045c366004612ff3565b60d0602052600090815260409020546001600160401b031681565b34801561048357600080fd5b5060d3546001600160401b031615155b6040519015158152602001610286565b3480156104af57600080fd5b5060655460ff16610493565b61036a6104c9366004613118565b6109eb565b3480156104da57600080fd5b5061036a610a08565b3480156104ef57600080fd5b5060cc54610416906001600160a01b031681565b34801561050f57600080fd5b5061036a61051e36600461318d565b610a1a565b34801561052f57600080fd5b5060c95461027290600160901b90046001600160401b031681565b34801561055657600080fd5b5061036a610eef565b34801561056b57600080fd5b5061036a61057a3660046132e7565b610eff565b34801561058b57600080fd5b5061049361059a366004612ff3565b61101b565b3480156105ab57600080fd5b5060c954610272906201000090046001600160401b031681565b3480156105d157600080fd5b506033546001600160a01b0316610416565b3480156105ef57600080fd5b506103c16105fe366004613334565b6110e7565b34801561060f57600080fd5b5061036a61061e3660046133aa565b611168565b34801561062f57600080fd5b5061027261063e366004613490565b60d26020908152600092835260408084209091529082529020546001600160401b031681565b34801561067057600080fd5b5061027261067f366004612ff3565b60cd602052600090815260409020546001600160401b031681565b3480156106a657600080fd5b5046610272565b3480156106b957600080fd5b506102726106c8366004612ff3565b60cf602052600090815260409020546001600160401b031681565b3480156106ef57600080fd5b5061036a6106fe3660046134c3565b611356565b34801561070f57600080fd5b506103e4600281565b34801561072457600080fd5b5061036a6107333660046134c3565b6113de565b34801561074457600080fd5b50610272610753366004612ff3565b60ce602052600090815260409020546001600160401b031681565b34801561077a57600080fd5b5061036a610789366004612ff3565b6113ef565b34801561079a57600080fd5b5060c95461027290600160501b90046001600160401b031681565b3480156107c157600080fd5b5061036a6107d0366004612ff3565b611400565b3480156107e157600080fd5b5061036a6107f03660046134c3565b611411565b34801561080157600080fd5b5061036a6108103660046134de565b611422565b34801561082157600080fd5b5061036a6108303660046134c3565b611433565b34801561084157600080fd5b5060c9546108509061ffff1681565b60405161ffff9091168152602001610286565b61086b6114a9565b61087481611503565b50565b61087f6114a9565b6108876115bb565b565b60cc546001600160a01b031633146108e85760405162461bcd60e51b815260206004820152601a60248201527f4f6d6e69506f7274616c3a206f6e6c792078726567697374727900000000000060448201526064015b60405180910390fd5b60ca546001600160401b03908116600090815260d060205260408082205493831682529020805467ffffffffffffffff191692909116919091179055565b60cb5460c954604051632376548f60e21b81526000926001600160a01b031691638dd9523c9161096f91889188918891620100009091046001600160401b031690600401613522565b602060405180830381865afa15801561098c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b0919061355a565b90505b9392505050565b6109c261160d565b6109e5843385858560c960029054906101000a90046001600160401b0316611653565b50505050565b6109f361160d565b610a01853386868686611653565b5050505050565b610a106114a9565b61088760006119da565b610a2261160d565b610a2a611a2c565b6000610a3960a0830183613573565b905011610a7f5760405162461bcd60e51b81526020600482015260146024820152734f6d6e69506f7274616c3a206e6f20786d73677360601b60448201526064016108df565b6000610a916040830160208401612ff3565b6001600160401b03808216600090815260d1602052604090205491925016610afb5760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a20756e6b6e6f776e2076616c20736574000000000060448201526064016108df565b600060d081610b106060860160408701612ff3565b6001600160401b03908116825260208201929092526040016000205416905080610b755760405162461bcd60e51b815260206004820152601660248201527513db5b9a541bdc9d185b0e881b9bc81d985b081cd95d60521b60448201526064016108df565b806001600160401b0316826001600160401b03161015610bd75760405162461bcd60e51b815260206004820152601760248201527f4f6d6e69506f7274616c3a206f6c642076616c2073657400000000000000000060448201526064016108df565b610c1b8335610bea610100860186613573565b6001600160401b03808716600090815260d26020908152604080832060d19092529091205490911660026003611a85565b610c5f5760405162461bcd60e51b81526020600482015260156024820152744f6d6e69506f7274616c3a206e6f2071756f72756d60581b60448201526064016108df565b610c94833560408501610c7560a0870187613573565b610c8260c0890189613573565b610c8f60e08b018b613573565b611ca7565b610ce05760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a20696e76616c69642070726f6f660000000000000060448201526064016108df565b6000610cf26080850160608601612ff3565b9050600060cf81610d096060880160408901612ff3565b6001600160401b039081168252602082019290925260400160002054811691508216811015610d7a578160cf6000610d476060890160408a01612ff3565b6001600160401b0390811682526020820192909252604001600020805467ffffffffffffffff1916929091169190911790555b826001600160401b0316846001600160401b03161115610ddc578360d06000610da96060890160408a01612ff3565b6001600160401b0390811682526020820192909252604001600020805467ffffffffffffffff1916929091169190911790555b60005b610dec60a0870187613573565b9050811015610ee057610e056060870160408801612ff3565b6001600160401b0316610e1b60a0880188613573565b83818110610e2b57610e2b6135bc565b9050602002810190610e3d91906135d2565b610e4b906020810190612ff3565b6001600160401b031614610ea15760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a2077726f6e6720736f75726365436861696e49640060448201526064016108df565b610ed8610eb160a0880188613573565b83818110610ec157610ec16135bc565b9050602002810190610ed391906135d2565b611d31565b600101610ddf565b50505050506108746001609755565b610ef76114a9565b61088761206b565b333014610f465760405162461bcd60e51b815260206004820152601560248201527427b6b734a837b93a30b61d1037b7363c9039b2b63360591b60448201526064016108df565b60ca5460d3546001600160401b03908116600160401b9092041614610fad5760405162461bcd60e51b815260206004820152601760248201527f4f6d6e69506f7274616c3a206f6e6c792063636861696e00000000000000000060448201526064016108df565b60d354600160401b90046001600160a01b03161561100d5760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a206f6e6c792063636861696e2073656e646572000060448201526064016108df565b61101782826120a8565b5050565b6000466001600160401b0316826001600160401b0316141580156110e1575060cc54604080518082018252600a81526913db5b9a541bdc9d185b60b21b6020820152905163fd0b64f760e01b81526001600160a01b039092169163fd0b64f7916110a09186919073121e24000000000000000000000000000000000290600401613638565b602060405180830381865afa1580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190613672565b92915050565b60cb54604051632376548f60e21b81526000916001600160a01b031690638dd9523c9061111e908890889088908890600401613522565b602060405180830381865afa15801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f919061355a565b95945050505050565b600054610100900460ff16158080156111885750600054600160ff909116105b806111a25750303b1580156111a2575060005460ff166001145b6112055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016108df565b6000805460ff191660011790558015611228576000805461ff0019166101001790555b6112318c6119da565b61123a8b612327565b6112438a6123cf565b61124c87612447565b61125586611503565b61125e856124fd565b611267846125b5565b61127183836120a8565b60ca80546001600160401b038a8116600160401b81026fffffffffffffffffffffffffffffffff19909316828e1690811793909317909355600083815260ce602090815260408083208054948a1667ffffffffffffffff19958616811790915560cf8352818420805486168217905594835260d090915280822080548416851790559381529290922080549092161790558015611348576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050505050505050565b61135e6114a9565b60405147906001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611396573d6000803e3d6000fd5b50816001600160a01b03167f9dc46f23cfb5ddcad0ae7ea2be38d47fec07bb9382ec7e564efc69e036dd66ce826040516113d291815260200190565b60405180910390a25050565b6113e66114a9565b61087481612327565b6113f76114a9565b610874816124fd565b6114086114a9565b61087481612447565b6114196114a9565b610874816123cf565b61142a6114a9565b610874816125b5565b61143b6114a9565b6001600160a01b0381166114a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108df565b610874816119da565b6033546001600160a01b031633146108875760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108df565b6000816001600160401b03161161155c5760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d617820676173000000000060448201526064016108df565b60c980546001600160401b03838116600160501b81810267ffffffffffffffff60501b1985161790945560405193909204169182907f251f3ae1733d684e5cac178693d5377ceed13586692070e29ba70b0aa1f3fc2a90600090a35050565b6115c3612651565b6065805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60655460ff16156108875760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016108df565b466001600160401b0316866001600160401b0316036116b45760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206e6f2073616d652d636861696e207863616c6c0060448201526064016108df565b6001600160401b03861661170a5760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a206e6f2062726f616463617374207863616c6c000060448201526064016108df565b6117138661101b565b61175f5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a20756e737570706f7274656420636861696e00000060448201526064016108df565b6001600160a01b0384166117b55760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f20706f7274616c207863616c6c000000000060448201526064016108df565b60c9546001600160401b03600160501b9091048116908216111561181b5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206761734c696d697420746f6f206869676800000060448201526064016108df565b60c9546001600160401b03600160901b909104811690821610156118815760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69506f7274616c3a206761734c696d697420746f6f206c6f770000000060448201526064016108df565b3033036118d05760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a20706f7274616c2063616e6e6f74207863616c6c0060448201526064016108df565b6118dc868484846110e7565b34101561192b5760405162461bcd60e51b815260206004820152601c60248201527f4f6d6e69506f7274616c3a20696e73756666696369656e74206665650000000060448201526064016108df565b6001600160401b03808716600090815260cd602052604081208054600193919291611958918591166136aa565b82546101009290920a6001600160401b03818102199093169183160217909155878116600081815260cd60205260409081902054905192169250907ff000fa616b983cf98d20d0bfe023c3c6e345b16d955e261287067ffc35e222af906119ca908990899089908990899034906136d1565b60405180910390a3505050505050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600260975403611a7e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108df565b6002609755565b6000803660005b88811015611c9457898982818110611aa657611aa66135bc565b9050602002810190611ab8919061371c565b91508015611bda5760008a8a611acf600185613732565b818110611ade57611ade6135bc565b9050602002810190611af0919061371c565b611af990613745565b80519091506001600160a01b0316611b1460208501856134c3565b6001600160a01b031603611b6a5760405162461bcd60e51b815260206004820152601b60248201527f51756f72756d3a206475706c69636174652076616c696461746f72000000000060448201526064016108df565b80516001600160a01b0316611b8260208501856134c3565b6001600160a01b031611611bd85760405162461bcd60e51b815260206004820152601760248201527f51756f72756d3a2073696773206e6f7420736f7274656400000000000000000060448201526064016108df565b505b611be4828c61269a565b611c305760405162461bcd60e51b815260206004820152601960248201527f51756f72756d3a20696e76616c6964207369676e61747572650000000000000060448201526064016108df565b876000611c4060208501856134c3565b6001600160a01b03168152602081019190915260400160002054611c6d906001600160401b0316846136aa565b9250611c7b8388888861270e565b15611c8c5760019350505050611c9c565b600101611a8c565b506000925050505b979650505050505050565b6000611d24858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152508e9250611d1f91508d90508c8c61274b565b61285e565b9998505050505050505050565b466001600160401b0316611d4b6040830160208401612ff3565b6001600160401b03161480611d7857506000611d6d6040830160208401612ff3565b6001600160401b0316145b611dc45760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a2077726f6e672064657374436861696e496400000060448201526064016108df565b60ce6000611dd56020840184612ff3565b6001600160401b039081168252602082019290925260400160002054611dfd911660016136aa565b6001600160401b0316611e166060830160408401612ff3565b6001600160401b031614611e6c5760405162461bcd60e51b815260206004820152601e60248201527f4f6d6e69506f7274616c3a2077726f6e672073747265616d4f6666736574000060448201526064016108df565b6040805180820190915280611e846020840184612ff3565b6001600160401b03168152602001611ea260808401606085016134c3565b6001600160a01b03908116909152815160d38054602094850151909316600160401b026001600160e01b03199093166001600160401b039092169190911791909117905560019060ce90600090611efb90850185612ff3565b6001600160401b0390811682526020820192909252604001600090812080549092611f28918591166136aa565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506000806001600160a01b0316826080016020810190611f6b91906134c3565b6001600160a01b0316149050600080600083611fbb57611fb6611f9460a08701608088016134c3565b611fa460e0880160c08901612ff3565b611fb160a08901896137f0565b612876565b611fd0565b611fd0611fcb60a08701876137f0565b612948565b60d380546001600160e01b031916905591945092509050600083611ff45782612005565b604051806020016040528060008152505b90506120176060870160408801612ff3565b6001600160401b031661202d6020880188612ff3565b6001600160401b03167fc2f03986562c9333b7872c7694832b7583b6a4dbde9868c9d43a2a3896c64343843388866040516119ca9493929190613836565b61207361160d565b6065805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115f03390565b60008151116120f95760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a206e6f2076616c696461746f72730000000000000060448201526064016108df565b604080518082018252600080825260208083018290526001600160401b038616825260d29052918220825b84518110156122c75784818151811061213f5761213f6135bc565b602090810291909101015180519093506001600160a01b03166121a45760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2076616c696461746f7200000060448201526064016108df565b600083602001516001600160401b0316116122015760405162461bcd60e51b815260206004820152601960248201527f4f6d6e69506f7274616c3a206e6f207a65726f20706f7765720000000000000060448201526064016108df565b82516001600160a01b03166000908152602083905260409020546001600160401b0316156122715760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206475706c69636174652076616c696461746f720060448201526064016108df565b602083015161228090856136aa565b60208481015185516001600160a01b03166000908152918590526040909120805467ffffffffffffffff19166001600160401b039092169190911790559350600101612124565b506001600160401b03858116600081815260d16020526040808220805467ffffffffffffffff191694881694909417909355915190917f3a7c2f997a87ba92aedaecd1127f4129cae1283e2809ebf5304d321b943fd10791a25050505050565b6001600160a01b03811661237d5760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206665654f7261636c6500000060448201526064016108df565b60cb80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f2819896846ed9ab612eb19218fd845f8328f084c8706b9ec2c47eabd479037a290600090a35050565b6001600160a01b0381166124255760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2078726567697374727900000060448201526064016108df565b60cc80546001600160a01b0319166001600160a01b0392909216919091179055565b6000816001600160401b0316116124a05760405162461bcd60e51b815260206004820152601f60248201527f4f6d6e69506f7274616c3a206e6f207a65726f2064656661756c74206761730060448201526064016108df565b60c980546001600160401b038381166201000081810269ffffffffffffffff00001985161790945560405193909204169182907f479467d7183aeaacc2c95e61181bab2a6c3ae8bbc3af3f5746fb8742b559f6f090600090a35050565b6000816001600160401b0316116125565760405162461bcd60e51b815260206004820152601b60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d696e20676173000000000060448201526064016108df565b60c980546001600160401b03838116600160901b81810267ffffffffffffffff60901b1985161790945560405193909204169182907f7f60dee945e48cd3b3dc543aa68ce448509f2d31dd910ae06a2dbddf939ed80e90600090a35050565b60008161ffff16116126095760405162461bcd60e51b815260206004820152601d60248201527f4f6d6e69506f7274616c3a206e6f207a65726f206d617820627974657300000060448201526064016108df565b60c9805461ffff83811661ffff19831681179093556040519116919082907f6cbf88f9d82c3743ec3192f1ab1fbae71ef9535bf1d8b8e8d7e655dc68fb911990600090a35050565b60655460ff166108875760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108df565b60006126a960208401846134c3565b6001600160a01b03166126fd836126c360208701876137f0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506129de92505050565b6001600160a01b0316149392505050565b60008160ff168360ff16856127239190613872565b61272d919061389d565b6001600160401b0316856001600160401b0316119050949350505050565b6060600061275a8360016138d1565b6001600160401b03811115612771576127716131c8565b60405190808252806020026020018201604052801561279a578160200160208202803683370190505b5090506127c5856040516020016127b191906138e4565b604051602081830303815290604052612a02565b816000815181106127d8576127d86135bc565b60200260200101818152505060005b8381101561285557612826858583818110612804576128046135bc565b905060200281019061281691906135d2565b6040516020016127b19190613921565b826128328360016138d1565b81518110612842576128426135bc565b60209081029190910101526001016127e7565b50949350505050565b60008261286c868685612a3b565b1495945050505050565b600060606000805a9050600080612903896001600160401b0316600060c960009054906101000a900461ffff168b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e6001600160a01b0316612cce90949392919063ffffffff16565b9150915060005a9050612917603f8b61389d565b6001600160401b0316811161292857fe5b82826129348387613732565b965096509650505050509450945094915050565b600060606000805a9050600080306001600160a01b0316888860405161296f929190613a0d565b6000604051808303816000865af19150503d80600081146129ac576040519150601f19603f3d011682016040523d82523d6000602084013e6129b1565b606091505b50915091505a6129c19084613732565b9250816129d057805160208201fd5b909450925090509250925092565b60008060006129ed8585612d58565b915091506129fa81612d9d565b509392505050565b60008180519060200120604051602001612a1e91815260200190565b604051602081830303815290604052805190602001209050919050565b8051835183516000929190806001612a5384866138d1565b612a5d9190613732565b14612aaa5760405162461bcd60e51b815260206004820152601f60248201527f4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f660060448201526064016108df565b6000816001600160401b03811115612ac457612ac46131c8565b604051908082528060200260200182016040528015612aed578160200160208202803683370190505b5090506000806000805b85811015612c21576000888510612b32578584612b1381613a1d565b955081518110612b2557612b256135bc565b6020026020010151612b58565b8a85612b3d81613a1d565b965081518110612b4f57612b4f6135bc565b60200260200101515b905060008c8381518110612b6e57612b6e6135bc565b6020026020010151612ba4578d84612b8581613a1d565b955081518110612b9757612b976135bc565b6020026020010151612bee565b898610612bc8578685612bb681613a1d565b965081518110612b9757612b976135bc565b8b86612bd381613a1d565b975081518110612be557612be56135bc565b60200260200101515b9050612bfa8282612ee7565b878481518110612c0c57612c0c6135bc565b60209081029190910101525050600101612af7565b508415612ca257858114612c775760405162461bcd60e51b815260206004820152601f60248201527f4d65726b6c6550726f6f663a20696e76616c6964206d756c746970726f6f660060448201526064016108df565b836001860381518110612c8c57612c8c6135bc565b60200260200101519750505050505050506109b3565b8615612cbb5788600081518110612c8c57612c8c6135bc565b8a600081518110612c8c57612c8c6135bc565b6000606060008060008661ffff166001600160401b03811115612cf357612cf36131c8565b6040519080825280601f01601f191660200182016040528015612d1d576020820181803683370190505b5090506000808751602089018b8e8ef191503d925086831115612d3e578692505b828152826000602083013e90999098509650505050505050565b6000808251604103612d8e5760208301516040840151606085015160001a612d8287828585612f13565b94509450505050612d96565b506000905060025b9250929050565b6000816004811115612db157612db1613a36565b03612db95750565b6001816004811115612dcd57612dcd613a36565b03612e1a5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108df565b6002816004811115612e2e57612e2e613a36565b03612e7b5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108df565b6003816004811115612e8f57612e8f613a36565b036108745760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016108df565b6000818310612f035760008281526020849052604090206109b3565b5060009182526020526040902090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612f4a5750600090506003612fce565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612f9e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612fc757600060019250925050612fce565b9150600090505b94509492505050565b80356001600160401b0381168114612fee57600080fd5b919050565b60006020828403121561300557600080fd5b6109b382612fd7565b60008083601f84011261302057600080fd5b5081356001600160401b0381111561303757600080fd5b602083019150836020828501011115612d9657600080fd5b60008060006040848603121561306457600080fd5b61306d84612fd7565b925060208401356001600160401b0381111561308857600080fd5b6130948682870161300e565b9497909650939450505050565b80356001600160a01b0381168114612fee57600080fd5b600080600080606085870312156130ce57600080fd5b6130d785612fd7565b93506130e5602086016130a1565b925060408501356001600160401b0381111561310057600080fd5b61310c8782880161300e565b95989497509550505050565b60008060008060006080868803121561313057600080fd5b61313986612fd7565b9450613147602087016130a1565b935060408601356001600160401b0381111561316257600080fd5b61316e8882890161300e565b9094509250613181905060608701612fd7565b90509295509295909350565b60006020828403121561319f57600080fd5b81356001600160401b038111156131b557600080fd5b820161012081850312156109b357600080fd5b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715613200576132006131c8565b60405290565b604051601f8201601f191681016001600160401b038111828210171561322e5761322e6131c8565b604052919050565b600082601f83011261324757600080fd5b813560206001600160401b03821115613262576132626131c8565b613270818360051b01613206565b82815260069290921b8401810191818101908684111561328f57600080fd5b8286015b848110156132dc57604081890312156132ac5760008081fd5b6132b46131de565b6132bd826130a1565b81526132ca858301612fd7565b81860152835291830191604001613293565b509695505050505050565b600080604083850312156132fa57600080fd5b61330383612fd7565b915060208301356001600160401b0381111561331e57600080fd5b61332a85828601613236565b9150509250929050565b6000806000806060858703121561334a57600080fd5b61335385612fd7565b935060208501356001600160401b0381111561336e57600080fd5b61337a8782880161300e565b909450925061338d905060408601612fd7565b905092959194509250565b803561ffff81168114612fee57600080fd5b60008060008060008060008060008060006101608c8e0312156133cc57600080fd5b6133d58c6130a1565b9a506133e360208d016130a1565b99506133f160408d016130a1565b98506133ff60608d01612fd7565b975061340d60808d01612fd7565b965061341b60a08d01612fd7565b955061342960c08d01612fd7565b945061343760e08d01612fd7565b93506134466101008d01613398565b92506134556101208d01612fd7565b91506101408c01356001600160401b0381111561347157600080fd5b61347d8e828f01613236565b9150509295989b509295989b9093969950565b600080604083850312156134a357600080fd5b6134ac83612fd7565b91506134ba602084016130a1565b90509250929050565b6000602082840312156134d557600080fd5b6109b3826130a1565b6000602082840312156134f057600080fd5b6109b382613398565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60006001600160401b038087168352606060208401526135466060840186886134f9565b915080841660408401525095945050505050565b60006020828403121561356c57600080fd5b5051919050565b6000808335601e1984360301811261358a57600080fd5b8301803591506001600160401b038211156135a457600080fd5b6020019150600581901b3603821315612d9657600080fd5b634e487b7160e01b600052603260045260246000fd5b6000823560de198336030181126135e857600080fd5b9190910192915050565b6000815180845260005b81811015613618576020818501810151868301820152016135fc565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160401b038416815260606020820152600061365a60608301856135f2565b905060018060a01b0383166040830152949350505050565b60006020828403121561368457600080fd5b815180151581146109b357600080fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160190808211156136ca576136ca613694565b5092915050565b6001600160a01b0387811682528616602082015260a0604082018190526000906136fe90830186886134f9565b6001600160401b039490941660608301525060800152949350505050565b60008235603e198336030181126135e857600080fd5b818103818111156110e1576110e1613694565b60006040823603121561375757600080fd5b61375f6131de565b613768836130a1565b81526020808401356001600160401b038082111561378557600080fd5b9085019036601f83011261379857600080fd5b8135818111156137aa576137aa6131c8565b6137bc601f8201601f19168501613206565b915080825236848285010111156137d257600080fd5b80848401858401376000908201840152918301919091525092915050565b6000808335601e1984360301811261380757600080fd5b8301803591506001600160401b0382111561382157600080fd5b602001915036819003821315612d9657600080fd5b8481526001600160a01b03841660208201528215156040820152608060608201819052600090613868908301846135f2565b9695505050505050565b6001600160401b0381811683821602808216919082811461389557613895613694565b505092915050565b60006001600160401b03808416806138c557634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b808201808211156110e1576110e1613694565b606081016001600160401b03806138fa85612fd7565b1683528061390a60208601612fd7565b166020840152506040830135604083015292915050565b6020815260006001600160401b038061393985612fd7565b1660208401528061394c60208601612fd7565b1660408401528061395f60408601612fd7565b166060840152613971606085016130a1565b60018060a01b0380821660808601528061398d608088016130a1565b1660a0860152505060a0840135601e198536030181126139ac57600080fd5b8401602081019035828111156139c157600080fd5b8036038213156139d057600080fd5b60e060c08601526139e6610100860182846134f9565b925050506139f660c08501612fd7565b6001600160401b03811660e0850152509392505050565b8183823760009101908152919050565b600060018201613a2f57613a2f613694565b5060010190565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220f48d107c77ffdaaa6a6f6cd30eed81a50ee40e74e5d122987a4916d60306265364736f6c63430008180033", } // OmniPortalABI is the input ABI used to generate the binding from. @@ -1035,6 +1035,27 @@ func (_OmniPortal *OmniPortalTransactorSession) CollectFees(to common.Address) ( return _OmniPortal.Contract.CollectFees(&_OmniPortal.TransactOpts, to) } +// InitSourceChain is a paid mutator transaction binding the contract method 0x404792ce. +// +// Solidity: function initSourceChain(uint64 srcChainId) returns() +func (_OmniPortal *OmniPortalTransactor) InitSourceChain(opts *bind.TransactOpts, srcChainId uint64) (*types.Transaction, error) { + return _OmniPortal.contract.Transact(opts, "initSourceChain", srcChainId) +} + +// InitSourceChain is a paid mutator transaction binding the contract method 0x404792ce. +// +// Solidity: function initSourceChain(uint64 srcChainId) returns() +func (_OmniPortal *OmniPortalSession) InitSourceChain(srcChainId uint64) (*types.Transaction, error) { + return _OmniPortal.Contract.InitSourceChain(&_OmniPortal.TransactOpts, srcChainId) +} + +// InitSourceChain is a paid mutator transaction binding the contract method 0x404792ce. +// +// Solidity: function initSourceChain(uint64 srcChainId) returns() +func (_OmniPortal *OmniPortalTransactorSession) InitSourceChain(srcChainId uint64) (*types.Transaction, error) { + return _OmniPortal.Contract.InitSourceChain(&_OmniPortal.TransactOpts, srcChainId) +} + // Initialize is a paid mutator transaction binding the contract method 0x8e9e7cbe. // // Solidity: function initialize(address owner_, address feeOracle_, address xregistry_, uint64 omniChainId_, uint64 omniCChainID_, uint64 xmsgDefaultGasLimit_, uint64 xmsgMaxGasLimit_, uint64 xmsgMinGasLimit_, uint16 xreceiptMaxErrorBytes_, uint64 valSetId, (address,uint64)[] validators) returns() diff --git a/contracts/bindings/portalregistry.go b/contracts/bindings/portalregistry.go index 80f2b1c95..c6befb295 100644 --- a/contracts/bindings/portalregistry.go +++ b/contracts/bindings/portalregistry.go @@ -40,7 +40,7 @@ type PortalRegistryDeployment struct { // PortalRegistryMetaData contains all meta data concerning the PortalRegistry contract. var PortalRegistryMetaData = &bind.MetaData{ ABI: "[{\"type\":\"function\",\"name\":\"deployments\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"internalType\":\"string\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"get\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"tuple\",\"internalType\":\"structPortalRegistry.Deployment\",\"components\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isRegistered\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"list\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"tuple[]\",\"internalType\":\"structPortalRegistry.Deployment[]\",\"components\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"register\",\"inputs\":[{\"name\":\"deployment\",\"type\":\"tuple\",\"internalType\":\"structPortalRegistry.Deployment\",\"components\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"registrationFee\",\"inputs\":[{\"name\":\"deployment\",\"type\":\"tuple\",\"internalType\":\"structPortalRegistry.Deployment\",\"components\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"internalType\":\"string\"}]}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"xregistry\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractXRegistry\"}],\"stateMutability\":\"view\"},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"PortalRegistered\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"addr\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"deployHeight\",\"type\":\"uint64\",\"indexed\":false,\"internalType\":\"uint64\"},{\"name\":\"finalizationStrat\",\"type\":\"string\",\"indexed\":false,\"internalType\":\"string\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61125e8061007e6000396000f3fe6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220cba31415347097cf832f5d9d9fcd42920d042022ed8f8bcc5028a3d0e675f14c64736f6c63430008180033", + Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61125e8061007e6000396000f3fe6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212208fcc62c0bd8a4ace0e5b91f3f94f1257dbaf26f8dcafd9f37d705db5bd22953964736f6c63430008180033", } // PortalRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/portalregistry_more.go b/contracts/bindings/portalregistry_more.go index 1a5fd03a2..b8ec2ff9d 100644 --- a/contracts/bindings/portalregistry_more.go +++ b/contracts/bindings/portalregistry_more.go @@ -5,7 +5,7 @@ import ( ) const ( - PortalRegistryDeployedBytecode = "0x6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220cba31415347097cf832f5d9d9fcd42920d042022ed8f8bcc5028a3d0e675f14c64736f6c63430008180033" + PortalRegistryDeployedBytecode = "0x6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212208fcc62c0bd8a4ace0e5b91f3f94f1257dbaf26f8dcafd9f37d705db5bd22953964736f6c63430008180033" ) //go:embed portalregistry_storage_layout.json diff --git a/contracts/bindings/portalregistry_storage_layout.json b/contracts/bindings/portalregistry_storage_layout.json index 2909c16fe..841f94a14 100644 --- a/contracts/bindings/portalregistry_storage_layout.json +++ b/contracts/bindings/portalregistry_storage_layout.json @@ -9,12 +9,12 @@ "type": "t_address" }, { - "astId": 52782, + "astId": 50125, "contract": "src/xchain/PortalRegistry.sol:PortalRegistry", "label": "deployments", "offset": 0, "slot": "1", - "type": "t_mapping(t_uint64,t_struct(Deployment)52792_storage)" + "type": "t_mapping(t_uint64,t_struct(Deployment)50135_storage)" } ], "types": { @@ -23,25 +23,25 @@ "label": "address", "numberOfBytes": "20" }, - "t_mapping(t_uint64,t_struct(Deployment)52792_storage)": { + "t_mapping(t_uint64,t_struct(Deployment)50135_storage)": { "encoding": "mapping", "key": "t_uint64", "label": "mapping(uint64 => struct PortalRegistry.Deployment)", "numberOfBytes": "32", - "value": "t_struct(Deployment)52792_storage" + "value": "t_struct(Deployment)50135_storage" }, "t_string_storage": { "encoding": "bytes", "label": "string", "numberOfBytes": "32" }, - "t_struct(Deployment)52792_storage": { + "t_struct(Deployment)50135_storage": { "encoding": "inplace", "label": "struct PortalRegistry.Deployment", "numberOfBytes": "96", "members": [ { - "astId": 52785, + "astId": 50128, "contract": "src/xchain/PortalRegistry.sol:PortalRegistry", "label": "chainId", "offset": 0, @@ -49,7 +49,7 @@ "type": "t_uint64" }, { - "astId": 52787, + "astId": 50130, "contract": "src/xchain/PortalRegistry.sol:PortalRegistry", "label": "addr", "offset": 8, @@ -57,7 +57,7 @@ "type": "t_address" }, { - "astId": 52789, + "astId": 50132, "contract": "src/xchain/PortalRegistry.sol:PortalRegistry", "label": "deployHeight", "offset": 0, @@ -65,7 +65,7 @@ "type": "t_uint64" }, { - "astId": 52791, + "astId": 50134, "contract": "src/xchain/PortalRegistry.sol:PortalRegistry", "label": "finalizationStrat", "offset": 0, diff --git a/contracts/bindings/xregistry.go b/contracts/bindings/xregistry.go index 8ce0270b1..08bfceca0 100644 --- a/contracts/bindings/xregistry.go +++ b/contracts/bindings/xregistry.go @@ -31,8 +31,8 @@ var ( // XRegistryMetaData contains all meta data concerning the XRegistry contract. var XRegistryMetaData = &bind.MetaData{ - ABI: "[{\"type\":\"function\",\"name\":\"XSET_GAS_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"chainIds\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"get\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"has\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isSupportedChain\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omni\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractIOmniPortal\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"register\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"registrationFee\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"replicas\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setPortal\",\"inputs\":[{\"name\":\"_omni\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setReplica\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"replica\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ContractRegistered\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"indexed\":true,\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"addr\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", - Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61130e8061007e6000396000f3fe6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610ec3565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e366004610f58565b610493565b34801561018f57600080fd5b506100f56104bd565b3480156101a457600080fd5b506100f56101b3366004610f7a565b6104d1565b3480156101c457600080fd5b506101176101d3366004610faf565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f610209366004610faf565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610ec3565b6105d1565b60405190815260200161012b565b34801561029757600080fd5b506101176102a6366004610fe2565b6105e9565b3480156102b757600080fd5b506100f56102c6366004610f58565b6105fe565b3480156102d757600080fd5b506102e0610677565b60405161012b91906110b5565b3480156102f957600080fd5b5061022f610308366004610fe2565b610701565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d8484843385610722565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108259050565b61042d8484843385610881565b604051339061043f9085908590611102565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b61049b610966565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6104c5610966565b6104cf60006109c0565b565b6104d9610966565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105485760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b60006105e08585853386610722565b95945050505050565b60006105f6848484610a10565b949350505050565b610606610966565b6001600160a01b03811661066b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b610674816109c0565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156106f757602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116106b45790505b5050505050905090565b60008061070f858585610a10565b6001600160a01b03161415949350505050565b60008060005b60045481101561081a5760006004828154811061074757610747611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150891681036107805750610812565b60006107c4828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610a10915050565b90506001600160a01b0381166107db575050610812565b6107e98a838b8b8b86610a55565b6107f39085611128565b9350610803828b8b8b8b8b610a55565b61080d9085611128565b935050505b600101610728565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108498686610c2b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b60045481101561095e576000600482815481106108a3576108a3611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036108dc5750610956565b60006109208288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610a10915050565b90506001600160a01b038116610937575050610956565b610945888389898986610c5f565b610953828989898989610c5f565b50505b600101610884565b505050505050565b6000546001600160a01b031633146104cf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610a338585610c2b565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190611149565b6001600160401b0316876001600160401b031603610ae357506000610c21565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610b4d5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610b70959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610bdb908c908590620186a09060040161120d565b602060405180830381865afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190611243565b925050505b9695505050505050565b60008282604051602001610c4092919061125c565b6040516020818303038152906040528051906020012090505b92915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd69190611149565b6001600160401b0316866001600160401b0316031561095e576001600160401b0386166000908152600360205260409020546001600160a01b031680610d595760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610d7c959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610def908d908790620186a09060040161120d565b602060405180830381865afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e309190611243565b8a8585620186a06040518663ffffffff1660e01b8152600401610e569493929190611293565b6000604051808303818588803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461067457600080fd5b80356001600160a01b0381168114610ebe57600080fd5b919050565b60008060008060608587031215610ed957600080fd5b8435610ee481610e92565b935060208501356001600160401b0380821115610f0057600080fd5b818701915087601f830112610f1457600080fd5b813581811115610f2357600080fd5b886020828501011115610f3557600080fd5b602083019550809450505050610f4d60408601610ea7565b905092959194509250565b600060208284031215610f6a57600080fd5b610f7382610ea7565b9392505050565b60008060408385031215610f8d57600080fd5b8235610f9881610e92565b9150610fa660208401610ea7565b90509250929050565b600060208284031215610fc157600080fd5b8135610f7381610e92565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610ff757600080fd5b833561100281610e92565b925060208401356001600160401b038082111561101e57600080fd5b818601915086601f83011261103257600080fd5b81358181111561104457611044610fcc565b604051601f8201601f19908116603f0116810190838211818310171561106c5761106c610fcc565b8160405282815289602084870101111561108557600080fd5b8260208601602083013760006020848301015280965050505050506110ac60408501610ea7565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156110f65783516001600160401b0316835292840192918401916001016110d1565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610c5957634e487b7160e01b600052601160045260246000fd5b60006020828403121561115b57600080fd5b8151610f7381610e92565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156111d85781810151838201526020016111c0565b50506000910152565b600081518084526111f98160208601602086016111bd565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261123060608401866111e1565b9150808416604084015250949350505050565b60006020828403121561125557600080fd5b5051919050565b6000835161126e8184602088016111bd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526112c460808401866111e1565b91508084166060840152509594505050505056fea26469706673582212202d9c9427fe2a9a92ead1a33b66dad9793478b39884e70d4a11c1708a8ef6d1fc64736f6c63430008180033", + ABI: "[{\"type\":\"function\",\"name\":\"XSET_GAS_LIMIT\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"chainIds\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint64[]\",\"internalType\":\"uint64[]\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"get\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"has\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"isSupportedChain\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"omni\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"contractOmniPortal\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"owner\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"register\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"payable\"},{\"type\":\"function\",\"name\":\"registrationFee\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"internalType\":\"uint256\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"renounceOwnership\",\"inputs\":[],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"replicas\",\"inputs\":[{\"name\":\"\",\"type\":\"uint64\",\"internalType\":\"uint64\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"setPortal\",\"inputs\":[{\"name\":\"_omni\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"setReplica\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"replica\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"transferOwnership\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"},{\"type\":\"event\",\"name\":\"ContractRegistered\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"indexed\":true,\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"indexed\":true,\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"addr\",\"type\":\"address\",\"indexed\":false,\"internalType\":\"address\"}],\"anonymous\":false},{\"type\":\"event\",\"name\":\"OwnershipTransferred\",\"inputs\":[{\"name\":\"previousOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"},{\"name\":\"newOwner\",\"type\":\"address\",\"indexed\":true,\"internalType\":\"address\"}],\"anonymous\":false}]", + Bin: "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6114108061007e6000396000f3fe6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610fc5565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e36600461105a565b610540565b34801561018f57600080fd5b506100f561056a565b3480156101a457600080fd5b506100f56101b336600461107c565b61057e565b3480156101c457600080fd5b506101176101d33660046110b1565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f6102093660046110b1565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610fc5565b61067e565b60405190815260200161012b565b34801561029757600080fd5b506101176102a63660046110e4565b610696565b3480156102b757600080fd5b506100f56102c636600461105a565b6106ab565b3480156102d757600080fd5b506102e0610724565b60405161012b91906111b7565b3480156102f957600080fd5b5061022f6103083660046110e4565b6107ae565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d84848433856107cf565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108d29050565b61042d848484338561092e565b61046e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250339250610a13915050565b156104da57600254604051632023c96760e11b81526001600160401b03861660048201526001600160a01b039091169063404792ce90602401600060405180830381600087803b1580156104c157600080fd5b505af11580156104d5573d6000803e3d6000fd5b505050505b60405133906104ec9085908590611204565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b610548610a69565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610572610a69565b61057c6000610ac3565b565b610586610a69565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105f55760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b600061068d85858533866107cf565b95945050505050565b60006106a3848484610b13565b949350505050565b6106b3610a69565b6001600160a01b0381166107185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b61072181610ac3565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156107a457602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116107615790505b5050505050905090565b6000806107bc858585610b13565b6001600160a01b03161415949350505050565b60008060005b6004548110156108c7576000600482815481106107f4576107f4611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b0390811691508916810361082d57506108bf565b6000610871828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610b13915050565b90506001600160a01b0381166108885750506108bf565b6108968a838b8b8b86610b58565b6108a0908561122a565b93506108b0828b8b8b8b8b610b58565b6108ba908561122a565b935050505b6001016107d5565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108f68686610d2e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b600454811015610a0b5760006004828154811061095057610950611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036109895750610a03565b60006109cd8288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610b13915050565b90506001600160a01b0381166109e4575050610a03565b6109f2888389898986610d61565b610a00828989898989610d61565b50505b600101610931565b505050505050565b6000610a556040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b81525073121e240000000000000000000000000000000002610d2e565b610a5f8484610d2e565b1490505b92915050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610b368585610d2e565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc6919061124b565b6001600160401b0316876001600160401b031603610be657506000610d24565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610c505760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610c73959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610cde908c908590620186a09060040161130f565b602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f9190611345565b925050505b9695505050505050565b60008282604051602001610d4392919061135e565b60405160208183030381529060405280519060200120905092915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd8919061124b565b6001600160401b0316866001600160401b03160315610a0b576001600160401b0386166000908152600360205260409020546001600160a01b031680610e5b5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610e7e959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610ef1908d908790620186a09060040161130f565b602060405180830381865afa158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f329190611345565b8a8585620186a06040518663ffffffff1660e01b8152600401610f589493929190611395565b6000604051808303818588803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461072157600080fd5b80356001600160a01b0381168114610fc057600080fd5b919050565b60008060008060608587031215610fdb57600080fd5b8435610fe681610f94565b935060208501356001600160401b038082111561100257600080fd5b818701915087601f83011261101657600080fd5b81358181111561102557600080fd5b88602082850101111561103757600080fd5b60208301955080945050505061104f60408601610fa9565b905092959194509250565b60006020828403121561106c57600080fd5b61107582610fa9565b9392505050565b6000806040838503121561108f57600080fd5b823561109a81610f94565b91506110a860208401610fa9565b90509250929050565b6000602082840312156110c357600080fd5b813561107581610f94565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156110f957600080fd5b833561110481610f94565b925060208401356001600160401b038082111561112057600080fd5b818601915086601f83011261113457600080fd5b813581811115611146576111466110ce565b604051601f8201601f19908116603f0116810190838211818310171561116e5761116e6110ce565b8160405282815289602084870101111561118757600080fd5b8260208601602083013760006020848301015280965050505050506111ae60408501610fa9565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156111f85783516001600160401b0316835292840192918401916001016111d3565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a6357634e487b7160e01b600052601160045260246000fd5b60006020828403121561125d57600080fd5b815161107581610f94565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156112da5781810151838201526020016112c2565b50506000910152565b600081518084526112fb8160208601602086016112bf565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261133260608401866112e3565b9150808416604084015250949350505050565b60006020828403121561135757600080fd5b5051919050565b600083516113708184602088016112bf565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526113c660808401866112e3565b91508084166060840152509594505050505056fea26469706673582212208d659cb7c804ca41bafacf1799bb6f7a86cf8203d32be59811d23d4878bba0e664736f6c63430008180033", } // XRegistryABI is the input ABI used to generate the binding from. diff --git a/contracts/bindings/xregistry_more.go b/contracts/bindings/xregistry_more.go index e53a706bb..9533cd73e 100644 --- a/contracts/bindings/xregistry_more.go +++ b/contracts/bindings/xregistry_more.go @@ -5,7 +5,7 @@ import ( ) const ( - XRegistryDeployedBytecode = "0x6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610ec3565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e366004610f58565b610493565b34801561018f57600080fd5b506100f56104bd565b3480156101a457600080fd5b506100f56101b3366004610f7a565b6104d1565b3480156101c457600080fd5b506101176101d3366004610faf565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f610209366004610faf565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610ec3565b6105d1565b60405190815260200161012b565b34801561029757600080fd5b506101176102a6366004610fe2565b6105e9565b3480156102b757600080fd5b506100f56102c6366004610f58565b6105fe565b3480156102d757600080fd5b506102e0610677565b60405161012b91906110b5565b3480156102f957600080fd5b5061022f610308366004610fe2565b610701565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d8484843385610722565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108259050565b61042d8484843385610881565b604051339061043f9085908590611102565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b61049b610966565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6104c5610966565b6104cf60006109c0565b565b6104d9610966565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105485760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b60006105e08585853386610722565b95945050505050565b60006105f6848484610a10565b949350505050565b610606610966565b6001600160a01b03811661066b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b610674816109c0565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156106f757602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116106b45790505b5050505050905090565b60008061070f858585610a10565b6001600160a01b03161415949350505050565b60008060005b60045481101561081a5760006004828154811061074757610747611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150891681036107805750610812565b60006107c4828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610a10915050565b90506001600160a01b0381166107db575050610812565b6107e98a838b8b8b86610a55565b6107f39085611128565b9350610803828b8b8b8b8b610a55565b61080d9085611128565b935050505b600101610728565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108498686610c2b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b60045481101561095e576000600482815481106108a3576108a3611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036108dc5750610956565b60006109208288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610a10915050565b90506001600160a01b038116610937575050610956565b610945888389898986610c5f565b610953828989898989610c5f565b50505b600101610884565b505050505050565b6000546001600160a01b031633146104cf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610a338585610c2b565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190611149565b6001600160401b0316876001600160401b031603610ae357506000610c21565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610b4d5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610b70959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610bdb908c908590620186a09060040161120d565b602060405180830381865afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190611243565b925050505b9695505050505050565b60008282604051602001610c4092919061125c565b6040516020818303038152906040528051906020012090505b92915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd69190611149565b6001600160401b0316866001600160401b0316031561095e576001600160401b0386166000908152600360205260409020546001600160a01b031680610d595760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610d7c959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610def908d908790620186a09060040161120d565b602060405180830381865afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e309190611243565b8a8585620186a06040518663ffffffff1660e01b8152600401610e569493929190611293565b6000604051808303818588803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461067457600080fd5b80356001600160a01b0381168114610ebe57600080fd5b919050565b60008060008060608587031215610ed957600080fd5b8435610ee481610e92565b935060208501356001600160401b0380821115610f0057600080fd5b818701915087601f830112610f1457600080fd5b813581811115610f2357600080fd5b886020828501011115610f3557600080fd5b602083019550809450505050610f4d60408601610ea7565b905092959194509250565b600060208284031215610f6a57600080fd5b610f7382610ea7565b9392505050565b60008060408385031215610f8d57600080fd5b8235610f9881610e92565b9150610fa660208401610ea7565b90509250929050565b600060208284031215610fc157600080fd5b8135610f7381610e92565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610ff757600080fd5b833561100281610e92565b925060208401356001600160401b038082111561101e57600080fd5b818601915086601f83011261103257600080fd5b81358181111561104457611044610fcc565b604051601f8201601f19908116603f0116810190838211818310171561106c5761106c610fcc565b8160405282815289602084870101111561108557600080fd5b8260208601602083013760006020848301015280965050505050506110ac60408501610ea7565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156110f65783516001600160401b0316835292840192918401916001016110d1565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610c5957634e487b7160e01b600052601160045260246000fd5b60006020828403121561115b57600080fd5b8151610f7381610e92565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156111d85781810151838201526020016111c0565b50506000910152565b600081518084526111f98160208601602086016111bd565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261123060608401866111e1565b9150808416604084015250949350505050565b60006020828403121561125557600080fd5b5051919050565b6000835161126e8184602088016111bd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526112c460808401866111e1565b91508084166060840152509594505050505056fea26469706673582212202d9c9427fe2a9a92ead1a33b66dad9793478b39884e70d4a11c1708a8ef6d1fc64736f6c63430008180033" + XRegistryDeployedBytecode = "0x6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610fc5565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e36600461105a565b610540565b34801561018f57600080fd5b506100f561056a565b3480156101a457600080fd5b506100f56101b336600461107c565b61057e565b3480156101c457600080fd5b506101176101d33660046110b1565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f6102093660046110b1565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610fc5565b61067e565b60405190815260200161012b565b34801561029757600080fd5b506101176102a63660046110e4565b610696565b3480156102b757600080fd5b506100f56102c636600461105a565b6106ab565b3480156102d757600080fd5b506102e0610724565b60405161012b91906111b7565b3480156102f957600080fd5b5061022f6103083660046110e4565b6107ae565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d84848433856107cf565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108d29050565b61042d848484338561092e565b61046e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250339250610a13915050565b156104da57600254604051632023c96760e11b81526001600160401b03861660048201526001600160a01b039091169063404792ce90602401600060405180830381600087803b1580156104c157600080fd5b505af11580156104d5573d6000803e3d6000fd5b505050505b60405133906104ec9085908590611204565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b610548610a69565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610572610a69565b61057c6000610ac3565b565b610586610a69565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105f55760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b600061068d85858533866107cf565b95945050505050565b60006106a3848484610b13565b949350505050565b6106b3610a69565b6001600160a01b0381166107185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b61072181610ac3565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156107a457602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116107615790505b5050505050905090565b6000806107bc858585610b13565b6001600160a01b03161415949350505050565b60008060005b6004548110156108c7576000600482815481106107f4576107f4611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b0390811691508916810361082d57506108bf565b6000610871828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610b13915050565b90506001600160a01b0381166108885750506108bf565b6108968a838b8b8b86610b58565b6108a0908561122a565b93506108b0828b8b8b8b8b610b58565b6108ba908561122a565b935050505b6001016107d5565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108f68686610d2e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b600454811015610a0b5760006004828154811061095057610950611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036109895750610a03565b60006109cd8288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610b13915050565b90506001600160a01b0381166109e4575050610a03565b6109f2888389898986610d61565b610a00828989898989610d61565b50505b600101610931565b505050505050565b6000610a556040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b81525073121e240000000000000000000000000000000002610d2e565b610a5f8484610d2e565b1490505b92915050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610b368585610d2e565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc6919061124b565b6001600160401b0316876001600160401b031603610be657506000610d24565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610c505760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610c73959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610cde908c908590620186a09060040161130f565b602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f9190611345565b925050505b9695505050505050565b60008282604051602001610d4392919061135e565b60405160208183030381529060405280519060200120905092915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd8919061124b565b6001600160401b0316866001600160401b03160315610a0b576001600160401b0386166000908152600360205260409020546001600160a01b031680610e5b5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610e7e959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610ef1908d908790620186a09060040161130f565b602060405180830381865afa158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f329190611345565b8a8585620186a06040518663ffffffff1660e01b8152600401610f589493929190611395565b6000604051808303818588803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461072157600080fd5b80356001600160a01b0381168114610fc057600080fd5b919050565b60008060008060608587031215610fdb57600080fd5b8435610fe681610f94565b935060208501356001600160401b038082111561100257600080fd5b818701915087601f83011261101657600080fd5b81358181111561102557600080fd5b88602082850101111561103757600080fd5b60208301955080945050505061104f60408601610fa9565b905092959194509250565b60006020828403121561106c57600080fd5b61107582610fa9565b9392505050565b6000806040838503121561108f57600080fd5b823561109a81610f94565b91506110a860208401610fa9565b90509250929050565b6000602082840312156110c357600080fd5b813561107581610f94565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156110f957600080fd5b833561110481610f94565b925060208401356001600160401b038082111561112057600080fd5b818601915086601f83011261113457600080fd5b813581811115611146576111466110ce565b604051601f8201601f19908116603f0116810190838211818310171561116e5761116e6110ce565b8160405282815289602084870101111561118757600080fd5b8260208601602083013760006020848301015280965050505050506111ae60408501610fa9565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156111f85783516001600160401b0316835292840192918401916001016111d3565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a6357634e487b7160e01b600052601160045260246000fd5b60006020828403121561125d57600080fd5b815161107581610f94565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156112da5781810151838201526020016112c2565b50506000910152565b600081518084526112fb8160208601602086016112bf565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261133260608401866112e3565b9150808416604084015250949350505050565b60006020828403121561135757600080fd5b5051919050565b600083516113708184602088016112bf565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526113c660808401866112e3565b91508084166060840152509594505050505056fea26469706673582212208d659cb7c804ca41bafacf1799bb6f7a86cf8203d32be59811d23d4878bba0e664736f6c63430008180033" ) //go:embed xregistry_storage_layout.json diff --git a/contracts/bindings/xregistry_storage_layout.json b/contracts/bindings/xregistry_storage_layout.json index 8f919f4e2..8925fcc1d 100644 --- a/contracts/bindings/xregistry_storage_layout.json +++ b/contracts/bindings/xregistry_storage_layout.json @@ -9,7 +9,7 @@ "type": "t_address" }, { - "astId": 53476, + "astId": 50835, "contract": "src/xchain/XRegistry.sol:XRegistry", "label": "_addrs", "offset": 0, @@ -17,15 +17,15 @@ "type": "t_mapping(t_uint64,t_mapping(t_bytes32,t_address))" }, { - "astId": 53026, + "astId": 50369, "contract": "src/xchain/XRegistry.sol:XRegistry", "label": "omni", "offset": 0, "slot": "2", - "type": "t_contract(IOmniPortal)50374" + "type": "t_contract(OmniPortal)49983" }, { - "astId": 53031, + "astId": 50374, "contract": "src/xchain/XRegistry.sol:XRegistry", "label": "replicas", "offset": 0, @@ -33,7 +33,7 @@ "type": "t_mapping(t_uint64,t_address)" }, { - "astId": 53035, + "astId": 50378, "contract": "src/xchain/XRegistry.sol:XRegistry", "label": "_chainIds", "offset": 0, @@ -58,9 +58,9 @@ "label": "bytes32", "numberOfBytes": "32" }, - "t_contract(IOmniPortal)50374": { + "t_contract(OmniPortal)49983": { "encoding": "inplace", - "label": "contract IOmniPortal", + "label": "contract OmniPortal", "numberOfBytes": "20" }, "t_mapping(t_bytes32,t_address)": { diff --git a/contracts/bindings/xregistryreplica.go b/contracts/bindings/xregistryreplica.go index 723622dcc..ab4068962 100644 --- a/contracts/bindings/xregistryreplica.go +++ b/contracts/bindings/xregistryreplica.go @@ -32,7 +32,7 @@ var ( // XRegistryReplicaMetaData contains all meta data concerning the XRegistryReplica contract. var XRegistryReplicaMetaData = &bind.MetaData{ ABI: "[{\"type\":\"constructor\",\"inputs\":[{\"name\":\"omni_\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"nonpayable\"},{\"type\":\"function\",\"name\":\"get\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"internalType\":\"address\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"has\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"internalType\":\"bool\"}],\"stateMutability\":\"view\"},{\"type\":\"function\",\"name\":\"set\",\"inputs\":[{\"name\":\"chainId\",\"type\":\"uint64\",\"internalType\":\"uint64\"},{\"name\":\"name\",\"type\":\"string\",\"internalType\":\"string\"},{\"name\":\"registrant\",\"type\":\"address\",\"internalType\":\"address\"},{\"name\":\"addr\",\"type\":\"address\",\"internalType\":\"address\"}],\"outputs\":[],\"stateMutability\":\"nonpayable\"}]", - Bin: "0x60a060405234801561001057600080fd5b5060405161075f38038061075f83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516106c76100986000396000818160ce0152818161013a01526101bd01526106c76000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063b3449b7714610046578063d7a18fcd14610076578063fd0b64f71461008b575b600080fd5b6100596100543660046104ee565b6100ae565b6040516001600160a01b0390911681526020015b60405180910390f35b610089610084366004610552565b6100c3565b005b61009e6100993660046104ee565b610326565b604051901515815260200161006d565b60006100bb848484610347565b949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101365760405162461bcd60e51b81526020600482015260136024820152721614995c1b1a58d84e881b9bdd081e18d85b1b606a1b60448201526064015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632f32700e6040518163ffffffff1660e01b81526004016040805180830381865afa158015610195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b991906105c7565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663110ff5f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023d9190610626565b67ffffffffffffffff16816000015167ffffffffffffffff16146102a35760405162461bcd60e51b815260206004820152601760248201527f585265706c6963613a206e6f742066726f6d206f6d6e69000000000000000000604482015260640161012d565b60208101516001600160a01b031673121e240000000000000000000000000000000001146103135760405162461bcd60e51b815260206004820152601c60248201527f585265706c6963613a206e6f742066726f6d2058526567697374727900000000604482015260640161012d565b61031f8585858561038d565b5050505050565b600080610334858585610347565b6001600160a01b03161415949350505050565b67ffffffffffffffff831660009081526020819052604081208161036b85856103ea565b81526020810191909152604001600020546001600160a01b0316949350505050565b67ffffffffffffffff8416600090815260208190526040812082916103b286866103ea565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b600082826040516020016103ff92919061064a565b60405160208183030381529060405280519060200120905092915050565b67ffffffffffffffff8116811461043357600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261045d57600080fd5b813567ffffffffffffffff8082111561047857610478610436565b604051601f8301601f19908116603f011681019082821181831017156104a0576104a0610436565b816040528381528660208588010111156104b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6001600160a01b038116811461043357600080fd5b60008060006060848603121561050357600080fd5b833561050e8161041d565b9250602084013567ffffffffffffffff81111561052a57600080fd5b6105368682870161044c565b9250506040840135610547816104d9565b809150509250925092565b6000806000806080858703121561056857600080fd5b84356105738161041d565b9350602085013567ffffffffffffffff81111561058f57600080fd5b61059b8782880161044c565b93505060408501356105ac816104d9565b915060608501356105bc816104d9565b939692955090935050565b6000604082840312156105d957600080fd5b6040516040810181811067ffffffffffffffff821117156105fc576105fc610436565b604052825161060a8161041d565b8152602083015161061a816104d9565b60208201529392505050565b60006020828403121561063857600080fd5b81516106438161041d565b9392505050565b6000835160005b8181101561066b5760208187018101518583015201610651565b5060609390931b6bffffffffffffffffffffffff1916919092019081526014019291505056fea26469706673582212204b1a4ac8725a36b597759ac6fc96c15f50594215995b19446d8c05eb2cdebd7f64736f6c63430008180033", + Bin: "0x60a060405234801561001057600080fd5b5060405161084d38038061084d83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516107ae61009f6000396000818160ce0152818161013a015281816101bd015261034d01526107ae6000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063b3449b7714610046578063d7a18fcd14610076578063fd0b64f71461008b575b600080fd5b6100596100543660046105d5565b6100ae565b6040516001600160a01b0390911681526020015b60405180910390f35b610089610084366004610639565b6100c3565b005b61009e6100993660046105d5565b6103b9565b604051901515815260200161006d565b60006100bb8484846103da565b949350505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146101365760405162461bcd60e51b81526020600482015260136024820152721614995c1b1a58d84e881b9bdd081e18d85b1b606a1b60448201526064015b60405180910390fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632f32700e6040518163ffffffff1660e01b81526004016040805180830381865afa158015610195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b991906106ae565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663110ff5f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023d919061070d565b67ffffffffffffffff16816000015167ffffffffffffffff16146102a35760405162461bcd60e51b815260206004820152601760248201527f585265706c6963613a206e6f742066726f6d206f6d6e69000000000000000000604482015260640161012d565b60208101516001600160a01b031673121e240000000000000000000000000000000001146103135760405162461bcd60e51b815260206004820152601c60248201527f585265706c6963613a206e6f742066726f6d2058526567697374727900000000604482015260640161012d565b61031f85858585610420565b610329848461047d565b156103b257604051632023c96760e11b815267ffffffffffffffff861660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063404792ce90602401600060405180830381600087803b15801561039957600080fd5b505af11580156103ad573d6000803e3d6000fd5b505050505b5050505050565b6000806103c78585856103da565b6001600160a01b03161415949350505050565b67ffffffffffffffff83166000908152602081905260408120816103fe85856104d1565b81526020810191909152604001600020546001600160a01b0316949350505050565b67ffffffffffffffff84166000908152602081905260408120829161044586866104d1565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60006104bf6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b81525073121e2400000000000000000000000000000000026104d1565b6104c984846104d1565b149392505050565b600082826040516020016104e6929190610731565b60405160208183030381529060405280519060200120905092915050565b67ffffffffffffffff8116811461051a57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261054457600080fd5b813567ffffffffffffffff8082111561055f5761055f61051d565b604051601f8301601f19908116603f011681019082821181831017156105875761058761051d565b816040528381528660208588010111156105a057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6001600160a01b038116811461051a57600080fd5b6000806000606084860312156105ea57600080fd5b83356105f581610504565b9250602084013567ffffffffffffffff81111561061157600080fd5b61061d86828701610533565b925050604084013561062e816105c0565b809150509250925092565b6000806000806080858703121561064f57600080fd5b843561065a81610504565b9350602085013567ffffffffffffffff81111561067657600080fd5b61068287828801610533565b9350506040850135610693816105c0565b915060608501356106a3816105c0565b939692955090935050565b6000604082840312156106c057600080fd5b6040516040810181811067ffffffffffffffff821117156106e3576106e361051d565b60405282516106f181610504565b81526020830151610701816105c0565b60208201529392505050565b60006020828403121561071f57600080fd5b815161072a81610504565b9392505050565b6000835160005b818110156107525760208187018101518583015201610738565b5060609390931b6bffffffffffffffffffffffff1916919092019081526014019291505056fea264697066735822122002ae24f9ba6e6919eb738e9dcc00871e04e89198a339fadd33fbf8324bd26ee464736f6c63430008180033", } // XRegistryReplicaABI is the input ABI used to generate the binding from. diff --git a/contracts/src/xchain/OmniPortal.sol b/contracts/src/xchain/OmniPortal.sol index 3041a07d7..c1078f5ec 100644 --- a/contracts/src/xchain/OmniPortal.sol +++ b/contracts/src/xchain/OmniPortal.sol @@ -79,6 +79,12 @@ contract OmniPortal is // cchain stream offset & block heights are equal to valSetId inXStreamOffset[omniCChainID_] = valSetId; inXStreamBlockHeight[omniCChainID_] = valSetId; + + // initialize omniChainId valSetId - xmsgs from omni are required to initSourceChain + inXStreamValidatorSetId[omniChainId_] = valSetId; + + // initialize omniCChainID valSetId - it is not initialized via initSourceChain + inXStreamValidatorSetId[omniCChainID_] = valSetId; } function chainId() public view returns (uint64) { @@ -164,6 +170,14 @@ contract OmniPortal is && XRegistryBase(xregistry).has(destChainId, XRegistryNames.OmniPortal, Predeploys.PortalRegistry); } + /** + * @notice Initialize a source chain's in stream validator set + */ + function initSourceChain(uint64 srcChainId) external { + require(msg.sender == xregistry, "OmniPortal: only xregistry"); + inXStreamValidatorSetId[srcChainId] = inXStreamValidatorSetId[omniChainId]; + } + ////////////////////////////////////////////////////////////////////////////// // Inbound xcall functions // ////////////////////////////////////////////////////////////////////////////// @@ -179,11 +193,14 @@ contract OmniPortal is // validator set id for this submission uint64 valSetId = xsub.validatorSetId; + // check that the validator set is known and has non-zero power + require(validatorSetTotalPower[valSetId] > 0, "OmniPortal: unknown val set"); + // last seen validator set id for this source chain uint64 lastValSetId = inXStreamValidatorSetId[xsub.blockHeader.sourceChainId]; - // check that the validator set is known and has non-zero power - require(validatorSetTotalPower[valSetId] > 0, "OmniPortal: unknown val set"); + // require the validator set id is initialized (initSourceChain has beed called) + require(lastValSetId > 0, "OmniPortal: no val set"); // check that the submission's validator set is the same as the last, or the next one require(valSetId >= lastValSetId, "OmniPortal: old val set"); @@ -221,6 +238,8 @@ contract OmniPortal is // execute xmsgs for (uint256 i = 0; i < xsub.msgs.length; i++) { + // TODO: we can remove xmsg sourceChainId, and instead set _xmsg.sourceChainId to xsub.blockHeader.sourceChainId + require(xsub.msgs[i].sourceChainId == xsub.blockHeader.sourceChainId, "OmniPortal: wrong sourceChainId"); _exec(xsub.msgs[i]); } } diff --git a/contracts/src/xchain/XRegistry.sol b/contracts/src/xchain/XRegistry.sol index 32e70dfe4..b185dd491 100644 --- a/contracts/src/xchain/XRegistry.sol +++ b/contracts/src/xchain/XRegistry.sol @@ -2,7 +2,7 @@ pragma solidity =0.8.24; import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; -import { IOmniPortal } from "../interfaces/IOmniPortal.sol"; +import { OmniPortal } from "../xchain/OmniPortal.sol"; import { XRegistryBase } from "./XRegistryBase.sol"; import { XRegistryReplica } from "./XRegistryReplica.sol"; @@ -25,7 +25,7 @@ contract XRegistry is Ownable, XRegistryBase { /** * @notice OmniPortal contract. */ - IOmniPortal public omni; + OmniPortal public omni; /** * @notice Mapping of chain IDs to the XRegistryReplica address on that chain. @@ -47,6 +47,8 @@ contract XRegistry is Ownable, XRegistryBase { _set(chainId, name, msg.sender, addr); _sync(chainId, name, msg.sender, addr); + if (_isPortal(name, msg.sender)) omni.initSourceChain(chainId); + emit ContractRegistered(chainId, name, msg.sender, addr); } @@ -186,6 +188,6 @@ contract XRegistry is Ownable, XRegistryBase { * @notice Set the address of the OmniPortal contract. */ function setPortal(address _omni) public onlyOwner { - omni = IOmniPortal(_omni); + omni = OmniPortal(_omni); } } diff --git a/contracts/src/xchain/XRegistryBase.sol b/contracts/src/xchain/XRegistryBase.sol index 35a785ef5..8ec4be2e0 100644 --- a/contracts/src/xchain/XRegistryBase.sol +++ b/contracts/src/xchain/XRegistryBase.sol @@ -1,6 +1,9 @@ // SPDX-License-Identifier: GPL-3.0-only pragma solidity =0.8.24; +import { XRegistryNames } from "../libraries/XRegistryNames.sol"; +import { Predeploys } from "../libraries/Predeploys.sol"; + /** * @title XRegistryBase * @notice Base contract for XRegistry and XRegistryReplica. Contains common storage, setters, and views. @@ -42,4 +45,12 @@ contract XRegistryBase { function _pack(string memory name, address registrant) internal pure returns (bytes32) { return keccak256(abi.encodePacked(name, registrant)); } + + /** + * @dev Return true if `name` and `registrant` are "OmniPortal" and PortalRegistry predpeloy, respectively. + * This marks a portal registration internal to Omni's protocol. + */ + function _isPortal(string memory name, address registrant) internal pure returns (bool) { + return _pack(name, registrant) == _pack(XRegistryNames.OmniPortal, Predeploys.PortalRegistry); + } } diff --git a/contracts/src/xchain/XRegistryReplica.sol b/contracts/src/xchain/XRegistryReplica.sol index 126cc84f6..a516b4bd4 100644 --- a/contracts/src/xchain/XRegistryReplica.sol +++ b/contracts/src/xchain/XRegistryReplica.sol @@ -2,7 +2,7 @@ pragma solidity =0.8.24; import { Predeploys } from "../libraries/Predeploys.sol"; -import { IOmniPortal } from "../interfaces/IOmniPortal.sol"; +import { OmniPortal } from "./OmniPortal.sol"; import { XRegistryBase } from "./XRegistryBase.sol"; import { XTypes } from "../libraries/XTypes.sol"; @@ -13,10 +13,10 @@ import { XTypes } from "../libraries/XTypes.sol"; */ contract XRegistryReplica is XRegistryBase { /// @notice The OmniPortal contract - IOmniPortal internal immutable omni; + OmniPortal internal immutable omni; constructor(address omni_) { - omni = IOmniPortal(omni_); + omni = OmniPortal(omni_); } modifier onlyXRegistry() { @@ -33,5 +33,8 @@ contract XRegistryReplica is XRegistryBase { function set(uint64 chainId, string memory name, address registrant, address addr) public onlyXRegistry { _set(chainId, name, registrant, addr); + + // if OmniPortal registration, intialize the new source chain on this chain's portal deployment + if (_isPortal(name, registrant)) omni.initSourceChain(chainId); } } diff --git a/contracts/test/xchain/OmniPortal_xsubmit_gas.t.sol b/contracts/test/xchain/OmniPortal_xsubmit_gas.t.sol index 334a607b9..ee4080727 100644 --- a/contracts/test/xchain/OmniPortal_xsubmit_gas.t.sol +++ b/contracts/test/xchain/OmniPortal_xsubmit_gas.t.sol @@ -34,7 +34,7 @@ contract OmniPortal_xsubmit_gas_Test is Base { _testGasSubmitXBlock("guzzle50"); } - function test_xsubmi_addValidator_succeeds() public { + function test_xsubmit_addValidator_succeeds() public { _testGasSubmitXBlock("addValSet2", broadcastChainId); } diff --git a/contracts/test/xchain/PortalRegistry.t.sol b/contracts/test/xchain/PortalRegistry.t.sol index 34bbd1857..2824cb01b 100644 --- a/contracts/test/xchain/PortalRegistry.t.sol +++ b/contracts/test/xchain/PortalRegistry.t.sol @@ -12,7 +12,7 @@ import { XRegistryNames } from "src/libraries/XRegistryNames.sol"; import { Test } from "forge-std/Test.sol"; contract PortalRegistry_Test is Test { - MockPortal portal; + MockPortalHarness portal; XRegistry xreg; PortalRegistry preg; @@ -53,7 +53,7 @@ contract PortalRegistry_Test is Test { require(xreg.owner() == owner, "XRegistry owner not set"); require(preg.owner() == owner, "PortalRegistry owner not set"); - portal = new MockPortal(); + portal = new MockPortalHarness(); vm.startPrank(owner); xreg.setPortal(address(portal)); @@ -83,6 +83,9 @@ contract PortalRegistry_Test is Test { // uint256 fee = preg.registrationFee(dep1); + // this chains portal is initialized with the new source chain + vm.expectCall(address(portal), abi.encodeWithSelector(portal.initSourceChain.selector, dep1.chainId)); + vm.startPrank(owner); preg.register{ value: fee }(dep1); @@ -101,6 +104,9 @@ contract PortalRegistry_Test is Test { // chain 2 gets existing chain 1 portal _expectXCall({ destChainId: 2, depChainId: 1, addr: portal1 }); + // this chains portal is initialized with the new source chain + vm.expectCall(address(portal), abi.encodeWithSelector(portal.initSourceChain.selector, dep2.chainId)); + preg.register{ value: fee }(dep2); // @@ -122,6 +128,9 @@ contract PortalRegistry_Test is Test { // chain 3 gets existing chain 2 portal _expectXCall({ destChainId: 3, depChainId: 2, addr: portal2 }); + // this chains portal is initialized with the new source chain + vm.expectCall(address(portal), abi.encodeWithSelector(portal.initSourceChain.selector, dep3.chainId)); + preg.register{ value: fee }(dep3); } @@ -147,3 +156,12 @@ contract PortalRegistry_Test is Test { ); } } + +/** + * @dev Wrapper around MockPortal (a user facing test utility) that adds initSourceChain, required by XRegistry. + */ +contract MockPortalHarness is MockPortal { + function initSourceChain(uint64 _sourceChainId) public { + // do nothing + } +} diff --git a/contracts/test/xchain/common/Fixtures.sol b/contracts/test/xchain/common/Fixtures.sol index 0e1c9d5cc..4be3fda71 100644 --- a/contracts/test/xchain/common/Fixtures.sol +++ b/contracts/test/xchain/common/Fixtures.sol @@ -585,13 +585,13 @@ contract Fixtures is CommonBase, StdCheats { // set portals in xregistry - xregistry.setPortal(chainAId, address(chainAPortal)); - xregistry.setPortal(chainBId, address(chainBPortal)); + xregistry.registerPortal(address(portal), chainAId, address(chainAPortal)); + xregistry.registerPortal(address(portal), chainBId, address(chainBPortal)); - chainAXRegistry.setPortal(thisChainId, address(portal)); - chainAXRegistry.setPortal(chainBId, address(chainBPortal)); + chainAXRegistry.registerPortal(address(chainAPortal), thisChainId, address(portal)); + chainAXRegistry.registerPortal(address(chainAPortal), chainBId, address(chainBPortal)); - chainBXRegistry.setPortal(thisChainId, address(portal)); - chainBXRegistry.setPortal(chainAId, address(chainAPortal)); + chainBXRegistry.registerPortal(address(chainBPortal), thisChainId, address(portal)); + chainBXRegistry.registerPortal(address(chainBPortal), chainAId, address(chainAPortal)); } } diff --git a/contracts/test/xchain/common/MockXRegistryReplica.sol b/contracts/test/xchain/common/MockXRegistryReplica.sol index 21f4a40b9..571935b53 100644 --- a/contracts/test/xchain/common/MockXRegistryReplica.sol +++ b/contracts/test/xchain/common/MockXRegistryReplica.sol @@ -4,13 +4,19 @@ pragma solidity =0.8.24; import { XRegistryBase } from "src/xchain/XRegistryBase.sol"; import { XRegistryNames } from "src/libraries/XRegistryNames.sol"; import { Predeploys } from "src/libraries/Predeploys.sol"; +import { OmniPortal } from "src/xchain/OmniPortal.sol"; /** * @title MockXRegistryReplica * @dev A mock xregistry replica that allows setting of portla address */ contract MockXRegistryReplica is XRegistryBase { - function setPortal(uint64 chainId, address addr) external { + function registerPortal( + address thisChainsPortal, // required to initSourceChain + uint64 chainId, + address addr + ) external { _set(chainId, XRegistryNames.OmniPortal, Predeploys.PortalRegistry, addr); + OmniPortal(thisChainsPortal).initSourceChain(chainId); } } diff --git a/halo/genutil/evm/testdata/TestMakeGenesis.golden b/halo/genutil/evm/testdata/TestMakeGenesis.golden index 8d877f267..4a1a46424 100644 --- a/halo/genutil/evm/testdata/TestMakeGenesis.golden +++ b/halo/genutil/evm/testdata/TestMakeGenesis.golden @@ -28790,11 +28790,11 @@ "balance": "0x0" }, "ede1dbfffffffffffffffffffffffffffffffffd": { - "code": "0x6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea2646970667358221220cba31415347097cf832f5d9d9fcd42920d042022ed8f8bcc5028a3d0e675f14c64736f6c63430008180033", + "code": "0x6080604052600436106100915760003560e01c806386ac16841161005957806386ac1684146101675780638da5cb5b1461017a578063ada8679814610198578063c2a1402d146101c5578063f2fde38b1461021d57600080fd5b80630470c5fc146100965780630f560cd7146100c9578063473d0452146100eb578063715018a61461011b578063738b07a614610132575b600080fd5b3480156100a257600080fd5b506100b66100b1366004610bef565b61023d565b6040519081526020015b60405180910390f35b3480156100d557600080fd5b506100de6102f6565b6040516100c09190610cc6565b3480156100f757600080fd5b5061010b610106366004610d3f565b610545565b6040516100c09493929190610d5c565b34801561012757600080fd5b50610130610610565b005b34801561013e57600080fd5b5061014f600162048789608a1b0181565b6040516001600160a01b0390911681526020016100c0565b610130610175366004610bef565b610624565b34801561018657600080fd5b506000546001600160a01b031661014f565b3480156101a457600080fd5b506101b86101b3366004610d3f565b6109ba565b6040516100c09190610da1565b3480156101d157600080fd5b5061020d6101e0366004610d3f565b6001600160401b0316600090815260016020526040902054600160401b90046001600160a01b0316151590565b60405190151581526020016100c0565b34801561022957600080fd5b50610130610238366004610dc9565b610acc565b6000600162048789608a1b0163a4861b4261025b6020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906102919190610dc9565b6040518463ffffffff1660e01b81526004016102af93929190610de6565b602060405180830381865afa1580156102cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102f09190610e20565b92915050565b60606000600162048789608a1b016001600160a01b031663fbe4b7c06040518163ffffffff1660e01b8152600401600060405180830381865afa158015610341573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103699190810190610e5f565b9050600081516001600160401b0381111561038657610386610e39565b6040519080825280602002602001820160405280156103d757816020015b60408051608081018252600080825260208083018290529282015260608082015282526000199092019101816103a45790505b50905060005b8251816001600160401b0316101561053e576001600084836001600160401b03168151811061040e5761040e610f23565b6020908102919091018101516001600160401b039081168352828201939093526040918201600020825160808101845281548086168252600160401b90046001600160a01b03169281019290925260018101549093169181019190915260028201805491929160608401919061048390610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546104af90610f39565b80156104fc5780601f106104d1576101008083540402835291602001916104fc565b820191906000526020600020905b8154815290600101906020018083116104df57829003601f168201915b50505050508152505082826001600160401b03168151811061052057610520610f23565b6020026020010181905250808061053690610f73565b9150506103dd565b5092915050565b60016020819052600091825260409091208054918101546002820180546001600160401b0380861695600160401b90046001600160a01b031694931692919061058d90610f39565b80601f01602080910402602001604051908101604052809291908181526020018280546105b990610f39565b80156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b5050505050905084565b610618610b45565b6106226000610b9f565b565b61062c610b45565b61063c6101e06020830183610d3f565b1561068e5760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20616c726561647920736574000000000060448201526064015b60405180910390fd5b60006106a06040830160208401610dc9565b6001600160a01b0316036106f65760405162461bcd60e51b815260206004820152601c60248201527f506f7274616c52656769737472793a207a65726f2061646472657373000000006044820152606401610685565b6107036060820182610fa7565b90506000036107545760405162461bcd60e51b815260206004820152601b60248201527f506f7274616c52656769737472793a20656d70747920737472617400000000006044820152606401610685565b600162048789608a1b0163a4861b426107706020840184610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508460200160208101906107a69190610dc9565b6040518463ffffffff1660e01b81526004016107c493929190610de6565b602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108059190610e20565b3410156108545760405162461bcd60e51b815260206004820181905260248201527f506f7274616c52656769737472793a20696e73756666696369656e74206665656044820152606401610685565b600162048789608a1b016314a28fcb346108716020850185610d3f565b6040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b8152508560200160208101906108a79190610dc9565b6040518563ffffffff1660e01b81526004016108c593929190610de6565b6000604051808303818588803b1580156108de57600080fd5b505af11580156108f2573d6000803e3d6000fd5b50849350600192506000915061090d90506020840184610d3f565b6001600160401b0316815260208101919091526040016000206109308282611105565b5061094390506040820160208301610dc9565b6001600160a01b03166109596020830183610d3f565b6001600160401b03167f20c588e9e1e07556ad236d2666ba0a232806d504da63e50d5db8429d15ac77c86109936060850160408601610d3f565b6109a06060860186610fa7565b6040516109af939291906111e9565b60405180910390a350565b60408051608081018252600080825260208201819052918101919091526060808201526001600160401b03828116600090815260016020818152604092839020835160808101855281548087168252600160401b90046001600160a01b0316928101929092529182015490931691830191909152600281018054606084019190610a4390610f39565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6f90610f39565b8015610abc5780601f10610a9157610100808354040283529160200191610abc565b820191906000526020600020905b815481529060010190602001808311610a9f57829003601f168201915b5050505050815250509050919050565b610ad4610b45565b6001600160a01b038116610b395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610685565b610b4281610b9f565b50565b6000546001600160a01b031633146106225760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610685565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060208284031215610c0157600080fd5b81356001600160401b03811115610c1757600080fd5b820160808185031215610c2957600080fd5b9392505050565b6000815180845260005b81811015610c5657602081850181015186830182015201610c3a565b506000602082860101526020601f19601f83011685010191505092915050565b60006001600160401b0380835116845260018060a01b03602084015116602085015280604084015116604085015250606082015160806060850152610cbe6080850182610c30565b949350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015610d1d57603f19888603018452610d0b858351610c76565b94509285019290850190600101610cef565b5092979650505050505050565b6001600160401b0381168114610b4257600080fd5b600060208284031215610d5157600080fd5b8135610c2981610d2a565b6001600160401b0385811682526001600160a01b038516602083015283166040820152608060608201819052600090610d9790830184610c30565b9695505050505050565b602081526000610c296020830184610c76565b6001600160a01b0381168114610b4257600080fd5b600060208284031215610ddb57600080fd5b8135610c2981610db4565b6001600160401b0384168152606060208201526000610e086060830185610c30565b905060018060a01b0383166040830152949350505050565b600060208284031215610e3257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b8051610e5a81610d2a565b919050565b60006020808385031215610e7257600080fd5b82516001600160401b0380821115610e8957600080fd5b818501915085601f830112610e9d57600080fd5b815181811115610eaf57610eaf610e39565b8060051b604051601f19603f83011681018181108582111715610ed457610ed4610e39565b604052918252848201925083810185019188831115610ef257600080fd5b938501935b82851015610f1757610f0885610e4f565b84529385019392850192610ef7565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610f4d57607f821691505b602082108103610f6d57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160401b03808316818103610f9d57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b6000808335601e19843603018112610fbe57600080fd5b8301803591506001600160401b03821115610fd857600080fd5b602001915036819003821315610fed57600080fd5b9250929050565b601f821115611040576000816000526020600020601f850160051c8101602086101561101d5750805b601f850160051c820191505b8181101561103c57828155600101611029565b5050505b505050565b6001600160401b0383111561105c5761105c610e39565b6110708361106a8354610f39565b83610ff4565b6000601f8411600181146110a4576000851561108c5750838201355b600019600387901b1c1916600186901b1783556110fe565b600083815260209020601f19861690835b828110156110d557868501358255602094850194600190920191016110b5565b50868210156110f25760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b813561111081610d2a565b815467ffffffffffffffff19166001600160401b03821617825550602082013561113981610db4565b815468010000000000000000600160e01b031916604091821b68010000000000000000600160e01b031617825582013561117281610d2a565b60018201805467ffffffffffffffff19166001600160401b038316179055506060820135601e198336030181126111a857600080fd5b820180356001600160401b038111156111c057600080fd5b6020820191508036038213156111d557600080fd5b6111e3818360028601611045565b50505050565b6001600160401b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f191601019291505056fea26469706673582212208fcc62c0bd8a4ace0e5b91f3f94f1257dbaf26f8dcafd9f37d705db5bd22953964736f6c63430008180033", "balance": "0x0" }, "ede1dbfffffffffffffffffffffffffffffffffe": { - "code": "0x6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610ec3565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e366004610f58565b610493565b34801561018f57600080fd5b506100f56104bd565b3480156101a457600080fd5b506100f56101b3366004610f7a565b6104d1565b3480156101c457600080fd5b506101176101d3366004610faf565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f610209366004610faf565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610ec3565b6105d1565b60405190815260200161012b565b34801561029757600080fd5b506101176102a6366004610fe2565b6105e9565b3480156102b757600080fd5b506100f56102c6366004610f58565b6105fe565b3480156102d757600080fd5b506102e0610677565b60405161012b91906110b5565b3480156102f957600080fd5b5061022f610308366004610fe2565b610701565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d8484843385610722565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108259050565b61042d8484843385610881565b604051339061043f9085908590611102565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b61049b610966565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6104c5610966565b6104cf60006109c0565b565b6104d9610966565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105485760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b60006105e08585853386610722565b95945050505050565b60006105f6848484610a10565b949350505050565b610606610966565b6001600160a01b03811661066b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b610674816109c0565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156106f757602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116106b45790505b5050505050905090565b60008061070f858585610a10565b6001600160a01b03161415949350505050565b60008060005b60045481101561081a5760006004828154811061074757610747611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150891681036107805750610812565b60006107c4828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610a10915050565b90506001600160a01b0381166107db575050610812565b6107e98a838b8b8b86610a55565b6107f39085611128565b9350610803828b8b8b8b8b610a55565b61080d9085611128565b935050505b600101610728565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108498686610c2b565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b60045481101561095e576000600482815481106108a3576108a3611112565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036108dc5750610956565b60006109208288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610a10915050565b90506001600160a01b038116610937575050610956565b610945888389898986610c5f565b610953828989898989610c5f565b50505b600101610884565b505050505050565b6000546001600160a01b031633146104cf5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610a338585610c2b565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac39190611149565b6001600160401b0316876001600160401b031603610ae357506000610c21565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610b4d5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610b70959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610bdb908c908590620186a09060040161120d565b602060405180830381865afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190611243565b925050505b9695505050505050565b60008282604051602001610c4092919061125c565b6040516020818303038152906040528051906020012090505b92915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd69190611149565b6001600160401b0316866001600160401b0316031561095e576001600160401b0386166000908152600360205260409020546001600160a01b031680610d595760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610d7c959493929190611166565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610def908d908790620186a09060040161120d565b602060405180830381865afa158015610e0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e309190611243565b8a8585620186a06040518663ffffffff1660e01b8152600401610e569493929190611293565b6000604051808303818588803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461067457600080fd5b80356001600160a01b0381168114610ebe57600080fd5b919050565b60008060008060608587031215610ed957600080fd5b8435610ee481610e92565b935060208501356001600160401b0380821115610f0057600080fd5b818701915087601f830112610f1457600080fd5b813581811115610f2357600080fd5b886020828501011115610f3557600080fd5b602083019550809450505050610f4d60408601610ea7565b905092959194509250565b600060208284031215610f6a57600080fd5b610f7382610ea7565b9392505050565b60008060408385031215610f8d57600080fd5b8235610f9881610e92565b9150610fa660208401610ea7565b90509250929050565b600060208284031215610fc157600080fd5b8135610f7381610e92565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610ff757600080fd5b833561100281610e92565b925060208401356001600160401b038082111561101e57600080fd5b818601915086601f83011261103257600080fd5b81358181111561104457611044610fcc565b604051601f8201601f19908116603f0116810190838211818310171561106c5761106c610fcc565b8160405282815289602084870101111561108557600080fd5b8260208601602083013760006020848301015280965050505050506110ac60408501610ea7565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156110f65783516001600160401b0316835292840192918401916001016110d1565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610c5957634e487b7160e01b600052601160045260246000fd5b60006020828403121561115b57600080fd5b8151610f7381610e92565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156111d85781810151838201526020016111c0565b50506000910152565b600081518084526111f98160208601602086016111bd565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261123060608401866111e1565b9150808416604084015250949350505050565b60006020828403121561125557600080fd5b5051919050565b6000835161126e8184602088016111bd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526112c460808401866111e1565b91508084166060840152509594505050505056fea26469706673582212202d9c9427fe2a9a92ead1a33b66dad9793478b39884e70d4a11c1708a8ef6d1fc64736f6c63430008180033", + "code": "0x6080604052600436106100dd5760003560e01c80638926f54f1161007f578063b3449b7711610059578063b3449b771461028b578063f2fde38b146102ab578063fbe4b7c0146102cb578063fd0b64f7146102ed57600080fd5b80638926f54f146101ee5780638da5cb5b1461023f578063a4861b421461025d57600080fd5b80634ff56192116100bb5780634ff5619214610163578063715018a6146101835780637b7c0ddc1461019857806388f9380b146101b857600080fd5b806314a28fcb146100e257806339acf9f1146100f75780634a0f997314610134575b600080fd5b6100f56100f0366004610fc5565b61030d565b005b34801561010357600080fd5b50600254610117906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014057600080fd5b5061014b620186a081565b6040516001600160401b03909116815260200161012b565b34801561016f57600080fd5b506100f561017e36600461105a565b610540565b34801561018f57600080fd5b506100f561056a565b3480156101a457600080fd5b506100f56101b336600461107c565b61057e565b3480156101c457600080fd5b506101176101d33660046110b1565b6003602052600090815260409020546001600160a01b031681565b3480156101fa57600080fd5b5061022f6102093660046110b1565b6001600160401b03166000908152600360205260409020546001600160a01b0316151590565b604051901515815260200161012b565b34801561024b57600080fd5b506000546001600160a01b0316610117565b34801561026957600080fd5b5061027d610278366004610fc5565b61067e565b60405190815260200161012b565b34801561029757600080fd5b506101176102a63660046110e4565b610696565b3480156102b757600080fd5b506100f56102c636600461105a565b6106ab565b3480156102d757600080fd5b506102e0610724565b60405161012b91906111b7565b3480156102f957600080fd5b5061022f6103083660046110e4565b6107ae565b6001600160401b0384166000908152600360205260409020546001600160a01b03166103805760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a20636861696e206e6f7420737570706f72746564000060448201526064015b60405180910390fd5b61038d84848433856107cf565b3410156103dc5760405162461bcd60e51b815260206004820152601b60248201527f5852656769737472793a20696e73756666696369656e742066656500000000006044820152606401610377565b6104208484848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503392508691506108d29050565b61042d848484338561092e565b61046e83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250339250610a13915050565b156104da57600254604051632023c96760e11b81526001600160401b03861660048201526001600160a01b039091169063404792ce90602401600060405180830381600087803b1580156104c157600080fd5b505af11580156104d5573d6000803e3d6000fd5b505050505b60405133906104ec9085908590611204565b6040519081900381206001600160a01b0384168252906001600160401b038716907fd06596d338531cdc7b5a36893f1bae3902aa239c822f38d70301ca871f855fac9060200160405180910390a450505050565b610548610a69565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610572610a69565b61057c6000610ac3565b565b610586610a69565b6001600160401b0382166000908152600360205260409020546001600160a01b0316156105f55760405162461bcd60e51b815260206004820152601e60248201527f5852656769737472793a207265706c69636120616c72656164792073657400006044820152606401610377565b6001600160401b039182166000818152600360208190526040822080546001600160a01b0319166001600160a01b03959095169490941790935560048054600181018255918190527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908204018054919093166008026101000a93840219169202919091179055565b600061068d85858533866107cf565b95945050505050565b60006106a3848484610b13565b949350505050565b6106b3610a69565b6001600160a01b0381166107185760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610377565b61072181610ac3565b50565b606060048054806020026020016040519081016040528092919081815260200182805480156107a457602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b0316815260200190600801906020826007010492830192600103820291508084116107615790505b5050505050905090565b6000806107bc858585610b13565b6001600160a01b03161415949350505050565b60008060005b6004548110156108c7576000600482815481106107f4576107f4611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b0390811691508916810361082d57506108bf565b6000610871828a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508c9250610b13915050565b90506001600160a01b0381166108885750506108bf565b6108968a838b8b8b86610b58565b6108a0908561122a565b93506108b0828b8b8b8b8b610b58565b6108ba908561122a565b935050505b6001016107d5565b509695505050505050565b6001600160401b038416600090815260016020526040812082916108f68686610d2e565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050565b60005b600454811015610a0b5760006004828154811061095057610950611214565b6000918252602090912060048204015460039091166008026101000a90046001600160401b039081169150871681036109895750610a03565b60006109cd8288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250610b13915050565b90506001600160a01b0381166109e4575050610a03565b6109f2888389898986610d61565b610a00828989898989610d61565b50505b600101610931565b505050505050565b6000610a556040518060400160405280600a81526020016913db5b9a541bdc9d185b60b21b81525073121e240000000000000000000000000000000002610d2e565b610a5f8484610d2e565b1490505b92915050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610377565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160401b038316600090815260016020526040812081610b368585610d2e565b81526020810191909152604001600020546001600160a01b0316949350505050565b60025460408051634d4502c960e11b815290516000926001600160a01b031691639a8a05929160048083019260209291908290030181865afa158015610ba2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc6919061124b565b6001600160401b0316876001600160401b031603610be657506000610d24565b6001600160401b0387166000908152600360205260409020546001600160a01b031680610c505760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8888888888604051602401610c73959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b0390911690638dd9523c90610cde908c908590620186a09060040161130f565b602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f9190611345565b925050505b9695505050505050565b60008282604051602001610d4392919061135e565b60405160208183030381529060405280519060200120905092915050565b600260009054906101000a90046001600160a01b03166001600160a01b0316639a8a05926040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd8919061124b565b6001600160401b0316866001600160401b03160315610a0b576001600160401b0386166000908152600360205260409020546001600160a01b031680610e5b5760405162461bcd60e51b81526020600482015260186024820152772c2932b3b4b9ba393c9d103ab735b737bbb71031b430b4b760411b6044820152606401610377565b600063d7a18fcd60e01b8787878787604051602401610e7e959493929190611268565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092526002549151632376548f60e21b81529092506001600160a01b03909116906370e8b56a908290638dd9523c90610ef1908d908790620186a09060040161130f565b602060405180830381865afa158015610f0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f329190611345565b8a8585620186a06040518663ffffffff1660e01b8152600401610f589493929190611395565b6000604051808303818588803b158015610f7157600080fd5b505af1158015610f85573d6000803e3d6000fd5b50505050505050505050505050565b6001600160401b038116811461072157600080fd5b80356001600160a01b0381168114610fc057600080fd5b919050565b60008060008060608587031215610fdb57600080fd5b8435610fe681610f94565b935060208501356001600160401b038082111561100257600080fd5b818701915087601f83011261101657600080fd5b81358181111561102557600080fd5b88602082850101111561103757600080fd5b60208301955080945050505061104f60408601610fa9565b905092959194509250565b60006020828403121561106c57600080fd5b61107582610fa9565b9392505050565b6000806040838503121561108f57600080fd5b823561109a81610f94565b91506110a860208401610fa9565b90509250929050565b6000602082840312156110c357600080fd5b813561107581610f94565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156110f957600080fd5b833561110481610f94565b925060208401356001600160401b038082111561112057600080fd5b818601915086601f83011261113457600080fd5b813581811115611146576111466110ce565b604051601f8201601f19908116603f0116810190838211818310171561116e5761116e6110ce565b8160405282815289602084870101111561118757600080fd5b8260208601602083013760006020848301015280965050505050506111ae60408501610fa9565b90509250925092565b6020808252825182820181905260009190848201906040850190845b818110156111f85783516001600160401b0316835292840192918401916001016111d3565b50909695505050505050565b8183823760009101908152919050565b634e487b7160e01b600052603260045260246000fd5b80820180821115610a6357634e487b7160e01b600052601160045260246000fd5b60006020828403121561125d57600080fd5b815161107581610f94565b6001600160401b038616815260806020820152836080820152838560a0830137600060a08583018101919091526001600160a01b039384166040830152919092166060830152601f909201601f1916010192915050565b60005b838110156112da5781810151838201526020016112c2565b50506000910152565b600081518084526112fb8160208601602086016112bf565b601f01601f19169290920160200192915050565b60006001600160401b0380861683526060602084015261133260608401866112e3565b9150808416604084015250949350505050565b60006020828403121561135757600080fd5b5051919050565b600083516113708184602088016112bf565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001600160401b03808716835260018060a01b0386166020840152608060408401526113c660808401866112e3565b91508084166060840152509594505050505056fea26469706673582212208d659cb7c804ca41bafacf1799bb6f7a86cf8203d32be59811d23d4878bba0e664736f6c63430008180033", "balance": "0x0" }, "f39fd6e51aad88f6f4ce6ab8827279cfffb92266": {