UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

1,267 lines 399 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "Version", "name": "version", "type": "uint48" }, { "indexed": false, "internalType": "address", "name": "implementation", "type": "address" }, { "indexed": false, "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "LogVersionableActivated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "newOwner", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activateAndSetOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "blockNumber", "outputs": [ { "internalType": "Blocknumber", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "idx", "type": "uint256" } ], "name": "getVersion", "outputs": [ { "internalType": "Version", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "getVersionInfo", "outputs": [ { "components": [ { "internalType": "Version", "name": "version", "type": "uint48" }, { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" }, { "internalType": "Blocknumber", "name": "activatedIn", "type": "uint32" }, { "internalType": "Timestamp", "name": "activatedAt", "type": "uint40" } ], "internalType": "struct IVersionable.VersionInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" }, { "internalType": "uint8", "name": "shift", "type": "uint8" } ], "name": "intToBytes", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "isActivated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "message", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newMessage", "type": "string" } ], "name": "setMessage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "ChainId", "name": "x", "type": "bytes5" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Blocknumber", "name": "x", "type": "uint32" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Timestamp", "name": "x", "type": "uint40" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "toVersionParts", "outputs": [ { "internalType": "VersionPart", "name": "major", "type": "uint16" }, { "internalType": "VersionPart", "name": "minor", "type": "uint16" }, { "internalType": "VersionPart", "name": "patch", "type": "uint16" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradable", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "Version", "name": "", "type": "uint48" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "versionParts", "outputs": [ { "internalType": "VersionPart", "name": "major", "type": "uint16" }, { "internalType": "VersionPart", "name": "minor", "type": "uint16" }, { "internalType": "VersionPart", "name": "patch", "type": "uint16" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "versions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "allSourcePaths": { "0": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/access/OwnableUpgradeable.sol", "1": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/proxy/utils/Initializable.sol", "3": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/utils/ContextUpgradeable.sol", "42": "contracts/shared/BaseTypes.sol", "43": "contracts/shared/IBaseTypes.sol", "44": "contracts/shared/IVersionType.sol", "45": "contracts/shared/IVersionable.sol", "48": "contracts/shared/Versionable.sol", "49": "contracts/shared/VersionedOwnable.sol", "57": "contracts/test/DemoV09.sol", "58": "contracts/test/DemoV10.sol" }, "ast": { "absolutePath": "contracts/test/DemoV09.sol", "exportedSymbols": { "DemoV09": [ 10342 ], "DemoV10": [ 10426 ], "Version": [ 12269 ], "toVersion": [ 12435 ], "toVersionPart": [ 12383 ] }, "id": 10343, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 10311, "literals": [ "solidity", "^", "0.8", ".19" ], "nodeType": "PragmaDirective", "src": "39:24:57" }, { "absolutePath": "contracts/shared/IVersionType.sol", "file": "../shared/IVersionType.sol", "id": 10315, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10343, "sourceUnit": 12455, "src": "65:77:57", "symbolAliases": [ { "foreign": { "id": 10312, "name": "Version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12269, "src": "73:7:57", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 10313, "name": "toVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12435, "src": "82:9:57", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 10314, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "93:13:57", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "absolutePath": "contracts/test/DemoV10.sol", "file": "./DemoV10.sol", "id": 10317, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10343, "sourceUnit": 10427, "src": "143:38:57", "symbolAliases": [ { "foreign": { "id": 10316, "name": "DemoV10", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10426, "src": "151:7:57", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 10318, "name": "DemoV10", "nameLocations": [ "207:7:57" ], "nodeType": "IdentifierPath", "referencedDeclaration": 10426, "src": "207:7:57" }, "id": 10319, "nodeType": "InheritanceSpecifier", "src": "207:7:57" } ], "canonicalName": "DemoV09", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 10342, "linearizedBaseContracts": [ 10342, 10426, 5965, 13768, 17126, 17084, 5891, 4856, 4443, 4753 ], "name": "DemoV09", "nameLocation": "192:7:57", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 10321, "mutability": "mutable", "name": "_value", "nameLocation": "235:6:57", "nodeType": "VariableDeclaration", "scope": 10342, "src": "222:19:57", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 10320, "name": "uint", "nodeType": "ElementaryTypeName", "src": "222:4:57", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "private" }, { "baseFunctions": [ 10374 ], "body": { "id": 10340, "nodeType": "Block", "src": "506:87:57", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 10330, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "547:1:57", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 10329, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "533:13:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10331, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "533:16:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, { "arguments": [ { "hexValue": "39", "id": 10333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "565:1:57", "typeDescriptions": { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" }, "value": "9" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_9_by_1", "typeString": "int_const 9" } ], "id": 10332, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "551:13:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10334, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "551:16:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, { "arguments": [ { "hexValue": "30", "id": 10336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "583:1:57", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 10335, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "569:13:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "569:16:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } ], "id": 10328, "name": "toVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12435, "src": "523:9:57", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_VersionPart_$12267_$_t_userDefinedValueType$_VersionPart_$12267_$_t_userDefinedValueType$_VersionPart_$12267_$returns$_t_userDefinedValueType$_Version_$12269_$", "typeString": "function (VersionPart,VersionPart,VersionPart) pure returns (Version)" } }, "id": 10338, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "523:63:57", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "functionReturnParameters": 10327, "id": 10339, "nodeType": "Return", "src": "516:70:57" } ] }, "functionSelector": "54fd4d50", "id": 10341, "implemented": true, "kind": "function", "modifiers": [], "name": "version", "nameLocation": "450:7:57", "nodeType": "FunctionDefinition", "overrides": { "id": 10323, "nodeType": "OverrideSpecifier", "overrides": [], "src": "467:8:57" }, "parameters": { "id": 10322, "nodeType": "ParameterList", "parameters": [], "src": "457:2:57" }, "returnParameters": { "id": 10327, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10326, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 10341, "src": "497:7:57", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 10325, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 10324, "name": "Version", "nameLocations": [ "497:7:57" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "497:7:57" }, "referencedDeclaration": 12269, "src": "497:7:57", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "496:9:57" }, "scope": 10342, "src": "441:152:57", "stateMutability": "pure", "virtual": true, "visibility": "public" } ], "scope": 10343, "src": "183:412:57", "usedErrors": [] } ], "src": "39:557:57" }, "bytecode": "60806040523480156200001157600080fd5b506200001e303362000140565b600254610100900460ff16158080156200003f5750600254600160ff909116105b806200005b5750303b1580156200005b575060025460ff166001145b620000c45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015620000e8576002805461ff0019166101001790555b620000f262000444565b801562000139576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000631565b60006200014c620004ac565b65ffffffffffff8116600090815260208190526040902060010154909150600160a01b900463ffffffff1615620001d65760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000bb565b6001541562000299576001805460009190620001f4908290620005ef565b8154811062000207576200020762000605565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff1690506200023d8282620004c2565b620002975760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000bb565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620003254390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716600160a01b026001600160c01b031990961692909416919091179390931793909316179055517ff7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd8990620004379083908690869065ffffffffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b600254610100900460ff16620004a05760405162461bcd60e51b815260206004820152602b6024820152600080516020620018c883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa620004d7565b565b6000620004bd81600960006200053e565b905090565b65ffffffffffff808216908316115b92915050565b600254610100900460ff16620005335760405162461bcd60e51b815260206004820152602b6024820152600080516020620018c883398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa3362000587565b600061ffff84811690848116908416806200057063ffff0000601089901b1665ffff0000000060208b901b166200061b565b6200057c91906200061b565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004d157620004d1620005d9565b634e487b7160e01b600052603260045260246000fd5b80820180821115620004d157620004d1620005d9565b61128780620006416000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063aa615ec8116100ad578063de788b2c11610071578063de788b2c146102b2578063e21f37ce14610325578063f2fde38b1461032d578063f4d26fec14610340578063f8b1cb3c1461034857600080fd5b8063aa615ec814610224578063b88da75914610247578063bd4080ec1461025a578063c1f6a1b714610287578063da09d4841461029a57600080fd5b80636effeac4116100f45780636effeac4146101c4578063715018a6146101db5780638da5cb5b146101e35780638e258689146101fe5780639555c4db1461021157600080fd5b80631080d89514610131578063368b87721461015a57806354fd4d501461016f57806357e871e71461018e57806366362612146101a2575b600080fd5b61014461013f366004610d36565b610350565b6040516101519190610db2565b60405180910390f35b61016d610168366004610de2565b610386565b005b61017761039e565b60405165ffffffffffff9091168152602001610151565b60405163ffffffff43168152602001610151565b6101b66101b0366004610e93565b60d81c90565b604051908152602001610151565b6101b66101d2366004610ebd565b63ffffffff1690565b61016d6103b2565b6035546040516001600160a01b039091168152602001610151565b61016d61020c366004610eff565b6103c6565b61016d61021f366004610f42565b6104e5565b610237610232366004610f75565b6104ef565b6040519015158152602001610151565b610177610255366004610f9d565b61051b565b6102626105b1565b6040805161ffff94851681529284166020840152921691810191909152606001610151565b610262610295366004610f75565b6105cc565b6101b66102a8366004610fb6565b64ffffffffff1690565b6102c56102c0366004610f75565b61060e565b60408051825165ffffffffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015163ffffffff169082015260809182015164ffffffffff169181019190915260a001610151565b61014461070b565b61016d61033b366004610fdd565b61079d565b610144610816565b6001546101b6565b6040805160ff831684901b60f01b6001600160f01b03191660208201528151600281830301815260229091019091525b92915050565b61038e610836565b606761039a8282611081565b5050565b60006103ad8160096000610890565b905090565b6103ba610836565b6103c460006108d5565b565b600254610100900460ff16158080156103e65750600254600160ff909116105b806104005750303b158015610400575060025460ff166001145b6104255760405162461bcd60e51b815260040161041c90611141565b60405180910390fd5b6002805460ff191660011790558015610448576002805461ff0019166101001790555b610453848484610927565b6040518060400160405280602081526020017f7370656369616c206d657373616765202d20617320696e697469616c697a6564815250606790816104979190611081565b5080156104df576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b61039a82826109fd565b65ffffffffffff16600090815260208190526040902060010154600160a01b900463ffffffff16151590565b600154600090821061056f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3031303a494e4445585f544f4f5f4c41524745000000604482015260640161041c565b600182815481106105825761058261118f565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050919050565b60008060006105c161029561039e565b925092509250909192565b6000808065ffffffffffff841661ffff602086901c166105ec83836111bb565b9150601082901c60006105ff81856111bb565b92989197509195509350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152610642826104ef565b61068e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3032303a56455253494f4e5f554e4b4e4f574e000000604482015260640161041c565b5065ffffffffffff90811660009081526020818152604091829020825160a0810184528154948516815266010000000000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810463ffffffff166060830152600160c01b900464ffffffffff16608082015290565b60606067805461071a90610ff8565b80601f016020809104026020016040519081016040528092919081815260200182805461074690610ff8565b80156107935780601f1061076857610100808354040283529160200191610793565b820191906000526020600020905b81548152906001019060200180831161077657829003601f168201915b5050505050905090565b6107a5610836565b6001600160a01b03811661080a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161041c565b610813816108d5565b50565b606060405180606001604052806025815260200161122d60259139905090565b6035546001600160a01b031633146103c45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161041c565b600061ffff84811690848116908416806108c063ffff0000601089901b1665ffff0000000060208b901b166111ce565b6108ca91906111ce565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600254610100900460ff16158080156109475750600254600160ff909116105b806109615750303b158015610961575060025460ff166001145b61097d5760405162461bcd60e51b815260040161041c90611141565b6002805460ff1916600117905580156109a0576002805461ff0019166101001790555b6109aa84836109fd565b6109b2610cdc565b6109bb8361079d565b80156104df576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104d6565b6000610a0761039e565b9050610a12816104ef565b15610a6f5760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b606482015260840161041c565b60015415610b33576001805460009190610a8a9082906111bb565b81548110610a9a57610a9a61118f565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050610ad9828265ffffffffffff90811691161190565b610b315760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b606482015260840161041c565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101610bbe4390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716600160a01b026001600160c01b031990961692909416919091179390931793909316179055517ff7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd8990610ccf9083908690869065ffffffffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b600254610100900460ff16610d035760405162461bcd60e51b815260040161041c906111e1565b6103c4600254610100900460ff16610d2d5760405162461bcd60e51b815260040161041c906111e1565b6103c4336108d5565b60008060408385031215610d4957600080fd5b82359150602083013560ff81168114610d6157600080fd5b809150509250929050565b6000815180845260005b81811015610d9257602081850181015186830182015201610d76565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610dc56020830184610d6c565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610df457600080fd5b813567ffffffffffffffff80821115610e0c57600080fd5b818401915084601f830112610e2057600080fd5b813581811115610e3257610e32610dcc565b604051601f8201601f19908116603f01168101908382118183101715610e5a57610e5a610dcc565b81604052828152876020848701011115610e7357600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610ea557600080fd5b81356001600160d81b031981168114610dc557600080fd5b600060208284031215610ecf57600080fd5b813563ffffffff81168114610dc557600080fd5b80356001600160a01b0381168114610efa57600080fd5b919050565b600080600060608486031215610f1457600080fd5b610f1d84610ee3565b9250610f2b60208501610ee3565b9150610f3960408501610ee3565b90509250925092565b60008060408385031215610f5557600080fd5b610f5e83610ee3565b9150610f6c60208401610ee3565b90509250929050565b600060208284031215610f8757600080fd5b813565ffffffffffff81168114610dc557600080fd5b600060208284031215610faf57600080fd5b5035919050565b600060208284031215610fc857600080fd5b813564ffffffffff81168114610dc557600080fd5b600060208284031215610fef57600080fd5b610dc582610ee3565b600181811c9082168061100c57607f821691505b60208210810361102c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561107c57600081815260208120601f850160051c810160208610156110595750805b601f850160051c820191505b8181101561107857828155600101611065565b5050505b505050565b815167ffffffffffffffff81111561109b5761109b610dcc565b6110af816110a98454610ff8565b84611032565b602080601f8311600181146110e457600084156110cc5750858301515b600019600386901b1c1916600185901b178555611078565b600085815260208120601f198616915b82811015611113578886015182559484019460019091019084016110f4565b50858210156111315787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610380576103806111a5565b80820180821115610380576103806111a5565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe6865792066726f6d2075706772616461626c6544656d6f202d2044656d6f2076312e302e30a26469706673582212200b2ec13b33df346f7bda233b1902b695b0a96200e02665a12a9cab0fce2473af64736f6c63430008130033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069", "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.19+commit.7dd6d404" }, "contractName": "DemoV09", "coverageMap": { "branches": { "0": { "OwnableUpgradeable._checkOwner": { "46": [ 1662, 1685, true ] }, "OwnableUpgradeable.transferOwnership": { "45": [ 2409, 2431, true ] } }, "1": { "OwnableUpgradeable.__Ownable_init": { "44": [ 5363, 5376, true ] } }, "3": {}, "42": {}, "43": {}, "44": {}, "45": {}, "48": { "Versionable._activate": { "49": [ 1217, 1242, true ], "50": [ 1374, 1394, false ], "51": [ 1502, 1527, true ] }, "Versionable.getVersion": { "47": [ 3343, 3365, true ] }, "Versionable.getVersionInfo": { "48": [ 3555, 3576, true ] } }, "49": {}, "57": {}, "58": {} }, "statements": { "0": { "OwnableUpgradeable.__Ownable_init": { "42": [ 1065, 1091 ] }, "OwnableUpgradeable.__Ownable_init_unchained": { "43": [ 1176, 1208 ] }, "OwnableUpgradeable._checkOwner": { "27": [ 1654, 1722 ] }, "OwnableUpgradeable._transferOwnership": { "30": [ 2781, 2798 ], "31": [ 2808, 2853 ] }, "OwnableUpgradeable.owner": { "3": [ 1506, 1519 ] }, "OwnableUpgradeable.renounceOwnership": { "9": [ 2135, 2165 ] }, "OwnableUpgradeable.transferOwnership": { "23": [ 2401, 2474 ], "24": [ 2484, 2512 ] } }, "1": {}, "3": { "ContextUpgradeable._msgSender": { "26": [ 922, 939 ] } }, "42": { "BaseTypes.blockNumber": { "0": [ 725, 770 ] }, "BaseTypes.intToBytes": { "6": [ 282, 325 ] }, "BaseTypes.toInt": { "1": [ 603, 641 ], "2": [ 405, 433 ], "4": [ 506, 532 ] } }, "43": { "blockTimestamp": { "40": [ 1875, 1910 ] } }, "44": { "gtVersion": { "37": [ 435, 479 ] }, "toVersion": { "29": [ 1281, 1378 ] }, "versionPartToInt": { "28": [ 792, 820 ] }, "versionToInt": { "17": [ 878, 902 ] } }, "45": {}, "48": { "Versionable._activate": { "35": [ 1196, 1307 ], "36": [ 1477, 1597 ], "38": [ 1652, 1679 ], "39": [ 1689, 1876 ], "41": [ 1887, 1957 ] }, "Versionable.getVersion": { "14": [ 3335, 3399 ], "15": [ 3409, 3430 ] }, "Versionable.getVersionInfo": { "20": [ 3547, 3610 ], "21": [ 3620, 3652 ] }, "Versionable.isActivated": { "13": [ 2055, 2110 ] }, "Versionable.toVersionParts": { "18": [ 2445, 2473 ], "19": [ 2601, 2729 ] }, "Versionable.versionParts": { "16": [ 3108, 3140 ] }, "Versionable.versions": { "5": [ 3215, 3238 ] } }, "49": { "VersionedOwnable._activateAndSetOwner": { "32": [ 1295, 1333 ], "33": [ 1390, 1406 ], "34": [ 1450, 1477 ] }, "VersionedOwnable.activate": { "12": [ 761, 799 ] } }, "57": { "DemoV09.version": { "8": [ 516, 586 ] } }, "58": { "DemoV10.activateAndSetOwner": { "10": [ 954, 1013 ], "11": [ 1063, 1108 ] }, "DemoV10.message": { "22": [ 1297, 1312 ] }, "DemoV10.setMessage": { "7": [ 1197, 1218 ] }, "DemoV10.upgradable": { "25": [ 1400, 1446 ] } } } }, "dependencies": [ "BaseTypes", "OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/ContextUpgradeable", "DemoV10", "IBaseTypes", "IVersionable", "OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/Initializable", "OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/OwnableUpgradeable", "Versionable", "VersionedOwnable" ], "deployedBytecode": "608060405234801561001057600080fd5b506004361061012c5760003560e01c8063aa615ec8116100ad578063de788b2c11610071578063de788b2c146102b2578063e21f37ce14610325578063f2fde38b1461032d578063f4d26fec14610340578063f8b1cb3c1461034857600080fd5b8063aa615ec814610224578063b88da75914610247578063bd4080ec1461025a578063c1f6a1b714610287578063da09d4841461029a57600080fd5b80636effeac4116100f45780636effeac4146101c4578063715018a6146101db5780638da5cb5b146101e35780638e258689146101fe5780639555c4db1461021157600080fd5b80631080d89514610131578063368b87721461015a57806354fd4d501461016f57806357e871e71461018e57806366362612146101a2575b600080fd5b61014461013f366004610d36565b610350565b6040516101519190610db2565b60405180910390f35b61016d610168366004610de2565b610386565b005b61017761039e565b60405165ffffffffffff9091168152602001610151565b60405163ffffffff43168152602001610151565b6101b66101b0366004610e93565b60d81c90565b604051908152602001610151565b6101b66101d2366004610ebd565b63ffffffff1690565b61016d6103b2565b6035546040516001600160a01b039091168152602001610151565b61016d61020c366004610eff565b6103c6565b61016d61021f366004610f42565b6104e5565b610237610232366004610f75565b6104ef565b6040519015158152602001610151565b610177610255366004610f9d565b61051b565b6102626105b1565b6040805161ffff94851681529284166020840152921691810191909152606001610151565b610262610295366004610f75565b6105cc565b6101b66102a8366004610fb6565b64ffffffffff1690565b6102c56102c0366004610f75565b61060e565b60408051825165ffffffffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015163ffffffff169082015260809182015164ffffffffff169181019190915260a001610151565b61014461070b565b61016d61033b366004610fdd565b61079d565b610144610816565b6001546101b6565b6040805160ff831684901b60f01b6001600160f01b03191660208201528151600281830301815260229091019091525b92915050565b61038e610836565b606761039a8282611081565b5050565b60006103ad8160096000610890565b905090565b6103ba610836565b6103c460006108d5565b565b600254610100900460ff16158080156103e65750600254600160ff909116105b806104005750303b158015610400575060025460ff166001145b6104255760405162461bcd60e51b815260040161041c90611141565b60405180910390fd5b6002805460ff191660011790558015610448576002805461ff0019166101001790555b610453848484610927565b6040518060400160405280602081526020017f7370656369616c206d657373616765202d20617320696e697469616c697a6564815250606790816104979190611081565b5080156104df576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b61039a82826109fd565b65ffffffffffff16600090815260208190526040902060010154600160a01b900463ffffffff16151590565b600154600090821061056f5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3031303a494e4445585f544f4f5f4c41524745000000604482015260640161041c565b600182815481106105825761058261118f565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050919050565b60008060006105c161029561039e565b925092509250909192565b6000808065ffffffffffff841661ffff602086901c166105ec83836111bb565b9150601082901c60006105ff81856111bb565b92989197509195509350505050565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152610642826104ef565b61068e5760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3032303a56455253494f4e5f554e4b4e4f574e000000604482015260640161041c565b5065ffffffffffff90811660009081526020818152604091829020825160a0810184528154948516815266010000000000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810463ffffffff166060830152600160c01b900464ffffffffff16608082015290565b60606067805461071a90610ff8565b80601f016020809104026020016040519081016040528092919081815260200182805461074690610ff8565b80156107935780601f1061076857610100808354040283529160200191610793565b8