@ethsub/sol
Version:
ethsub contracts
1,068 lines • 175 kB
JSON
{
"contractName": "HandlerRevert",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "bridgeAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "_bridgeAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "_burnList",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "_contractWhitelist",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "_resourceIDToTokenContractAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "_tokenContractAddressToResourceID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "setBurnable",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "resourceID",
"type": "bytes32"
},
{
"internalType": "address",
"name": "contractAddress",
"type": "address"
}
],
"name": "setResource",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "executeProposal",
"outputs": [],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "virtualIncreaseBalance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridgeAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"_bridgeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_burnList\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_contractWhitelist\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"_resourceIDToTokenContractAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"_tokenContractAddressToResourceID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"executeProposal\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setBurnable\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"resourceID\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"setResource\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"virtualIncreaseBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"setBurnable(address)\":{\"params\":{\"contractAddress\":\"Address of contract to be used when making or executing deposits.\"}},\"setResource(bytes32,address)\":{\"params\":{\"contractAddress\":\"Address of contract to be called when a deposit is made and a deposited is executed.\",\"resourceID\":\"ResourceID to be used when making deposits.\"}},\"withdraw(bytes)\":{\"params\":{\"data\":\"ABI-encoded withdrawal params relevant to the handler.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"setBurnable(address)\":{\"notice\":\"First verifies {contractAddress} is whitelisted, then sets {_burnList}[{contractAddress}] to true.\"},\"setResource(bytes32,address)\":{\"notice\":\"First verifies {_resourceIDToContractAddress}[{resourceID}] and {_contractAddressToResourceID}[{contractAddress}] are not already set, then sets {_resourceIDToContractAddress} with {contractAddress}, {_contractAddressToResourceID} with {resourceID}, and {_contractWhitelist} to true for {contractAddress}.\"},\"withdraw(bytes)\":{\"notice\":\"Withdraw funds from ERC safes.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/TestContracts.sol\":\"HandlerRevert\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/TestContracts.sol\":{\"keccak256\":\"0x60ff2c8c9a1e197a3b3a19820b8670c07c6c0ed638d90c5b3cfcffefca5607af\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://02ae5df1a136ca8cb7ac665495ba9ba34dd72133584ac2ec003cca99b0cfac65\",\"dweb:/ipfs/QmWGgSiviNBpBcP3KKSn6VEZeF7mNQkNzF3DapEQiWAwHf\"]},\"project:/contracts/handlers/HandlerHelpers.sol\":{\"keccak256\":\"0x9418d0646c373e028595a4a3abf5ac93948ea64efa031f1531c70a0500882d09\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://43e30989056cc8c5f0d2a26cb3a7e8a5d0d51dd2c832fb8d751c353226254871\",\"dweb:/ipfs/QmRpXPeLz7Qjh5qxMW4PyC8qkjrpEJCeCiqfobZyg28y6S\"]},\"project:/contracts/interfaces/IERCHandler.sol\":{\"keccak256\":\"0x4384276611a789db6481e1158d92c280fe5990ec0c375df30dd5e8f8a97cbb4c\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://3af488536c6d8f6b3090ca9b5fa54718941604a30f58bd66db641a6599a9f296\",\"dweb:/ipfs/QmSm988tQV4XtkCQpTbf2SbdCHp8AcjYZhQLhftPFXrUf2\"]},\"project:/contracts/utils/SafeCast.sol\":{\"keccak256\":\"0x07a3b86654f9e1a2d49822e82c7b98b8fe68767c21968c95951079c3048e82dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://21e7bc82101b94d832601e5e2707e25ed93e788e1a363196221748090aafbf30\",\"dweb:/ipfs/QmWcjBuFMXvGsicL3DgegAR6BEt7HnuN9SbSSUHEFWzybk\"]}},\"version\":1}",
"bytecode": "0x60a060405234801561001057600080fd5b506040516106133803806106138339818101604052602081101561003357600080fd5b5051606081901b6001600160601b0319166080526001600160a01b03166105a761006c6000398061033b528061041152506105a76000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637f79bea8116100665780637f79bea8146101ec578063b8fa373614610212578063c238eea11461023e578063c8ba6c871461025b578063e248cff2146102935761009e565b806307b7ed99146100a35780630968f264146100cb5780630a6d55d814610171578063318c136e146101aa5780636a70d081146101b2575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b031661030a565b005b6100c9600480360360208110156100e157600080fd5b8101906020810181356401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061031b945050505050565b61018e6004803603602081101561018757600080fd5b503561031e565b604080516001600160a01b039092168252519081900360200190f35b61018e610339565b6101d8600480360360208110156101c857600080fd5b50356001600160a01b031661035d565b604080519115158252519081900360200190f35b6101d86004803603602081101561020257600080fd5b50356001600160a01b0316610372565b6100c96004803603604081101561022857600080fd5b50803590602001356001600160a01b0316610387565b6100c96004803603602081101561025457600080fd5b503561039d565b6102816004803603602081101561027157600080fd5b50356001600160a01b03166103a2565b60408051918252519081900360200190f35b6100c9600480360360408110156102a957600080fd5b813591908101906040810160208201356401000000008111156102cb57600080fd5b8201836020820111156102dd57600080fd5b803590602001918460018302840111640100000000831117156102ff57600080fd5b5090925090506103b4565b610312610406565b61031b81610485565b50565b6000602081905290815260409020546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b61038f610406565b6103998282610500565b5050565b600455565b60016020526000908152604090205481565b600454610401576040805162461bcd60e51b815260206004820152601660248201527514dbdb595d1a1a5b99c8189859081a185c1c195b995960521b604482015290519081900360640190fd5b505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610483576040805162461bcd60e51b815260206004820152601e60248201527f73656e646572206d7573742062652062726964676520636f6e74726163740000604482015290519081900360640190fd5b565b6001600160a01b03811660009081526002602052604090205460ff166104dc5760405162461bcd60e51b815260040180806020018281038252602481526020018061054e6024913960400191505060405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b60008281526020818152604080832080546001600160a01b039095166001600160a01b0319909516851790559282526001808252838320949094556002905220805460ff1916909117905556fe70726f766964656420636f6e7472616374206973206e6f742077686974656c6973746564a264697066735822122055e54c300e68ab41df5e1916c7b8ac8ba4b909be61fcd7961e198ae57ecc660564736f6c634300060c0033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80637f79bea8116100665780637f79bea8146101ec578063b8fa373614610212578063c238eea11461023e578063c8ba6c871461025b578063e248cff2146102935761009e565b806307b7ed99146100a35780630968f264146100cb5780630a6d55d814610171578063318c136e146101aa5780636a70d081146101b2575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b031661030a565b005b6100c9600480360360208110156100e157600080fd5b8101906020810181356401000000008111156100fc57600080fd5b82018360208201111561010e57600080fd5b8035906020019184600183028401116401000000008311171561013057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061031b945050505050565b61018e6004803603602081101561018757600080fd5b503561031e565b604080516001600160a01b039092168252519081900360200190f35b61018e610339565b6101d8600480360360208110156101c857600080fd5b50356001600160a01b031661035d565b604080519115158252519081900360200190f35b6101d86004803603602081101561020257600080fd5b50356001600160a01b0316610372565b6100c96004803603604081101561022857600080fd5b50803590602001356001600160a01b0316610387565b6100c96004803603602081101561025457600080fd5b503561039d565b6102816004803603602081101561027157600080fd5b50356001600160a01b03166103a2565b60408051918252519081900360200190f35b6100c9600480360360408110156102a957600080fd5b813591908101906040810160208201356401000000008111156102cb57600080fd5b8201836020820111156102dd57600080fd5b803590602001918460018302840111640100000000831117156102ff57600080fd5b5090925090506103b4565b610312610406565b61031b81610485565b50565b6000602081905290815260409020546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020526000908152604090205460ff1681565b60026020526000908152604090205460ff1681565b61038f610406565b6103998282610500565b5050565b600455565b60016020526000908152604090205481565b600454610401576040805162461bcd60e51b815260206004820152601660248201527514dbdb595d1a1a5b99c8189859081a185c1c195b995960521b604482015290519081900360640190fd5b505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610483576040805162461bcd60e51b815260206004820152601e60248201527f73656e646572206d7573742062652062726964676520636f6e74726163740000604482015290519081900360640190fd5b565b6001600160a01b03811660009081526002602052604090205460ff166104dc5760405162461bcd60e51b815260040180806020018281038252602481526020018061054e6024913960400191505060405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b60008281526020818152604080832080546001600160a01b039095166001600160a01b0319909516851790559282526001808252838320949094556002905220805460ff1916909117905556fe70726f766964656420636f6e7472616374206973206e6f742077686974656c6973746564a264697066735822122055e54c300e68ab41df5e1916c7b8ac8ba4b909be61fcd7961e198ae57ecc660564736f6c634300060c0033",
"immutableReferences": {
"9652": [
{
"length": 32,
"start": 827
},
{
"length": 32,
"start": 1041
}
]
},
"sourceMap": "1634:463:42:-:0;;;1713:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1713:102:42;1045:30:48;;;;-1:-1:-1;;;;;;1045:30:48;;;-1:-1:-1;;;;;1634:463:42;;;;;;;;",
"deployedSourceMap": "1634:463:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:120:48;;;;;;;;;;;;;;;;-1:-1:-1;2170:120:48;-1:-1:-1;;;;;2170:120:48;;:::i;:::-;;2296:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2296:65:48;;-1:-1:-1;2296:65:48;;-1:-1:-1;;;;;2296:65:48:i;408:69::-;;;;;;;;;;;;;;;;-1:-1:-1;408:69:48;;:::i;:::-;;;;-1:-1:-1;;;;;408:69:48;;;;;;;;;;;;;;318:39;;;:::i;755:42::-;;;;;;;;;;;;;;;;-1:-1:-1;755:42:48;-1:-1:-1;;;;;755:42:48;;:::i;:::-;;;;;;;;;;;;;;;;;;652:51;;;;;;;;;;;;;;;;-1:-1:-1;652:51:48;-1:-1:-1;;;;;652:51:48;;:::i;1774:154::-;;;;;;;;;;;;;;;;-1:-1:-1;1774:154:48;;;;;;-1:-1:-1;;;;;1774:154:48;;:::i;2003:92:42:-;;;;;;;;;;;;;;;;-1:-1:-1;2003:92:42;;:::i;528:69:48:-;;;;;;;;;;;;;;;;-1:-1:-1;528:69:48;-1:-1:-1;;;;;528:69:48;;:::i;:::-;;;;;;;;;;;;;;;;1821:176:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1821:176:42;;-1:-1:-1;1821:176:42;-1:-1:-1;1821:176:42;:::i;2170:120:48:-;836:13;:11;:13::i;:::-;2254:29:::1;2267:15;2254:12;:29::i;:::-;2170:120:::0;:::o;408:69::-;;;;;;;;;;;;;-1:-1:-1;;;;;408:69:48;;:::o;318:39::-;;;:::o;755:42::-;;;;;;;;;;;;;;;:::o;652:51::-;;;;;;;;;;;;;;;:::o;1774:154::-;836:13;:11;:13::i;:::-;1880:41:::1;1893:10;1905:15;1880:12;:41::i;:::-;1774:154:::0;;:::o;2003:92:42:-;2067:12;:21;2003:92::o;528:69:48:-;;;;;;;;;;;;;:::o;1821:176:42:-;1899:12;;1895:80;;1932:32;;;-1:-1:-1;;;1932:32:42;;;;;;;;;;;;-1:-1:-1;;;1932:32:42;;;;;;;;;;;;;;1895:80;1821:176;;;:::o;1088:124:48:-;1142:10;-1:-1:-1;;;;;1156:14:48;1142:28;;1134:71;;;;;-1:-1:-1;;;1134:71:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;1088:124::o;2655:200::-;-1:-1:-1;;;;;2729:35:48;;;;;;:18;:35;;;;;;;;2721:84;;;;-1:-1:-1;;;2721:84:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2815:26:48;;;;;:9;:26;;;;;:33;;-1:-1:-1;;2815:33:48;2844:4;2815:33;;;2655:200::o;2367:282::-;2453:33;:45;;;;;;;;;;;:63;;-1:-1:-1;;;;;2453:63:48;;;-1:-1:-1;;;;;;2453:63:48;;;;;;;2526:50;;;2453:63;2526:50;;;;;;:63;;;;2600:18;:35;;;:42;;-1:-1:-1;;2600:42:48;;;;;;2367:282::o",
"source": "// SPDX-License-Identifier: LGPL-3.0-only\npragma solidity 0.6.12;\n\nimport \"./utils/SafeCast.sol\";\nimport \"./handlers/HandlerHelpers.sol\";\n\ncontract NoArgument {\n event NoArgumentCalled();\n\n function noArgument() external {\n emit NoArgumentCalled();\n }\n}\n\ncontract OneArgument {\n event OneArgumentCalled(uint256 indexed argumentOne);\n\n function oneArgument(uint256 argumentOne) external {\n emit OneArgumentCalled(argumentOne);\n }\n}\n\ncontract TwoArguments {\n event TwoArgumentsCalled(address[] argumentOne, bytes4 argumentTwo);\n\n function twoArguments(address[] calldata argumentOne, bytes4 argumentTwo) external {\n emit TwoArgumentsCalled(argumentOne, argumentTwo);\n }\n}\n\ncontract ThreeArguments {\n event ThreeArgumentsCalled(string argumentOne, int8 argumentTwo, bool argumentThree);\n\n function threeArguments(string calldata argumentOne, int8 argumentTwo, bool argumentThree) external {\n emit ThreeArgumentsCalled(argumentOne, argumentTwo, argumentThree);\n }\n}\n\ncontract WithDepositer {\n event WithDepositerCalled(address argumentOne, uint256 argumentTwo);\n\n function withDepositer(address argumentOne, uint256 argumentTwo) external {\n emit WithDepositerCalled(argumentOne, argumentTwo);\n }\n}\n\ncontract SafeCaster {\n using SafeCast for *;\n\n function toUint200(uint input) external pure returns(uint200) {\n return input.toUint200();\n }\n}\n\ncontract ReturnData {\n function returnData(string memory argument) external pure returns(bytes32 response) {\n assembly {\n response := mload(add(argument, 32))\n }\n }\n}\n\ncontract HandlerRevert is HandlerHelpers {\n uint private _totalAmount;\n\n constructor(\n address bridgeAddress\n ) public HandlerHelpers(bridgeAddress) {\n }\n\n function executeProposal(bytes32, bytes calldata) external view {\n if (_totalAmount == 0) {\n revert('Something bad happened');\n }\n return;\n }\n\n function virtualIncreaseBalance(uint amount) external {\n _totalAmount = amount;\n }\n}\n",
"sourcePath": "/home/sigo/w/deer/ethsub/packages/sol/contracts/TestContracts.sol",
"ast": {
"absolutePath": "project:/contracts/TestContracts.sol",
"exportedSymbols": {
"HandlerRevert": [
8235
],
"NoArgument": [
8086
],
"OneArgument": [
8101
],
"ReturnData": [
8193
],
"SafeCaster": [
8183
],
"ThreeArguments": [
8148
],
"TwoArguments": [
8123
],
"WithDepositer": [
8168
]
},
"id": 8236,
"license": "LGPL-3.0-only",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 8074,
"literals": [
"solidity",
"0.6",
".12"
],
"nodeType": "PragmaDirective",
"src": "42:23:42"
},
{
"absolutePath": "project:/contracts/utils/SafeCast.sol",
"file": "./utils/SafeCast.sol",
"id": 8075,
"nodeType": "ImportDirective",
"scope": 8236,
"sourceUnit": 10342,
"src": "67:30:42",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "project:/contracts/handlers/HandlerHelpers.sol",
"file": "./handlers/HandlerHelpers.sol",
"id": 8076,
"nodeType": "ImportDirective",
"scope": 8236,
"sourceUnit": 9783,
"src": "98:39:42",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 8086,
"linearizedBaseContracts": [
8086
],
"name": "NoArgument",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 8078,
"name": "NoArgumentCalled",
"nodeType": "EventDefinition",
"parameters": {
"id": 8077,
"nodeType": "ParameterList",
"parameters": [],
"src": "187:2:42"
},
"src": "165:25:42"
},
{
"body": {
"id": 8084,
"nodeType": "Block",
"src": "227:40:42",
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 8081,
"name": "NoArgumentCalled",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8078,
"src": "242:16:42",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
"id": 8082,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "242:18:42",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8083,
"nodeType": "EmitStatement",
"src": "237:23:42"
}
]
},
"documentation": null,
"functionSelector": "568959ca",
"id": 8085,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "noArgument",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 8079,
"nodeType": "ParameterList",
"parameters": [],
"src": "215:2:42"
},
"returnParameters": {
"id": 8080,
"nodeType": "ParameterList",
"parameters": [],
"src": "227:0:42"
},
"scope": 8086,
"src": "196:71:42",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 8236,
"src": "139:130:42"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 8101,
"linearizedBaseContracts": [
8101
],
"name": "OneArgument",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 8090,
"name": "OneArgumentCalled",
"nodeType": "EventDefinition",
"parameters": {
"id": 8089,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8088,
"indexed": true,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8090,
"src": "322:27:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8087,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "322:7:42",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "321:29:42"
},
"src": "298:53:42"
},
{
"body": {
"id": 8099,
"nodeType": "Block",
"src": "408:52:42",
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8096,
"name": "argumentOne",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8092,
"src": "441:11:42",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8095,
"name": "OneArgumentCalled",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8090,
"src": "423:17:42",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 8097,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "423:30:42",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8098,
"nodeType": "EmitStatement",
"src": "418:35:42"
}
]
},
"documentation": null,
"functionSelector": "c95cf0d8",
"id": 8100,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "oneArgument",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 8093,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8092,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8100,
"src": "378:19:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8091,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "378:7:42",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "377:21:42"
},
"returnParameters": {
"id": 8094,
"nodeType": "ParameterList",
"parameters": [],
"src": "408:0:42"
},
"scope": 8101,
"src": "357:103:42",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 8236,
"src": "271:191:42"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 8123,
"linearizedBaseContracts": [
8123
],
"name": "TwoArguments",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 8108,
"name": "TwoArgumentsCalled",
"nodeType": "EventDefinition",
"parameters": {
"id": 8107,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8104,
"indexed": false,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8108,
"src": "517:21:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 8102,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "517:7:42",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8103,
"length": null,
"nodeType": "ArrayTypeName",
"src": "517:9:42",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8106,
"indexed": false,
"mutability": "mutable",
"name": "argumentTwo",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8108,
"src": "540:18:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8105,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "540:6:42",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "516:43:42"
},
"src": "492:68:42"
},
{
"body": {
"id": 8121,
"nodeType": "Block",
"src": "649:66:42",
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8117,
"name": "argumentOne",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8111,
"src": "683:11:42",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
}
},
{
"argumentTypes": null,
"id": 8118,
"name": "argumentTwo",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8113,
"src": "696:11:42",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[] calldata"
},
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 8116,
"name": "TwoArgumentsCalled",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8108,
"src": "664:18:42",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes4_$returns$__$",
"typeString": "function (address[] memory,bytes4)"
}
},
"id": 8119,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "664:44:42",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8120,
"nodeType": "EmitStatement",
"src": "659:49:42"
}
]
},
"documentation": null,
"functionSelector": "72e0745c",
"id": 8122,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "twoArguments",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 8114,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8111,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8122,
"src": "588:30:42",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 8109,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "588:7:42",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8110,
"length": null,
"nodeType": "ArrayTypeName",
"src": "588:9:42",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8113,
"mutability": "mutable",
"name": "argumentTwo",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8122,
"src": "620:18:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 8112,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "620:6:42",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "587:52:42"
},
"returnParameters": {
"id": 8115,
"nodeType": "ParameterList",
"parameters": [],
"src": "649:0:42"
},
"scope": 8123,
"src": "566:149:42",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
}
],
"scope": 8236,
"src": "464:253:42"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 8148,
"linearizedBaseContracts": [
8148
],
"name": "ThreeArguments",
"nodeType": "ContractDefinition",
"nodes": [
{
"anonymous": false,
"documentation": null,
"id": 8131,
"name": "ThreeArgumentsCalled",
"nodeType": "EventDefinition",
"parameters": {
"id": 8130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8125,
"indexed": false,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8131,
"src": "776:18:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 8124,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "776:6:42",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8127,
"indexed": false,
"mutability": "mutable",
"name": "argumentTwo",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8131,
"src": "796:16:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int8",
"typeString": "int8"
},
"typeName": {
"id": 8126,
"name": "int8",
"nodeType": "ElementaryTypeName",
"src": "796:4:42",
"typeDescriptions": {
"typeIdentifier": "t_int8",
"typeString": "int8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8129,
"indexed": false,
"mutability": "mutable",
"name": "argumentThree",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8131,
"src": "814:18:42",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8128,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "814:4:42",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "775:58:42"
},
"src": "749:85:42"
},
{
"body": {
"id": 8146,
"nodeType": "Block",
"src": "940:83:42",
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8141,
"name": "argumentOne",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8133,
"src": "976:11:42",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
}
},
{
"argumentTypes": null,
"id": 8142,
"name": "argumentTwo",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8135,
"src": "989:11:42",
"typeDescriptions": {
"typeIdentifier": "t_int8",
"typeString": "int8"
}
},
{
"argumentTypes": null,
"id": 8143,
"name": "argumentThree",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8137,
"src": "1002:13:42",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string calldata"
},
{
"typeIdentifier": "t_int8",
"typeString": "int8"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8140,
"name": "ThreeArgumentsCalled",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8131,
"src": "955:20:42",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_int8_$_t_bool_$returns$__$",
"typeString": "function (string memory,int8,bool)"
}
},
"id": 8144,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "955:61:42",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8145,
"nodeType": "EmitStatement",
"src": "950:66:42"
}
]
},
"documentation": null,
"functionSelector": "9280b905",
"id": 8147,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "threeArguments",
"nodeType": "FunctionDefinition",
"overrides": null,
"parameters": {
"id": 8138,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8133,
"mutability": "mutable",
"name": "argumentOne",
"nodeType": "VariableDeclaration",
"overrides": null,
"scope": 8147,
"src": "864:27:42",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_string_calldata_ptr",
"typeString": "string"
},
"typeName": {
"id": 8132,
"name": "string",
"nodeType": "ElementaryTypeNam