8533 lines
368 KiB
JSON
8533 lines
368 KiB
JSON
{
|
|
"contractName": "ContractRegistry",
|
|
"abi": [
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "acceptOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "contractNames",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "newOwner",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "owner",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "transferOwnership",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "itemCount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "addressOf",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "registerAddress",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "unregisterAddress",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "getAddress",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"constant": true
|
|
}
|
|
],
|
|
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"AddressUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"addressOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"contractNames\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"itemCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractAddress\",\"type\":\"address\"}],\"name\":\"registerAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_contractName\",\"type\":\"bytes32\"}],\"name\":\"unregisterAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract Registry The contract registry keeps contract addresses by name. The owner can update contract addresses so that a contract name always points to the latest version of the given contract. Other contracts can query the registry to get updated addresses instead of depending on specific addresses. Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs\",\"events\":{\"AddressUpdate(bytes32,address)\":{\"details\":\"triggered when an address pointed to by a contract name is modified\",\"params\":{\"_contractAddress\":\"new contract address\",\"_contractName\":\"contract name\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"used by a new owner to accept an ownership transfer\"},\"addressOf(bytes32)\":{\"details\":\"returns the address associated with the given contract name\",\"params\":{\"_contractName\":\"contract name\"},\"returns\":{\"_0\":\"contract address\"}},\"getAddress(bytes32)\":{\"details\":\"deprecated, backward compatibility\"},\"itemCount()\":{\"details\":\"returns the number of items in the registry\",\"returns\":{\"_0\":\"number of items\"}},\"registerAddress(bytes32,address)\":{\"details\":\"registers a new address for the contract name in the registry\",\"params\":{\"_contractAddress\":\"contract address\",\"_contractName\":\"contract name\"}},\"transferOwnership(address)\":{\"details\":\"allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner\",\"params\":{\"_newOwner\":\"new contract owner\"}},\"unregisterAddress(bytes32)\":{\"details\":\"removes an existing contract address from the registry\",\"params\":{\"_contractName\":\"contract name\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistry.sol\":\"ContractRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistry.sol\":{\"keccak256\":\"0x2c528338138def339adcf2cff6003747add2baec544025f9e00e8ac7ca3ae9a5\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://3bf4a4cd09bf05a9c83a7255989bddf55afe82e201e83492ca7d5dc3bb95eb22\",\"dweb:/ipfs/QmUBkzUfk5x8sAW4Xm9krmBkQCYx9nziKNdhMehbCCtoWT\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol\":{\"keccak256\":\"0x6ef69d9dcc80a8a36d5eb37783375cd5e4831c6d20c723fa6f6b6a06c0aeb53d\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://5a5d087e2c5b47739615ef22e1f29749de44b43c9a37cfae32b3dfc498a258c4\",\"dweb:/ipfs/Qmd1mXKEQbmBxqHk326LGVzNoayXsam8gZNecknnYpBnyh\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Utils.sol\":{\"keccak256\":\"0x073efa69fcd6b5e60f841b28b366d63b62ff48ab12a06ce3f5a7f41afd6ce885\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://e8b8ecb2d29197ca77f0ed98f728ace54e6edcfdf5cd1194ae22701607eaf608\",\"dweb:/ipfs/QmcsR6Q35Hurh3TrPkYAboicz9bQQoGCWmZLzUCDyhotH8\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol\":{\"keccak256\":\"0x3551889a83738b621c29ed66f1ecb6a843cca4217e54c9357198559b9cc92259\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://231a59c8f2665adeda8c7e6930832409c9b991fd27ad84b3a24335e7bf269bbe\",\"dweb:/ipfs/QmeJJbn1EAUbZenruTEdJAnwUn3dxsVNeJvxPe81qKEGqL\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol\":{\"keccak256\":\"0xc60a9d197abc28c1906ed4d18b59caa0242db754a0e1f67af6e6277593530dae\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://a8c6f3e6525a81a5165ccbf04f73f6c389c14b74135d11a7b5f70b1c9bdac75c\",\"dweb:/ipfs/QmaPu4Z7yUPc9sMADmoTZVY6AnyDSYHtNNCx3mm4VkJwhP\"]}},\"version\":1}",
|
|
"bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561098f806100326000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba5097146101d35780638da5cb5b146101db578063bb34534c146101e3578063d4ee1d9014610200578063f2fde38b146102085761009e565b806321f8a721146100a35780632bbd9530146100dc5780633ca6bb92146100fb578063662de3791461018d5780636bfb0d01146101b9575b600080fd5b6100c0600480360360208110156100b957600080fd5b503561022e565b604080516001600160a01b039092168252519081900360200190f35b6100f9600480360360208110156100f257600080fd5b503561023f565b005b6101186004803603602081101561011157600080fd5b5035610453565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100f9600480360360408110156101a357600080fd5b50803590602001356001600160a01b03166104f9565b6101c16105f0565b60408051918252519081900360200190f35b6100f96105f6565b6100c06106ad565b6100c0600480360360208110156101f957600080fd5b50356106bc565b6100c06106d7565b6100f96004803603602081101561021e57600080fd5b50356001600160a01b03166106e6565b6000610239826106bc565b92915050565b610247610764565b6000818152600260205260409020546001600160a01b03166102a3576040805162461bcd60e51b815260206004820152601060248201526f4552525f494e56414c49445f4e414d4560801b604482015290519081900360640190fd5b600081815260026020526040902080546001600160a01b0319169055600354600110156103df57600380546060919060001981019081106102e057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b50505050509050600060026000848152602001908152602001600020600101549050816003828154811061039e57fe5b9060005260206000200190805190602001906103bb929190610886565b5060006103c7836107b9565b60009081526002602052604090206001019190915550505b60038054806103ea57fe5b6001900381819060005260206000200160006104069190610904565b9055600081815260026020908152604080832060010183905580519283525183927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a250565b6003818154811061046057fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505081565b610501610764565b8061050b816107c0565b6000838152600260205260409020546001600160a01b0390811690831681141561053557506105eb565b6001600160a01b038116610589576003805460008681526002602052604090206001015561056285610814565b8154600181018355600092835260209283902082516105879491909201920190610886565b505b60008481526002602090815260409182902080546001600160a01b0319166001600160a01b0387169081179091558251908152915186927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a2505b505050565b60035490565b6001546001600160a01b03163314610649576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6001546001600160a01b031681565b6106ee610764565b6000546001600160a01b0382811691161415610742576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fa9a0a6a2afa7aba722a960911b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107b7576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b565b6020015190565b6001600160a01b038116610811576040805162461bcd60e51b81526020600482015260136024820152724552525f494e56414c49445f4144445245535360681b604482015290519081900360640190fd5b50565b60408051602080825281830190925260609182919060208201818036833701905050905060005b602081101561087f5783816020811061085057fe5b1a60f81b82828151811061086057fe5b60200101906001600160f81b031916908160001a90535060010161083b565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106108c757805160ff19168380011785556108f4565b828001600101855582156108f4579182015b828111156108f45782518255916020019190600101906108d9565b50610900929150610944565b5090565b50805460018160011615610100020316600290046000825580601f1061092a5750610811565b601f01602090049060005260206000209081019061081191905b5b80821115610900576000815560010161094556fea2646970667358221220c1ee460acf4574042f65f6a745c4d45779297f7f10559449a9fb7e99752852a864736f6c634300060c0033",
|
|
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806379ba50971161006657806379ba5097146101d35780638da5cb5b146101db578063bb34534c146101e3578063d4ee1d9014610200578063f2fde38b146102085761009e565b806321f8a721146100a35780632bbd9530146100dc5780633ca6bb92146100fb578063662de3791461018d5780636bfb0d01146101b9575b600080fd5b6100c0600480360360208110156100b957600080fd5b503561022e565b604080516001600160a01b039092168252519081900360200190f35b6100f9600480360360208110156100f257600080fd5b503561023f565b005b6101186004803603602081101561011157600080fd5b5035610453565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100f9600480360360408110156101a357600080fd5b50803590602001356001600160a01b03166104f9565b6101c16105f0565b60408051918252519081900360200190f35b6100f96105f6565b6100c06106ad565b6100c0600480360360208110156101f957600080fd5b50356106bc565b6100c06106d7565b6100f96004803603602081101561021e57600080fd5b50356001600160a01b03166106e6565b6000610239826106bc565b92915050565b610247610764565b6000818152600260205260409020546001600160a01b03166102a3576040805162461bcd60e51b815260206004820152601060248201526f4552525f494e56414c49445f4e414d4560801b604482015290519081900360640190fd5b600081815260026020526040902080546001600160a01b0319169055600354600110156103df57600380546060919060001981019081106102e057fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561036e5780601f106103435761010080835404028352916020019161036e565b820191906000526020600020905b81548152906001019060200180831161035157829003601f168201915b50505050509050600060026000848152602001908152602001600020600101549050816003828154811061039e57fe5b9060005260206000200190805190602001906103bb929190610886565b5060006103c7836107b9565b60009081526002602052604090206001019190915550505b60038054806103ea57fe5b6001900381819060005260206000200160006104069190610904565b9055600081815260026020908152604080832060010183905580519283525183927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a250565b6003818154811061046057fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152935090918301828280156104f15780601f106104c6576101008083540402835291602001916104f1565b820191906000526020600020905b8154815290600101906020018083116104d457829003601f168201915b505050505081565b610501610764565b8061050b816107c0565b6000838152600260205260409020546001600160a01b0390811690831681141561053557506105eb565b6001600160a01b038116610589576003805460008681526002602052604090206001015561056285610814565b8154600181018355600092835260209283902082516105879491909201920190610886565b505b60008481526002602090815260409182902080546001600160a01b0319166001600160a01b0387169081179091558251908152915186927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a2505b505050565b60035490565b6001546001600160a01b03163314610649576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b600154600080546040516001600160a01b0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6001546001600160a01b031681565b6106ee610764565b6000546001600160a01b0382811691161415610742576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fa9a0a6a2afa7aba722a960911b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107b7576040805162461bcd60e51b815260206004820152601160248201527011549497d050d0d154d4d7d11153925151607a1b604482015290519081900360640190fd5b565b6020015190565b6001600160a01b038116610811576040805162461bcd60e51b81526020600482015260136024820152724552525f494e56414c49445f4144445245535360681b604482015290519081900360640190fd5b50565b60408051602080825281830190925260609182919060208201818036833701905050905060005b602081101561087f5783816020811061085057fe5b1a60f81b82828151811061086057fe5b60200101906001600160f81b031916908160001a90535060010161083b565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106108c757805160ff19168380011785556108f4565b828001600101855582156108f4579182015b828111156108f45782518255916020019190600101906108d9565b50610900929150610944565b5090565b50805460018160011615610100020316600290046000825580601f1061092a5750610811565b601f01602090049060005260206000209081019061081191905b5b80821115610900576000815560010161094556fea2646970667358221220c1ee460acf4574042f65f6a745c4d45779297f7f10559449a9fb7e99752852a864736f6c634300060c0033",
|
|
"immutableReferences": {},
|
|
"sourceMap": "633:5154:55:-:0;;;;;;;;;;;;-1:-1:-1;619:5:57;:18;;-1:-1:-1;;;;;;619:18:57;627:10;619:18;;;633:5154:55;;;;;;",
|
|
"deployedSourceMap": "633:5154:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:123;;;;;;;;;;;;;;;;-1:-1:-1;5661:123:55;;:::i;:::-;;;;-1:-1:-1;;;;;5661:123:55;;;;;;;;;;;;;;3240:1394;;;;;;;;;;;;;;;;-1:-1:-1;3240:1394:55;;:::i;:::-;;971:29;;;;;;;;;;;;;;;;-1:-1:-1;971:29:55;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2129:964;;;;;;;;;;;;;;;;-1:-1:-1;2129:964:55;;;;;;-1:-1:-1;;;;;2129:964:55;;:::i;1482:97::-;;;:::i;:::-;;;;;;;;;;;;;;;;1422:217:57;;;:::i;219:29::-;;;:::i;1777:143:55:-;;;;;;;;;;;;;;;;-1:-1:-1;1777:143:55;;:::i;255:23:57:-;;;:::i;1164:167::-;;;;;;;;;;;;;;;;-1:-1:-1;1164:167:57;-1:-1:-1;;;;;1164:167:57;;:::i;5661:123:55:-;5725:7;5752:24;5762:13;5752:9;:24::i;:::-;5745:31;5661:123;-1:-1:-1;;5661:123:55:o;3240:1394::-;726:12:57;:10;:12::i;:::-;3465:1:55::1;3417:20:::0;;;:5:::1;:20;::::0;;;;:36;-1:-1:-1;;;;;3417:36:55::1;3409:79;;;::::0;;-1:-1:-1;;;3409:79:55;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;3409:79:55;;;;;;;;;;;;;::::1;;3597:1;3550:20:::0;;;:5:::1;:20;::::0;;;;:49;;-1:-1:-1;;;;;;3550:49:55::1;::::0;;3862:13:::1;:20:::0;3550:49;-1:-1:-1;3858:488:55::1;;;3942:13;3956:20:::0;;3903:36:::1;::::0;3942:13;-1:-1:-1;;3956:24:55;;;3942:39;::::1;;;;;;::::0;;;::::1;::::0;;;;::::1;3903:78:::0;;::::1;::::0;;::::1;;-1:-1:-1::0;;3903:78:55::1;;::::0;::::1;;;::::0;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;::::1;3942:39:::0;3903:78;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3996:23;4022:5;:20;4028:13;4022:20;;;;;;;;;;;:30;;;3996:56;;4102:22;4069:13;4083:15;4069:30;;;;;;;;;;;;;;;:55;;;;;;;;;;;;:::i;:::-;;4139:24;4166:39;4182:22;4166:15;:39::i;:::-;4220:33;4256:23:::0;;;:5:::1;:23;::::0;;;;4294:22:::1;;:40:::0;;;;-1:-1:-1;;3858:488:55::1;4413:13;:19;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;::::0;;4521:1:::1;4488:20:::0;;;:5:::1;:20;::::0;;;;;;;:30:::1;;:34:::0;;;4586:40;;;;;;4494:13;;4586:40:::1;::::0;;;;;;;::::1;3240:1394:::0;:::o;971:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;971:29:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;971:29:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2129:964::-;726:12:57;:10;:12::i;:::-;2260:16:55::1;594:23:64;608:8;594:13;:23::i;:::-;2429:22:55::2;2454:20:::0;;;:5:::2;:20;::::0;;;;:36;-1:-1:-1;;;;;2454:36:55;;::::2;::::0;2505:34;::::2;::::0;::::2;2501:60;;;2554:7;;;2501:60;-1:-1:-1::0;;;;;2577:28:55;::::2;2573:288;;2707:13;:20:::0;;2674::::2;::::0;;;:5:::2;:20;::::0;;;;:30:::2;;:53:::0;2818:30:::2;2680:13:::0;2818:15:::2;:30::i;:::-;2799:50:::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;2799:50:55;;;::::2;::::0;;;;;;::::2;::::0;;;;::::2;::::0;::::2;::::0;::::2;:::i;:::-;;2573:288;2920:20;::::0;;;:5:::2;:20;::::0;;;;;;;;:55;;-1:-1:-1;;;;;;2920:55:55::2;-1:-1:-1::0;;;;;2920:55:55;::::2;::::0;;::::2;::::0;;;3039:46;;;;;;;2920:20;;3039:46:::2;::::0;;;;;;;::::2;628:1:64;;749::57::1;2129:964:55::0;;:::o;1482:97::-;1551:13;:20;1482:97;:::o;1422:217:57:-;1498:8;;-1:-1:-1;;;;;1498:8:57;1484:10;:22;1476:52;;;;;-1:-1:-1;;;1476:52:57;;;;;;;;;;;;-1:-1:-1;;;1476:52:57;;;;;;;;;;;;;;;1563:8;;;1556:5;;1544:28;;-1:-1:-1;;;;;1563:8:57;;;;1556:5;;;;1544:28;;;1591:8;;;;1583:16;;-1:-1:-1;;;;;;1583:16:57;;;-1:-1:-1;;;;;1591:8:57;;1583:16;;;;1610:21;;;1422:217::o;219:29::-;;;-1:-1:-1;;;;;219:29:57;;:::o;1777:143:55:-;1849:7;1876:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;1876:36:55;;1777:143::o;255:23:57:-;;;-1:-1:-1;;;;;255:23:57;;:::o;1164:167::-;726:12;:10;:12::i;:::-;1268:5:::1;::::0;-1:-1:-1;;;;;1255:18:57;;::::1;1268:5:::0;::::1;1255:18;;1247:45;;;::::0;;-1:-1:-1;;;1247:45:57;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1247:45:57;;;;;;;;;;;;;::::1;;1303:8;:20:::0;;-1:-1:-1;;;;;;1303:20:57::1;-1:-1:-1::0;;;;;1303:20:57;;;::::1;::::0;;;::::1;::::0;;1164:167::o;813:104::-;882:5;;-1:-1:-1;;;;;882:5:57;868:10;:19;860:49;;;;;-1:-1:-1;;;860:49:57;;;;;;;;;;;;-1:-1:-1;;;860:49:57;;;;;;;;;;;;;;;813:104::o;5374:213:55:-;5541:2;5529:15;5523:22;;5374:213::o;692:128:64:-;-1:-1:-1;;;;;766:22:64;;758:54;;;;;-1:-1:-1;;;758:54:64;;;;;;;;;;;;-1:-1:-1;;;758:54:64;;;;;;;;;;;;;;;692:128;:::o;4872:266:55:-;4986:13;;;4996:2;4986:13;;;;;;;;;4935;;;;4986;;;;;;;;;;;-1:-1:-1;4986:13:55;4961:38;;5015:9;5010:84;5034:2;5030:1;:6;5010:84;;;5073:6;5080:1;5073:9;;;;;;;;;;5058;5068:1;5058:12;;;;;;;;;;;:24;-1:-1:-1;;;;;5058:24:55;;;;;;;;-1:-1:-1;5038:3:55;;5010:84;;;-1:-1:-1;5120:9:55;4872:266;-1:-1:-1;;4872:266:55:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
|
|
"source": "// SPDX-License-Identifier: SEE LICENSE IN LICENSE\r\npragma solidity 0.6.12;\r\nimport \"./Owned.sol\";\r\nimport \"./Utils.sol\";\r\nimport \"./interfaces/IContractRegistry.sol\";\r\n\r\n/**\r\n * @dev Contract Registry\r\n *\r\n * The contract registry keeps contract addresses by name.\r\n * The owner can update contract addresses so that a contract name always points to the latest version\r\n * of the given contract.\r\n * Other contracts can query the registry to get updated addresses instead of depending on specific\r\n * addresses.\r\n *\r\n * Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs\r\n*/\r\ncontract ContractRegistry is IContractRegistry, Owned, Utils {\r\n struct RegistryItem {\r\n address contractAddress; // contract address\r\n uint256 nameIndex; // index of the item in the list of contract names\r\n }\r\n\r\n mapping (bytes32 => RegistryItem) private items; // name -> RegistryItem mapping\r\n string[] public contractNames; // list of all registered contract names\r\n\r\n /**\r\n * @dev triggered when an address pointed to by a contract name is modified\r\n *\r\n * @param _contractName contract name\r\n * @param _contractAddress new contract address\r\n */\r\n event AddressUpdate(bytes32 indexed _contractName, address _contractAddress);\r\n\r\n /**\r\n * @dev returns the number of items in the registry\r\n *\r\n * @return number of items\r\n */\r\n function itemCount() public view returns (uint256) {\r\n return contractNames.length;\r\n }\r\n\r\n /**\r\n * @dev returns the address associated with the given contract name\r\n *\r\n * @param _contractName contract name\r\n *\r\n * @return contract address\r\n */\r\n function addressOf(bytes32 _contractName) public view override returns (address) {\r\n return items[_contractName].contractAddress;\r\n }\r\n\r\n /**\r\n * @dev registers a new address for the contract name in the registry\r\n *\r\n * @param _contractName contract name\r\n * @param _contractAddress contract address\r\n */\r\n function registerAddress(bytes32 _contractName, address _contractAddress)\r\n public\r\n ownerOnly\r\n validAddress(_contractAddress)\r\n {\r\n // validate input\r\n require(_contractName.length > 0, \"ERR_INVALID_NAME\");\r\n\r\n // check if any change is needed\r\n address currentAddress = items[_contractName].contractAddress;\r\n if (_contractAddress == currentAddress)\r\n return;\r\n\r\n if (currentAddress == address(0)) {\r\n // update the item's index in the list\r\n items[_contractName].nameIndex = contractNames.length;\r\n\r\n // add the contract name to the name list\r\n contractNames.push(bytes32ToString(_contractName));\r\n }\r\n\r\n // update the address in the registry\r\n items[_contractName].contractAddress = _contractAddress;\r\n\r\n // dispatch the address update event\r\n emit AddressUpdate(_contractName, _contractAddress);\r\n }\r\n\r\n /**\r\n * @dev removes an existing contract address from the registry\r\n *\r\n * @param _contractName contract name\r\n */\r\n function unregisterAddress(bytes32 _contractName) public ownerOnly {\r\n // validate input\r\n require(_contractName.length > 0, \"ERR_INVALID_NAME\");\r\n require(items[_contractName].contractAddress != address(0), \"ERR_INVALID_NAME\");\r\n\r\n // remove the address from the registry\r\n items[_contractName].contractAddress = address(0);\r\n\r\n // if there are multiple items in the registry, move the last element to the deleted element's position\r\n // and modify last element's registryItem.nameIndex in the items collection to point to the right position in contractNames\r\n if (contractNames.length > 1) {\r\n string memory lastContractNameString = contractNames[contractNames.length - 1];\r\n uint256 unregisterIndex = items[_contractName].nameIndex;\r\n\r\n contractNames[unregisterIndex] = lastContractNameString;\r\n bytes32 lastContractName = stringToBytes32(lastContractNameString);\r\n RegistryItem storage registryItem = items[lastContractName];\r\n registryItem.nameIndex = unregisterIndex;\r\n }\r\n\r\n // remove the last element from the name list\r\n contractNames.pop();\r\n // zero the deleted element's index\r\n items[_contractName].nameIndex = 0;\r\n\r\n // dispatch the address update event\r\n emit AddressUpdate(_contractName, address(0));\r\n }\r\n\r\n /**\r\n * @dev utility, converts bytes32 to a string\r\n * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\r\n *\r\n * @return string representation of the given bytes32 argument\r\n */\r\n function bytes32ToString(bytes32 _bytes) private pure returns (string memory) {\r\n bytes memory byteArray = new bytes(32);\r\n for (uint256 i = 0; i < 32; i++) {\r\n byteArray[i] = _bytes[i];\r\n }\r\n\r\n return string(byteArray);\r\n }\r\n\r\n /**\r\n * @dev utility, converts string to bytes32\r\n * note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\r\n *\r\n * @return string representation of the given bytes32 argument\r\n */\r\n function stringToBytes32(string memory _string) private pure returns (bytes32) {\r\n bytes32 result;\r\n assembly {\r\n result := mload(add(_string,32))\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * @dev deprecated, backward compatibility\r\n */\r\n function getAddress(bytes32 _contractName) public view returns (address) {\r\n return addressOf(_contractName);\r\n }\r\n}\r\n",
|
|
"sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistry.sol",
|
|
"ast": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistry.sol",
|
|
"exportedSymbols": {
|
|
"ContractRegistry": [
|
|
21514
|
|
]
|
|
},
|
|
"id": 21515,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 21214,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:55"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol",
|
|
"file": "./Owned.sol",
|
|
"id": 21215,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 21819,
|
|
"src": "77:21:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Utils.sol",
|
|
"file": "./Utils.sol",
|
|
"id": 21216,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 22662,
|
|
"src": "100:21:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol",
|
|
"file": "./interfaces/IContractRegistry.sol",
|
|
"id": 21217,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 22832,
|
|
"src": "123:44:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21219,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "662:17:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"id": 21220,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "662:17:55"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21221,
|
|
"name": "Owned",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21818,
|
|
"src": "681:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Owned_$21818",
|
|
"typeString": "contract Owned"
|
|
}
|
|
},
|
|
"id": 21222,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "681:5:55"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21223,
|
|
"name": "Utils",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22661,
|
|
"src": "688:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Utils_$22661",
|
|
"typeString": "contract Utils"
|
|
}
|
|
},
|
|
"id": 21224,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "688:5:55"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
21818,
|
|
22661,
|
|
22831,
|
|
22847
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 21218,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "171:460:55",
|
|
"text": " @dev Contract Registry\n The contract registry keeps contract addresses by name.\n The owner can update contract addresses so that a contract name always points to the latest version\n of the given contract.\n Other contracts can query the registry to get updated addresses instead of depending on specific\n addresses.\n Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs"
|
|
},
|
|
"fullyImplemented": true,
|
|
"id": 21514,
|
|
"linearizedBaseContracts": [
|
|
21514,
|
|
22661,
|
|
21818,
|
|
22847,
|
|
22831
|
|
],
|
|
"name": "ContractRegistry",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"canonicalName": "ContractRegistry.RegistryItem",
|
|
"id": 21229,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 21226,
|
|
"mutability": "mutable",
|
|
"name": "contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21229,
|
|
"src": "732:23:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21225,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "732:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21228,
|
|
"mutability": "mutable",
|
|
"name": "nameIndex",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21229,
|
|
"src": "789:17:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21227,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "789:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "RegistryItem",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 21514,
|
|
"src": "701:173:55",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21233,
|
|
"mutability": "mutable",
|
|
"name": "items",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21514,
|
|
"src": "882:47:55",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)"
|
|
},
|
|
"typeName": {
|
|
"id": 21232,
|
|
"keyType": {
|
|
"id": 21230,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "891:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "882:33:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 21231,
|
|
"name": "RegistryItem",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21229,
|
|
"src": "902:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "3ca6bb92",
|
|
"id": 21236,
|
|
"mutability": "mutable",
|
|
"name": "contractNames",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21514,
|
|
"src": "971:29:55",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 21234,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "971:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"id": 21235,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "971:8:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
|
|
"typeString": "string[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 21237,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1071:203:55",
|
|
"text": " @dev triggered when an address pointed to by a contract name is modified\n @param _contractName contract name\n @param _contractAddress new contract address"
|
|
},
|
|
"id": 21243,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 21242,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21239,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21243,
|
|
"src": "1300:29:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21238,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1300:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21241,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21243,
|
|
"src": "1331:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21240,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1331:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1299:57:55"
|
|
},
|
|
"src": "1280:77:55"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21252,
|
|
"nodeType": "Block",
|
|
"src": "1533:46:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21249,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "1551:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21250,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1551:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21248,
|
|
"id": 21251,
|
|
"nodeType": "Return",
|
|
"src": "1544:27:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21244,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1365:111:55",
|
|
"text": " @dev returns the number of items in the registry\n @return number of items"
|
|
},
|
|
"functionSelector": "6bfb0d01",
|
|
"id": 21253,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "itemCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21245,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1500:2:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21248,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21247,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21253,
|
|
"src": "1524:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21246,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1524:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1523:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "1482:97:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
22830
|
|
],
|
|
"body": {
|
|
"id": 21267,
|
|
"nodeType": "Block",
|
|
"src": "1858:62:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21262,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "1876:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21264,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21263,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21256,
|
|
"src": "1882:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1876:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21265,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "1876:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21261,
|
|
"id": 21266,
|
|
"nodeType": "Return",
|
|
"src": "1869:43:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21254,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1587:184:55",
|
|
"text": " @dev returns the address associated with the given contract name\n @param _contractName contract name\n @return contract address"
|
|
},
|
|
"functionSelector": "bb34534c",
|
|
"id": 21268,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "addressOf",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 21258,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "1831:8:55"
|
|
},
|
|
"parameters": {
|
|
"id": 21257,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21256,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21268,
|
|
"src": "1796:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21255,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1796:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1795:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21261,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21260,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21268,
|
|
"src": "1849:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21259,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1849:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1848:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "1777:143:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21337,
|
|
"nodeType": "Block",
|
|
"src": "2283:810:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 21285,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21282,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2329:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21283,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2329:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21284,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2352:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2329:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21286,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2355:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21281,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "2321:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21287,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2321:53:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21288,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2321:53:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21290
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21290,
|
|
"mutability": "mutable",
|
|
"name": "currentAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21337,
|
|
"src": "2429:22:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21289,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2429:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21295,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21291,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2454:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21293,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21292,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2460:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2454:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21294,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "2454:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2429:61:55"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21296,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2505:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21297,
|
|
"name": "currentAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21290,
|
|
"src": "2525:14:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2505:34:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21300,
|
|
"nodeType": "IfStatement",
|
|
"src": "2501:60:55",
|
|
"trueBody": {
|
|
"expression": null,
|
|
"functionReturnParameters": 21280,
|
|
"id": 21299,
|
|
"nodeType": "Return",
|
|
"src": "2554:7:55"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21306,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21301,
|
|
"name": "currentAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21290,
|
|
"src": "2577:14:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21304,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2603:1:55",
|
|
"subdenomination": null,
|
|
"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": 21303,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2595:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21302,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2595:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2595:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "2577:28:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21324,
|
|
"nodeType": "IfStatement",
|
|
"src": "2573:288:55",
|
|
"trueBody": {
|
|
"id": 21323,
|
|
"nodeType": "Block",
|
|
"src": "2607:254:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21307,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2674:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21309,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21308,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2680:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2674:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21310,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "2674:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21311,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "2707:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21312,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2707:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2674:53:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21314,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2674:53:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21319,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2834:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 21318,
|
|
"name": "bytes32ToString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21485,
|
|
"src": "2818:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$",
|
|
"typeString": "function (bytes32) pure returns (string memory)"
|
|
}
|
|
},
|
|
"id": 21320,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2818:30:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21315,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "2799:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21317,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "push",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2799:18:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$__$",
|
|
"typeString": "function (string storage ref)"
|
|
}
|
|
},
|
|
"id": 21321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2799:50:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21322,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2799:50:55"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21330,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21325,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2920:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21327,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21326,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2926:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2920:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21328,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "2920:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21329,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2959:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2920:55:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 21331,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2920:55:55"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21333,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "3053:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21334,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "3068:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 21332,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21243,
|
|
"src": "3039:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
|
|
"typeString": "function (bytes32,address)"
|
|
}
|
|
},
|
|
"id": 21335,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3039:46:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21336,
|
|
"nodeType": "EmitStatement",
|
|
"src": "3034:51:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21269,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1928:195:55",
|
|
"text": " @dev registers a new address for the contract name in the registry\n @param _contractName contract name\n @param _contractAddress contract address"
|
|
},
|
|
"functionSelector": "662de379",
|
|
"id": 21338,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 21276,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21275,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "2228:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "2228:9:55"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21278,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2260:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 21279,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21277,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "2247:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "2247:30:55"
|
|
}
|
|
],
|
|
"name": "registerAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21274,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21271,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21338,
|
|
"src": "2154:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21270,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2154:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21273,
|
|
"mutability": "mutable",
|
|
"name": "_contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21338,
|
|
"src": "2177:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21272,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2177:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2153:49:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21280,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "2283:0:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "2129:964:55",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21443,
|
|
"nodeType": "Block",
|
|
"src": "3307:1327:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 21350,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21347,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3353:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21348,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3353:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21349,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3376:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "3353:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21351,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3379:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21346,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3345:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21352,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3345:53:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21353,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3345:53:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21363,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21355,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "3417:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21357,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21356,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3423:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3417:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21358,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "3417:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21361,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3465:1:55",
|
|
"subdenomination": null,
|
|
"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": 21360,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3457:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21359,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3457:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3457:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "3417:50:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21364,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3469:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21354,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3409:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21365,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3409:79:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21366,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3409:79:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21367,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "3550:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21369,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21368,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3556:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3550:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21370,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "3550:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21373,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3597:1:55",
|
|
"subdenomination": null,
|
|
"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": 21372,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3589:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21371,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3589:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21374,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3589:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "3550:49:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 21376,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3550:49:55"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21380,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21377,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3862:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21378,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3862:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 21379,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3885:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "3862:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21422,
|
|
"nodeType": "IfStatement",
|
|
"src": "3858:488:55",
|
|
"trueBody": {
|
|
"id": 21421,
|
|
"nodeType": "Block",
|
|
"src": "3888:458:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21382
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21382,
|
|
"mutability": "mutable",
|
|
"name": "lastContractNameString",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "3903:36:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21381,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3903:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21389,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21383,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3942:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21388,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21387,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21384,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3956:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21385,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3956:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 21386,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3979:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "3956:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3942:39:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3903:78:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21391
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21391,
|
|
"mutability": "mutable",
|
|
"name": "unregisterIndex",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "3996:23:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21390,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3996:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21396,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21392,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4022:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21394,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21393,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4028:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4022:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21395,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4022:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3996:56:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21401,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21397,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "4069:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21399,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21398,
|
|
"name": "unregisterIndex",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21391,
|
|
"src": "4083:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4069:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21400,
|
|
"name": "lastContractNameString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21382,
|
|
"src": "4102:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"src": "4069:55:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"id": 21402,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4069:55:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21404
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21404,
|
|
"mutability": "mutable",
|
|
"name": "lastContractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "4139:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21403,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4139:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21408,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21406,
|
|
"name": "lastContractNameString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21382,
|
|
"src": "4182:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"id": 21405,
|
|
"name": "stringToBytes32",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21500,
|
|
"src": "4166:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (string memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 21407,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4166:39:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4139:66:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21410
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21410,
|
|
"mutability": "mutable",
|
|
"name": "registryItem",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "4220:33:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 21409,
|
|
"name": "RegistryItem",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21229,
|
|
"src": "4220:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21414,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21411,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4256:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21413,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21412,
|
|
"name": "lastContractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21404,
|
|
"src": "4262:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4256:23:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4220:59:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21419,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21415,
|
|
"name": "registryItem",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21410,
|
|
"src": "4294:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage pointer"
|
|
}
|
|
},
|
|
"id": 21417,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4294:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21418,
|
|
"name": "unregisterIndex",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21391,
|
|
"src": "4319:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4294:40:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21420,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4294:40:55"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21423,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "4413:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21425,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "pop",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "4413:17:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 21426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4413:19:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21427,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4413:19:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21433,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21428,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4488:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21430,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21429,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4494:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4488:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21431,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4488:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21432,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4521:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "4488:34:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21434,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4488:34:55"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21436,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4600:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4623:1:55",
|
|
"subdenomination": null,
|
|
"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": 21438,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4615:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21437,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4615:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4615:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 21435,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21243,
|
|
"src": "4586:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
|
|
"typeString": "function (bytes32,address)"
|
|
}
|
|
},
|
|
"id": 21441,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4586:40:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21442,
|
|
"nodeType": "EmitStatement",
|
|
"src": "4581:45:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21339,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3101:133:55",
|
|
"text": " @dev removes an existing contract address from the registry\n @param _contractName contract name"
|
|
},
|
|
"functionSelector": "2bbd9530",
|
|
"id": 21444,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 21344,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21343,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "3297:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3297:9:55"
|
|
}
|
|
],
|
|
"name": "unregisterAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21342,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21341,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21444,
|
|
"src": "3267:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21340,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3267:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3266:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21345,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3307:0:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "3240:1394:55",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21484,
|
|
"nodeType": "Block",
|
|
"src": "4950:188:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21453
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21453,
|
|
"mutability": "mutable",
|
|
"name": "byteArray",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21484,
|
|
"src": "4961:22:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 21452,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4961:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21458,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 21456,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4996:2:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
}
|
|
],
|
|
"id": 21455,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "4986:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"typeName": {
|
|
"id": 21454,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4990:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
}
|
|
},
|
|
"id": 21457,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4986:13:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4961:38:55"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21477,
|
|
"nodeType": "Block",
|
|
"src": "5043:51:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21475,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21469,
|
|
"name": "byteArray",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21453,
|
|
"src": "5058:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 21471,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21470,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5068:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5058:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21472,
|
|
"name": "_bytes",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21447,
|
|
"src": "5073:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21474,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21473,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5080:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5073:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"src": "5058:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"id": 21476,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5058:24:55"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21465,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21463,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5030:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 21464,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5034:2:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "5030:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 21478,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
21460
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21460,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21478,
|
|
"src": "5015:9:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21459,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5015:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21462,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21461,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5027:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5015:13:55"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21467,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "5038:3:55",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21466,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5038:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21468,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5038:3:55"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "5010:84:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21481,
|
|
"name": "byteArray",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21453,
|
|
"src": "5120:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 21480,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "5113:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
|
|
"typeString": "type(string storage pointer)"
|
|
},
|
|
"typeName": {
|
|
"id": 21479,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5113:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5113:17:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21451,
|
|
"id": 21483,
|
|
"nodeType": "Return",
|
|
"src": "5106:24:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21445,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4642:224:55",
|
|
"text": " @dev utility, converts bytes32 to a string\n note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n @return string representation of the given bytes32 argument"
|
|
},
|
|
"id": 21485,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "bytes32ToString",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21448,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21447,
|
|
"mutability": "mutable",
|
|
"name": "_bytes",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21485,
|
|
"src": "4897:14:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21446,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4897:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4896:16:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21451,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21450,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21485,
|
|
"src": "4935:13:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21449,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4935:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4934:15:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "4872:266:55",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21499,
|
|
"nodeType": "Block",
|
|
"src": "5453:134:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21494
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21494,
|
|
"mutability": "mutable",
|
|
"name": "result",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21499,
|
|
"src": "5464:14:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21493,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5464:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21495,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5464:14:55"
|
|
},
|
|
{
|
|
"AST": {
|
|
"nodeType": "YulBlock",
|
|
"src": "5498:58:55",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5513:32:55",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "_string",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5533:7:55"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5541:2:55",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5529:3:55"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5529:15:55"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mload",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5523:5:55"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5523:22:55"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "result",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5513:6:55"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"evmVersion": "istanbul",
|
|
"externalReferences": [
|
|
{
|
|
"declaration": 21488,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "5533:7:55",
|
|
"valueSize": 1
|
|
},
|
|
{
|
|
"declaration": 21494,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "5513:6:55",
|
|
"valueSize": 1
|
|
}
|
|
],
|
|
"id": 21496,
|
|
"nodeType": "InlineAssembly",
|
|
"src": "5489:67:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21497,
|
|
"name": "result",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21494,
|
|
"src": "5573:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21492,
|
|
"id": 21498,
|
|
"nodeType": "Return",
|
|
"src": "5566:13:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21486,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5146:222:55",
|
|
"text": " @dev utility, converts string to bytes32\n note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n @return string representation of the given bytes32 argument"
|
|
},
|
|
"id": 21500,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "stringToBytes32",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21489,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21488,
|
|
"mutability": "mutable",
|
|
"name": "_string",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21500,
|
|
"src": "5399:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21487,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5399:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5398:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21492,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21491,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21500,
|
|
"src": "5444:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21490,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5444:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5443:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "5374:213:55",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21512,
|
|
"nodeType": "Block",
|
|
"src": "5734:50:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21509,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21503,
|
|
"src": "5762:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 21508,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21268,
|
|
"src": "5752:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 21510,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5752:24:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21507,
|
|
"id": 21511,
|
|
"nodeType": "Return",
|
|
"src": "5745:31:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21501,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5595:60:55",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "21f8a721",
|
|
"id": 21513,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21504,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21503,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21513,
|
|
"src": "5681:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21502,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5681:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5680:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21507,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21506,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21513,
|
|
"src": "5725:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21505,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5725:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5724:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "5661:123:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 21515,
|
|
"src": "633:5154:55"
|
|
}
|
|
],
|
|
"src": "52:5737:55"
|
|
},
|
|
"legacyAST": {
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/ContractRegistry.sol",
|
|
"exportedSymbols": {
|
|
"ContractRegistry": [
|
|
21514
|
|
]
|
|
},
|
|
"id": 21515,
|
|
"license": "SEE LICENSE IN LICENSE",
|
|
"nodeType": "SourceUnit",
|
|
"nodes": [
|
|
{
|
|
"id": 21214,
|
|
"literals": [
|
|
"solidity",
|
|
"0.6",
|
|
".12"
|
|
],
|
|
"nodeType": "PragmaDirective",
|
|
"src": "52:23:55"
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol",
|
|
"file": "./Owned.sol",
|
|
"id": 21215,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 21819,
|
|
"src": "77:21:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Utils.sol",
|
|
"file": "./Utils.sol",
|
|
"id": 21216,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 22662,
|
|
"src": "100:21:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol",
|
|
"file": "./interfaces/IContractRegistry.sol",
|
|
"id": 21217,
|
|
"nodeType": "ImportDirective",
|
|
"scope": 21515,
|
|
"sourceUnit": 22832,
|
|
"src": "123:44:55",
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21219,
|
|
"name": "IContractRegistry",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22831,
|
|
"src": "662:17:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_IContractRegistry_$22831",
|
|
"typeString": "contract IContractRegistry"
|
|
}
|
|
},
|
|
"id": 21220,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "662:17:55"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21221,
|
|
"name": "Owned",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21818,
|
|
"src": "681:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Owned_$21818",
|
|
"typeString": "contract Owned"
|
|
}
|
|
},
|
|
"id": 21222,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "681:5:55"
|
|
},
|
|
{
|
|
"arguments": null,
|
|
"baseName": {
|
|
"contractScope": null,
|
|
"id": 21223,
|
|
"name": "Utils",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 22661,
|
|
"src": "688:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Utils_$22661",
|
|
"typeString": "contract Utils"
|
|
}
|
|
},
|
|
"id": 21224,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "688:5:55"
|
|
}
|
|
],
|
|
"contractDependencies": [
|
|
21818,
|
|
22661,
|
|
22831,
|
|
22847
|
|
],
|
|
"contractKind": "contract",
|
|
"documentation": {
|
|
"id": 21218,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "171:460:55",
|
|
"text": " @dev Contract Registry\n The contract registry keeps contract addresses by name.\n The owner can update contract addresses so that a contract name always points to the latest version\n of the given contract.\n Other contracts can query the registry to get updated addresses instead of depending on specific\n addresses.\n Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs"
|
|
},
|
|
"fullyImplemented": true,
|
|
"id": 21514,
|
|
"linearizedBaseContracts": [
|
|
21514,
|
|
22661,
|
|
21818,
|
|
22847,
|
|
22831
|
|
],
|
|
"name": "ContractRegistry",
|
|
"nodeType": "ContractDefinition",
|
|
"nodes": [
|
|
{
|
|
"canonicalName": "ContractRegistry.RegistryItem",
|
|
"id": 21229,
|
|
"members": [
|
|
{
|
|
"constant": false,
|
|
"id": 21226,
|
|
"mutability": "mutable",
|
|
"name": "contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21229,
|
|
"src": "732:23:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21225,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "732:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21228,
|
|
"mutability": "mutable",
|
|
"name": "nameIndex",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21229,
|
|
"src": "789:17:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21227,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "789:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"name": "RegistryItem",
|
|
"nodeType": "StructDefinition",
|
|
"scope": 21514,
|
|
"src": "701:173:55",
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21233,
|
|
"mutability": "mutable",
|
|
"name": "items",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21514,
|
|
"src": "882:47:55",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)"
|
|
},
|
|
"typeName": {
|
|
"id": 21232,
|
|
"keyType": {
|
|
"id": 21230,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "891:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "Mapping",
|
|
"src": "882:33:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem)"
|
|
},
|
|
"valueType": {
|
|
"contractScope": null,
|
|
"id": 21231,
|
|
"name": "RegistryItem",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21229,
|
|
"src": "902:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
}
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"functionSelector": "3ca6bb92",
|
|
"id": 21236,
|
|
"mutability": "mutable",
|
|
"name": "contractNames",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21514,
|
|
"src": "971:29:55",
|
|
"stateVariable": true,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string[]"
|
|
},
|
|
"typeName": {
|
|
"baseType": {
|
|
"id": 21234,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "971:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"id": 21235,
|
|
"length": null,
|
|
"nodeType": "ArrayTypeName",
|
|
"src": "971:8:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
|
|
"typeString": "string[]"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"documentation": {
|
|
"id": 21237,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1071:203:55",
|
|
"text": " @dev triggered when an address pointed to by a contract name is modified\n @param _contractName contract name\n @param _contractAddress new contract address"
|
|
},
|
|
"id": 21243,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "EventDefinition",
|
|
"parameters": {
|
|
"id": 21242,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21239,
|
|
"indexed": true,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21243,
|
|
"src": "1300:29:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21238,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1300:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21241,
|
|
"indexed": false,
|
|
"mutability": "mutable",
|
|
"name": "_contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21243,
|
|
"src": "1331:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21240,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1331:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1299:57:55"
|
|
},
|
|
"src": "1280:77:55"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21252,
|
|
"nodeType": "Block",
|
|
"src": "1533:46:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21249,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "1551:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21250,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "1551:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21248,
|
|
"id": 21251,
|
|
"nodeType": "Return",
|
|
"src": "1544:27:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21244,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1365:111:55",
|
|
"text": " @dev returns the number of items in the registry\n @return number of items"
|
|
},
|
|
"functionSelector": "6bfb0d01",
|
|
"id": 21253,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "itemCount",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21245,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "1500:2:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21248,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21247,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21253,
|
|
"src": "1524:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21246,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1524:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1523:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "1482:97:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"baseFunctions": [
|
|
22830
|
|
],
|
|
"body": {
|
|
"id": 21267,
|
|
"nodeType": "Block",
|
|
"src": "1858:62:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21262,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "1876:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21264,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21263,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21256,
|
|
"src": "1882:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "1876:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21265,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "1876:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21261,
|
|
"id": 21266,
|
|
"nodeType": "Return",
|
|
"src": "1869:43:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21254,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1587:184:55",
|
|
"text": " @dev returns the address associated with the given contract name\n @param _contractName contract name\n @return contract address"
|
|
},
|
|
"functionSelector": "bb34534c",
|
|
"id": 21268,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "addressOf",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": {
|
|
"id": 21258,
|
|
"nodeType": "OverrideSpecifier",
|
|
"overrides": [],
|
|
"src": "1831:8:55"
|
|
},
|
|
"parameters": {
|
|
"id": 21257,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21256,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21268,
|
|
"src": "1796:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21255,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1796:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1795:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21261,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21260,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21268,
|
|
"src": "1849:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21259,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "1849:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "1848:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "1777:143:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21337,
|
|
"nodeType": "Block",
|
|
"src": "2283:810:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 21285,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21282,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2329:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21283,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2329:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21284,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2352:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "2329:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21286,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2355:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21281,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "2321:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21287,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2321:53:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21288,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2321:53:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21290
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21290,
|
|
"mutability": "mutable",
|
|
"name": "currentAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21337,
|
|
"src": "2429:22:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21289,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2429:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21295,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21291,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2454:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21293,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21292,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2460:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2454:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21294,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "2454:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "2429:61:55"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21298,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21296,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2505:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21297,
|
|
"name": "currentAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21290,
|
|
"src": "2525:14:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2505:34:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21300,
|
|
"nodeType": "IfStatement",
|
|
"src": "2501:60:55",
|
|
"trueBody": {
|
|
"expression": null,
|
|
"functionReturnParameters": 21280,
|
|
"id": 21299,
|
|
"nodeType": "Return",
|
|
"src": "2554:7:55"
|
|
}
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21306,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21301,
|
|
"name": "currentAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21290,
|
|
"src": "2577:14:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "==",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21304,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "2603:1:55",
|
|
"subdenomination": null,
|
|
"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": 21303,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "2595:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21302,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2595:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21305,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2595:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "2577:28:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21324,
|
|
"nodeType": "IfStatement",
|
|
"src": "2573:288:55",
|
|
"trueBody": {
|
|
"id": 21323,
|
|
"nodeType": "Block",
|
|
"src": "2607:254:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21313,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21307,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2674:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21309,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21308,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2680:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2674:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21310,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "2674:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21311,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "2707:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21312,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2707:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "2674:53:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21314,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2674:53:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21319,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2834:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 21318,
|
|
"name": "bytes32ToString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21485,
|
|
"src": "2818:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$",
|
|
"typeString": "function (bytes32) pure returns (string memory)"
|
|
}
|
|
},
|
|
"id": 21320,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2818:30:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21315,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "2799:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21317,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "push",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "2799:18:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypush_nonpayable$_t_string_storage_$returns$__$",
|
|
"typeString": "function (string storage ref)"
|
|
}
|
|
},
|
|
"id": 21321,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "2799:50:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21322,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2799:50:55"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21330,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21325,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "2920:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21327,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21326,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "2926:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "2920:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21328,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "2920:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21329,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2959:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"src": "2920:55:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 21331,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "2920:55:55"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21333,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21271,
|
|
"src": "3053:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21334,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "3068:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"id": 21332,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21243,
|
|
"src": "3039:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
|
|
"typeString": "function (bytes32,address)"
|
|
}
|
|
},
|
|
"id": 21335,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3039:46:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21336,
|
|
"nodeType": "EmitStatement",
|
|
"src": "3034:51:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21269,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "1928:195:55",
|
|
"text": " @dev registers a new address for the contract name in the registry\n @param _contractName contract name\n @param _contractAddress contract address"
|
|
},
|
|
"functionSelector": "662de379",
|
|
"id": 21338,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 21276,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21275,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "2228:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "2228:9:55"
|
|
},
|
|
{
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21278,
|
|
"name": "_contractAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21273,
|
|
"src": "2260:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"id": 21279,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21277,
|
|
"name": "validAddress",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 22618,
|
|
"src": "2247:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$_t_address_$",
|
|
"typeString": "modifier (address)"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "2247:30:55"
|
|
}
|
|
],
|
|
"name": "registerAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21274,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21271,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21338,
|
|
"src": "2154:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21270,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2154:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
},
|
|
{
|
|
"constant": false,
|
|
"id": 21273,
|
|
"mutability": "mutable",
|
|
"name": "_contractAddress",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21338,
|
|
"src": "2177:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21272,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "2177:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "2153:49:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21280,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "2283:0:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "2129:964:55",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21443,
|
|
"nodeType": "Block",
|
|
"src": "3307:1327:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
},
|
|
"id": 21350,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21347,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3353:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21348,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3353:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint8",
|
|
"typeString": "uint8"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21349,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3376:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "3353:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21351,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3379:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21346,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3345:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21352,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3345:53:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21353,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3345:53:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"id": 21363,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21355,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "3417:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21357,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21356,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3423:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3417:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21358,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "3417:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "!=",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21361,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3465:1:55",
|
|
"subdenomination": null,
|
|
"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": 21360,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3457:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21359,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3457:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21362,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3457:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "3417:50:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "4552525f494e56414c49445f4e414d45",
|
|
"id": 21364,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3469:18:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
},
|
|
"value": "ERR_INVALID_NAME"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_stringliteral_8c31b897cf1b4c41d9a3a2c9019700f5d8d0c36c906997985403c8f4610f8246",
|
|
"typeString": "literal_string \"ERR_INVALID_NAME\""
|
|
}
|
|
],
|
|
"id": 21354,
|
|
"name": "require",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [
|
|
-18,
|
|
-18
|
|
],
|
|
"referencedDeclaration": -18,
|
|
"src": "3409:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (bool,string memory) pure"
|
|
}
|
|
},
|
|
"id": 21365,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3409:79:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21366,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3409:79:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21375,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21367,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "3550:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21369,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21368,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "3556:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3550:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21370,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "contractAddress",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21226,
|
|
"src": "3550:36:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21373,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3597:1:55",
|
|
"subdenomination": null,
|
|
"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": 21372,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "3589:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21371,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3589:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21374,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "3589:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
},
|
|
"src": "3550:49:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"id": 21376,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "3550:49:55"
|
|
},
|
|
{
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21380,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21377,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3862:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21378,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3862:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": ">",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 21379,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3885:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "3862:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"falseBody": null,
|
|
"id": 21422,
|
|
"nodeType": "IfStatement",
|
|
"src": "3858:488:55",
|
|
"trueBody": {
|
|
"id": 21421,
|
|
"nodeType": "Block",
|
|
"src": "3888:458:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21382
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21382,
|
|
"mutability": "mutable",
|
|
"name": "lastContractNameString",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "3903:36:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21381,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3903:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21389,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21383,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3942:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21388,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21387,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21384,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "3956:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21385,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "length",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "3956:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "-",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "31",
|
|
"id": 21386,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "3979:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
},
|
|
"src": "3956:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "3942:39:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3903:78:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21391
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21391,
|
|
"mutability": "mutable",
|
|
"name": "unregisterIndex",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "3996:23:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21390,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3996:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21396,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21392,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4022:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21394,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21393,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4028:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4022:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21395,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4022:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "3996:56:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21401,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21397,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "4069:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21399,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21398,
|
|
"name": "unregisterIndex",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21391,
|
|
"src": "4083:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4069:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21400,
|
|
"name": "lastContractNameString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21382,
|
|
"src": "4102:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"src": "4069:55:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage",
|
|
"typeString": "string storage ref"
|
|
}
|
|
},
|
|
"id": 21402,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4069:55:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21404
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21404,
|
|
"mutability": "mutable",
|
|
"name": "lastContractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "4139:24:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21403,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4139:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21408,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21406,
|
|
"name": "lastContractNameString",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21382,
|
|
"src": "4182:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
],
|
|
"id": 21405,
|
|
"name": "stringToBytes32",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21500,
|
|
"src": "4166:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (string memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 21407,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4166:39:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4139:66:55"
|
|
},
|
|
{
|
|
"assignments": [
|
|
21410
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21410,
|
|
"mutability": "mutable",
|
|
"name": "registryItem",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21421,
|
|
"src": "4220:33:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "storage",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
},
|
|
"typeName": {
|
|
"contractScope": null,
|
|
"id": 21409,
|
|
"name": "RegistryItem",
|
|
"nodeType": "UserDefinedTypeName",
|
|
"referencedDeclaration": 21229,
|
|
"src": "4220:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21414,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21411,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4256:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21413,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21412,
|
|
"name": "lastContractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21404,
|
|
"src": "4262:16:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4256:23:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4220:59:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21419,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21415,
|
|
"name": "registryItem",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21410,
|
|
"src": "4294:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage_ptr",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage pointer"
|
|
}
|
|
},
|
|
"id": 21417,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4294:22:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"id": 21418,
|
|
"name": "unregisterIndex",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21391,
|
|
"src": "4319:15:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"src": "4294:40:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21420,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4294:40:55"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21423,
|
|
"name": "contractNames",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21236,
|
|
"src": "4413:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_array$_t_string_storage_$dyn_storage",
|
|
"typeString": "string storage ref[] storage ref"
|
|
}
|
|
},
|
|
"id": 21425,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberName": "pop",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": null,
|
|
"src": "4413:17:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
|
|
"typeString": "function ()"
|
|
}
|
|
},
|
|
"id": 21426,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4413:19:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21427,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4413:19:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21433,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21428,
|
|
"name": "items",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21233,
|
|
"src": "4488:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RegistryItem_$21229_storage_$",
|
|
"typeString": "mapping(bytes32 => struct ContractRegistry.RegistryItem storage ref)"
|
|
}
|
|
},
|
|
"id": 21430,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21429,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4494:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "4488:20:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_struct$_RegistryItem_$21229_storage",
|
|
"typeString": "struct ContractRegistry.RegistryItem storage ref"
|
|
}
|
|
},
|
|
"id": 21431,
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"memberName": "nameIndex",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 21228,
|
|
"src": "4488:30:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21432,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4521:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"src": "4488:34:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21434,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "4488:34:55"
|
|
},
|
|
{
|
|
"eventCall": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21436,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21341,
|
|
"src": "4600:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
{
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21439,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4623:1:55",
|
|
"subdenomination": null,
|
|
"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": 21438,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "4615:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 21437,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4615:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21440,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4615:10:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
{
|
|
"typeIdentifier": "t_address_payable",
|
|
"typeString": "address payable"
|
|
}
|
|
],
|
|
"id": 21435,
|
|
"name": "AddressUpdate",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21243,
|
|
"src": "4586:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
|
|
"typeString": "function (bytes32,address)"
|
|
}
|
|
},
|
|
"id": 21441,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4586:40:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 21442,
|
|
"nodeType": "EmitStatement",
|
|
"src": "4581:45:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21339,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "3101:133:55",
|
|
"text": " @dev removes an existing contract address from the registry\n @param _contractName contract name"
|
|
},
|
|
"functionSelector": "2bbd9530",
|
|
"id": 21444,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [
|
|
{
|
|
"arguments": null,
|
|
"id": 21344,
|
|
"modifierName": {
|
|
"argumentTypes": null,
|
|
"id": 21343,
|
|
"name": "ownerOnly",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21754,
|
|
"src": "3297:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_modifier$__$",
|
|
"typeString": "modifier ()"
|
|
}
|
|
},
|
|
"nodeType": "ModifierInvocation",
|
|
"src": "3297:9:55"
|
|
}
|
|
],
|
|
"name": "unregisterAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21342,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21341,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21444,
|
|
"src": "3267:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21340,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "3267:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "3266:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21345,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "3307:0:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "3240:1394:55",
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21484,
|
|
"nodeType": "Block",
|
|
"src": "4950:188:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21453
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21453,
|
|
"mutability": "mutable",
|
|
"name": "byteArray",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21484,
|
|
"src": "4961:22:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes"
|
|
},
|
|
"typeName": {
|
|
"id": 21452,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4961:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21458,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 21456,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "4996:2:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
}
|
|
],
|
|
"id": 21455,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "4986:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function (uint256) pure returns (bytes memory)"
|
|
},
|
|
"typeName": {
|
|
"id": 21454,
|
|
"name": "bytes",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4990:5:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_storage_ptr",
|
|
"typeString": "bytes"
|
|
}
|
|
}
|
|
},
|
|
"id": 21457,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "4986:13:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "4961:38:55"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21477,
|
|
"nodeType": "Block",
|
|
"src": "5043:51:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21475,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21469,
|
|
"name": "byteArray",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21453,
|
|
"src": "5058:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
},
|
|
"id": 21471,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21470,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5068:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": true,
|
|
"isPure": false,
|
|
"lValueRequested": true,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5058:12:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"nodeType": "Assignment",
|
|
"operator": "=",
|
|
"rightHandSide": {
|
|
"argumentTypes": null,
|
|
"baseExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21472,
|
|
"name": "_bytes",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21447,
|
|
"src": "5073:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"id": 21474,
|
|
"indexExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21473,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5080:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "IndexAccess",
|
|
"src": "5073:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"src": "5058:24:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes1",
|
|
"typeString": "bytes1"
|
|
}
|
|
},
|
|
"id": 21476,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5058:24:55"
|
|
}
|
|
]
|
|
},
|
|
"condition": {
|
|
"argumentTypes": null,
|
|
"commonType": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"id": 21465,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"leftExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21463,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5030:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "BinaryOperation",
|
|
"operator": "<",
|
|
"rightExpression": {
|
|
"argumentTypes": null,
|
|
"hexValue": "3332",
|
|
"id": 21464,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5034:2:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_32_by_1",
|
|
"typeString": "int_const 32"
|
|
},
|
|
"value": "32"
|
|
},
|
|
"src": "5030:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bool",
|
|
"typeString": "bool"
|
|
}
|
|
},
|
|
"id": 21478,
|
|
"initializationExpression": {
|
|
"assignments": [
|
|
21460
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21460,
|
|
"mutability": "mutable",
|
|
"name": "i",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21478,
|
|
"src": "5015:9:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 21459,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5015:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21462,
|
|
"initialValue": {
|
|
"argumentTypes": null,
|
|
"hexValue": "30",
|
|
"id": 21461,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "5027:1:55",
|
|
"subdenomination": null,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_0_by_1",
|
|
"typeString": "int_const 0"
|
|
},
|
|
"value": "0"
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5015:13:55"
|
|
},
|
|
"loopExpression": {
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21467,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "UnaryOperation",
|
|
"operator": "++",
|
|
"prefix": false,
|
|
"src": "5038:3:55",
|
|
"subExpression": {
|
|
"argumentTypes": null,
|
|
"id": 21466,
|
|
"name": "i",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21460,
|
|
"src": "5038:1:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"id": 21468,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "5038:3:55"
|
|
},
|
|
"nodeType": "ForStatement",
|
|
"src": "5010:84:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21481,
|
|
"name": "byteArray",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21453,
|
|
"src": "5120:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 21480,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "5113:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
|
|
"typeString": "type(string storage pointer)"
|
|
},
|
|
"typeName": {
|
|
"id": 21479,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5113:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": null,
|
|
"typeString": null
|
|
}
|
|
}
|
|
},
|
|
"id": 21482,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5113:17:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string memory"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21451,
|
|
"id": 21483,
|
|
"nodeType": "Return",
|
|
"src": "5106:24:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21445,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "4642:224:55",
|
|
"text": " @dev utility, converts bytes32 to a string\n note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n @return string representation of the given bytes32 argument"
|
|
},
|
|
"id": 21485,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "bytes32ToString",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21448,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21447,
|
|
"mutability": "mutable",
|
|
"name": "_bytes",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21485,
|
|
"src": "4897:14:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21446,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4897:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4896:16:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21451,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21450,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21485,
|
|
"src": "4935:13:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21449,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "4935:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "4934:15:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "4872:266:55",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21499,
|
|
"nodeType": "Block",
|
|
"src": "5453:134:55",
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
21494
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 21494,
|
|
"mutability": "mutable",
|
|
"name": "result",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21499,
|
|
"src": "5464:14:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21493,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5464:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 21495,
|
|
"initialValue": null,
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "5464:14:55"
|
|
},
|
|
{
|
|
"AST": {
|
|
"nodeType": "YulBlock",
|
|
"src": "5498:58:55",
|
|
"statements": [
|
|
{
|
|
"nodeType": "YulAssignment",
|
|
"src": "5513:32:55",
|
|
"value": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"name": "_string",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5533:7:55"
|
|
},
|
|
{
|
|
"kind": "number",
|
|
"nodeType": "YulLiteral",
|
|
"src": "5541:2:55",
|
|
"type": "",
|
|
"value": "32"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "add",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5529:3:55"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5529:15:55"
|
|
}
|
|
],
|
|
"functionName": {
|
|
"name": "mload",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5523:5:55"
|
|
},
|
|
"nodeType": "YulFunctionCall",
|
|
"src": "5523:22:55"
|
|
},
|
|
"variableNames": [
|
|
{
|
|
"name": "result",
|
|
"nodeType": "YulIdentifier",
|
|
"src": "5513:6:55"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"evmVersion": "istanbul",
|
|
"externalReferences": [
|
|
{
|
|
"declaration": 21488,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "5533:7:55",
|
|
"valueSize": 1
|
|
},
|
|
{
|
|
"declaration": 21494,
|
|
"isOffset": false,
|
|
"isSlot": false,
|
|
"src": "5513:6:55",
|
|
"valueSize": 1
|
|
}
|
|
],
|
|
"id": 21496,
|
|
"nodeType": "InlineAssembly",
|
|
"src": "5489:67:55"
|
|
},
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"id": 21497,
|
|
"name": "result",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21494,
|
|
"src": "5573:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21492,
|
|
"id": 21498,
|
|
"nodeType": "Return",
|
|
"src": "5566:13:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21486,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5146:222:55",
|
|
"text": " @dev utility, converts string to bytes32\n note that the bytes32 argument is assumed to be UTF8 encoded ASCII string\n @return string representation of the given bytes32 argument"
|
|
},
|
|
"id": 21500,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "stringToBytes32",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21489,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21488,
|
|
"mutability": "mutable",
|
|
"name": "_string",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21500,
|
|
"src": "5399:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "memory",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_memory_ptr",
|
|
"typeString": "string"
|
|
},
|
|
"typeName": {
|
|
"id": 21487,
|
|
"name": "string",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5399:6:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_string_storage_ptr",
|
|
"typeString": "string"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5398:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21492,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21491,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21500,
|
|
"src": "5444:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21490,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5444:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5443:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "5374:213:55",
|
|
"stateMutability": "pure",
|
|
"virtual": false,
|
|
"visibility": "private"
|
|
},
|
|
{
|
|
"body": {
|
|
"id": 21512,
|
|
"nodeType": "Block",
|
|
"src": "5734:50:55",
|
|
"statements": [
|
|
{
|
|
"expression": {
|
|
"argumentTypes": null,
|
|
"arguments": [
|
|
{
|
|
"argumentTypes": null,
|
|
"id": 21509,
|
|
"name": "_contractName",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21503,
|
|
"src": "5762:13:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
],
|
|
"id": 21508,
|
|
"name": "addressOf",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 21268,
|
|
"src": "5752:9:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
|
|
"typeString": "function (bytes32) view returns (address)"
|
|
}
|
|
},
|
|
"id": 21510,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "5752:24:55",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"functionReturnParameters": 21507,
|
|
"id": 21511,
|
|
"nodeType": "Return",
|
|
"src": "5745:31:55"
|
|
}
|
|
]
|
|
},
|
|
"documentation": {
|
|
"id": 21501,
|
|
"nodeType": "StructuredDocumentation",
|
|
"src": "5595:60:55",
|
|
"text": " @dev deprecated, backward compatibility"
|
|
},
|
|
"functionSelector": "21f8a721",
|
|
"id": 21513,
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "getAddress",
|
|
"nodeType": "FunctionDefinition",
|
|
"overrides": null,
|
|
"parameters": {
|
|
"id": 21504,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21503,
|
|
"mutability": "mutable",
|
|
"name": "_contractName",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21513,
|
|
"src": "5681:21:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
},
|
|
"typeName": {
|
|
"id": 21502,
|
|
"name": "bytes32",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5681:7:55",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5680:23:55"
|
|
},
|
|
"returnParameters": {
|
|
"id": 21507,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [
|
|
{
|
|
"constant": false,
|
|
"id": 21506,
|
|
"mutability": "mutable",
|
|
"name": "",
|
|
"nodeType": "VariableDeclaration",
|
|
"overrides": null,
|
|
"scope": 21513,
|
|
"src": "5725:7:55",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
},
|
|
"typeName": {
|
|
"id": 21505,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "5725:7:55",
|
|
"stateMutability": "nonpayable",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
},
|
|
"value": null,
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"src": "5724:9:55"
|
|
},
|
|
"scope": 21514,
|
|
"src": "5661:123:55",
|
|
"stateMutability": "view",
|
|
"virtual": false,
|
|
"visibility": "public"
|
|
}
|
|
],
|
|
"scope": 21515,
|
|
"src": "633:5154:55"
|
|
}
|
|
],
|
|
"src": "52:5737:55"
|
|
},
|
|
"compiler": {
|
|
"name": "solc",
|
|
"version": "0.6.12+commit.27d51765.Emscripten.clang"
|
|
},
|
|
"networks": {
|
|
"42": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xb708175e3f6Cd850643aAF7B32212AFad50e2549",
|
|
"transactionHash": "0x7bfc81b1fc45e33d018be4e91281ebc6bc7a4ac8a9b497afcc752f5630e2261c"
|
|
},
|
|
"8995": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xb708175e3f6Cd850643aAF7B32212AFad50e2549",
|
|
"transactionHash": "0x7bfc81b1fc45e33d018be4e91281ebc6bc7a4ac8a9b497afcc752f5630e2261c"
|
|
},
|
|
"1604964387852": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xc02Bb59ae88eb23a23BadC0B9E5206Dcdc88C02f",
|
|
"transactionHash": "0xdbff2a9f16cb2962b0c8c078daa2bcad8b67e4995d1fc9dd5f09648a0dabfd4b"
|
|
},
|
|
"1604964469407": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0x4d0C2eA383F8dDbfAFea0FB92c3fE49BdE5d9725",
|
|
"transactionHash": "0x86bd2cd8b9b3d3cc5c3766e9e7724d3b6adf84d8e0e48a85c22fb9e8181c9cd4"
|
|
},
|
|
"1604965528035": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xba5D674F1bF01d7125a840220B0A86a5D7556705",
|
|
"transactionHash": "0xdcd69e9e046456adeb407f3dedfb8bcfe1961703f4fa3c020a492ffb3c2647a9"
|
|
},
|
|
"1604965645554": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0x2DE84749B53AA2237994AF994f22efaE23Bf59d9",
|
|
"transactionHash": "0x4573c86c34cd809a0128f51e100e3691d1f28e0f8be050cca73536ed65b4fb79"
|
|
},
|
|
"1604965679541": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xbb43041Ae115e5f0362E807Cb42C44a4ce61F5d3",
|
|
"transactionHash": "0x1f993195a776168143b5cb56e533e3305f2b918487a279c77aa4514f9202c46d"
|
|
},
|
|
"1604965719492": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xd52Fb83Cf4f03b8D844F29E1C6F795ca0AA58fEC",
|
|
"transactionHash": "0xc317e282d0029b1d40b173ac4649df78ad4a520665808d23e490f3ee5f0d7c1c"
|
|
},
|
|
"1604965760834": {
|
|
"events": {
|
|
"0xfc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "_contractName",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "_contractAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressUpdate",
|
|
"type": "event"
|
|
},
|
|
"0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_prevOwner",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "_newOwner",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "OwnerUpdate",
|
|
"type": "event"
|
|
}
|
|
},
|
|
"links": {},
|
|
"address": "0xd316Dd5DA5F7C63D2173a392caB18973813daF13",
|
|
"transactionHash": "0x20d414c1f386f14abd52d0e8d495cc65b4469b31bd7b10b0f64b0e0cda0b389b"
|
|
}
|
|
},
|
|
"schemaVersion": "3.2.3",
|
|
"updatedAt": "2020-11-10T14:20:44.715Z",
|
|
"networkType": "ethereum",
|
|
"devdoc": {
|
|
"details": "Contract Registry The contract registry keeps contract addresses by name. The owner can update contract addresses so that a contract name always points to the latest version of the given contract. Other contracts can query the registry to get updated addresses instead of depending on specific addresses. Note that contract names are limited to 32 bytes UTF8 encoded ASCII strings to optimize gas costs",
|
|
"events": {
|
|
"AddressUpdate(bytes32,address)": {
|
|
"details": "triggered when an address pointed to by a contract name is modified",
|
|
"params": {
|
|
"_contractAddress": "new contract address",
|
|
"_contractName": "contract name"
|
|
}
|
|
}
|
|
},
|
|
"kind": "dev",
|
|
"methods": {
|
|
"acceptOwnership()": {
|
|
"details": "used by a new owner to accept an ownership transfer"
|
|
},
|
|
"addressOf(bytes32)": {
|
|
"details": "returns the address associated with the given contract name",
|
|
"params": {
|
|
"_contractName": "contract name"
|
|
},
|
|
"returns": {
|
|
"_0": "contract address"
|
|
}
|
|
},
|
|
"getAddress(bytes32)": {
|
|
"details": "deprecated, backward compatibility"
|
|
},
|
|
"itemCount()": {
|
|
"details": "returns the number of items in the registry",
|
|
"returns": {
|
|
"_0": "number of items"
|
|
}
|
|
},
|
|
"registerAddress(bytes32,address)": {
|
|
"details": "registers a new address for the contract name in the registry",
|
|
"params": {
|
|
"_contractAddress": "contract address",
|
|
"_contractName": "contract name"
|
|
}
|
|
},
|
|
"transferOwnership(address)": {
|
|
"details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner",
|
|
"params": {
|
|
"_newOwner": "new contract owner"
|
|
}
|
|
},
|
|
"unregisterAddress(bytes32)": {
|
|
"details": "removes an existing contract address from the registry",
|
|
"params": {
|
|
"_contractName": "contract name"
|
|
}
|
|
}
|
|
},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
} |