UNPKG

hardlydifficult-eth

Version:

A collection of reusable contracts and Javascript helpers for Ethereum.

1,084 lines 93.8 kB
{ "contractName": "CloneFactoryMock", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "proxyAddress", "type": "address" } ], "name": "CloneCreated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "createClone", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "createClone2", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "isAddressAvailable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" } ], "name": "getClone2Address", "outputs": [ { "internalType": "address", "name": "cloneAddress", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proxyAddress\",\"type\":\"address\"}],\"name\":\"CloneCreated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"createClone\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"createClone2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"getClone2Address\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"cloneAddress\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"isAddressAvailable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/test-artifacts/CloneFactoryMock.sol\":\"CloneFactoryMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000000},\"remappings\":[]},\"sources\":{\"project:/contracts/proxies/Clone2Factory.sol\":{\"keccak256\":\"0x5eabefb0d942322d2fecf4f9060b53c6b54a22c741a3ec1e93ffcbbcedf6093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5075ba4f6f5a099b78d30145db7fe66e02357ec76e1d6efe1d85f0ebc595837d\",\"dweb:/ipfs/QmcZdGyizUDKN9t4t1FDvN7ic6G59FXiFiC5tHK7rKpst8\"]},\"project:/contracts/proxies/Clone2Probe.sol\":{\"keccak256\":\"0x2ed892746cadebdf1c4810f648ad3d65b15581a7078cdb1d9e1e9e6475bef238\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd836231a996d826f9843bfacc0090cbc8c904ce4261637d574e9f657ded1e2e\",\"dweb:/ipfs/QmY94D7LXRPKstwpUF73K4HxEQbuz1gLgWG5uM6oSjTRUC\"]},\"project:/contracts/proxies/CloneFactory.sol\":{\"keccak256\":\"0x3f2547f3b4f8b1d9bb4ca67a07a2e701ef11c66fab48c6f9fda8aa617d8592db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc9e8341cca63da70ba239fd04bba128ceb70f3c12d7568a88aea9309d161528\",\"dweb:/ipfs/QmeNfUzw9giPwBaUxE723AZWoav5NbWohqW2x1mdxNvCyg\"]},\"project:/contracts/proxies/Create2Probe.sol\":{\"keccak256\":\"0xeb9f0df0022fb3af7afbda072058209adfc3778ed7be55f84c2fa3efbd1e6862\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2b08208b38130508ac6a2acf8ac9655ce525d372c87770270fdcb22e3b6b53a\",\"dweb:/ipfs/QmP8HuAF6FmgT6Vp57poQr1AVxCsCJXvPsjdJ8HfRmgBpb\"]},\"project:/contracts/test-artifacts/CloneFactoryMock.sol\":{\"keccak256\":\"0xbced1ccfb8dd3ccd3bd878f7088df808b730c491f19b893dd4937577d52a948f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0db5bdabb51365ff3cd78c65f5a45f24d4240ba7b7cb6b5fb16892fd355b2fb3\",\"dweb:/ipfs/QmW8sM6io4ZX6ez4EfX2bXbAs6ZNVgy9jPsR37S3qLZ3eE\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b50610562806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063321660e41461005157806357894c1b1461008c5780639789e5bf146100bf578063dda1670f14610121575b600080fd5b61008a6004803603604081101561006757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610168565b005b61008a600480360360208110156100a257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101e2565b6100f8600480360360408110156100d557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610254565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101546004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610285565b604080519115158252519081900360200190f35b600061019073ffffffffffffffffffffffffffffffffffffffff84168363ffffffff6102ae16565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc85919081900360200190a1505050565b60006102038273ffffffffffffffffffffffffffffffffffffffff16610400565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc85919081900360200190a15050565b600061027c73ffffffffffffffffffffffffffffffffffffffff84168363ffffffff61046416565b90505b92915050565b60006102a68273ffffffffffffffffffffffffffffffffffffffff16610501565b90505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000602882015260378120836101008301527fff0000000000000000000000000000000000000000000000000000000000000060408301523060601b6041830152610100820151605583015280607583015250605560408201209150813b6000811461036d576000925061037c565b6101008201516037836000f592505b505073ffffffffffffffffffffffffffffffffffffffff811661027f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f50524f58595f4445504c4f595f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09392505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606092831b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152603781207fff0000000000000000000000000000000000000000000000000000000000000082523090931b6001820152601581019190915260358101919091526055902090565b600073ffffffffffffffffffffffffffffffffffffffff8216610526575060006102a9565b503b159056fea26469706673582212209162628bb758337b20c90d9a7d6e24cf415ef99f2a327b1767eb3ff4a9d7ea4d64736f6c634300060a0033", "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063321660e41461005157806357894c1b1461008c5780639789e5bf146100bf578063dda1670f14610121575b600080fd5b61008a6004803603604081101561006757600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610168565b005b61008a600480360360208110156100a257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166101e2565b6100f8600480360360408110156100d557600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610254565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101546004803603602081101561013757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610285565b604080519115158252519081900360200190f35b600061019073ffffffffffffffffffffffffffffffffffffffff84168363ffffffff6102ae16565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc85919081900360200190a1505050565b60006102038273ffffffffffffffffffffffffffffffffffffffff16610400565b6040805173ffffffffffffffffffffffffffffffffffffffff8316815290519192507fbe2f3d28fdeb5839123d65fd47ec2f5915c715d2b527b9e229123706fdecfc85919081900360200190a15050565b600061027c73ffffffffffffffffffffffffffffffffffffffff84168363ffffffff61046416565b90505b92915050565b60006102a68273ffffffffffffffffffffffffffffffffffffffff16610501565b90505b919050565b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528360601b60148201527f5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000602882015260378120836101008301527fff0000000000000000000000000000000000000000000000000000000000000060408301523060601b6041830152610100820151605583015280607583015250605560408201209150813b6000811461036d576000925061037c565b6101008201516037836000f592505b505073ffffffffffffffffffffffffffffffffffffffff811661027f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f50524f58595f4445504c4f595f4641494c454400000000000000000000000000604482015290519081900360640190fd5b60006040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528260601b60148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09392505050565b6040517f3d602d80600a3d3981f3363d3d373d3d3d363d730000000000000000000000008152606092831b60148201527f5af43d82803e903d91602b57fd5bf300000000000000000000000000000000006028820152603781207fff0000000000000000000000000000000000000000000000000000000000000082523090931b6001820152601581019190915260358101919091526055902090565b600073ffffffffffffffffffffffffffffffffffffffff8216610526575060006102a9565b503b159056fea26469706673582212209162628bb758337b20c90d9a7d6e24cf415ef99f2a327b1767eb3ff4a9d7ea4d64736f6c634300060a0033", "immutableReferences": {}, "sourceMap": "211:832:24:-:0;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "211:832:24:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:159;;;;;;;;;;;;;;;;-1:-1:-1;562:159:24;;;;;;;;;:::i;:::-;;423:135;;;;;;;;;;;;;;;;-1:-1:-1;423:135:24;;;;:::i;877:164::-;;;;;;;;;;;;;;;;-1:-1:-1;877:164:24;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;725:148;;;;;;;;;;;;;;;;-1:-1:-1;725:148:24;;;;:::i;:::-;;;;;;;;;;;;;;;;;;562:159;643:14;660:25;:19;;;680:4;660:25;:19;:25;:::i;:::-;696:20;;;;;;;;;;643:42;;-1:-1:-1;696:20:24;;;;;;;;;;562:159;;;:::o;423:135::-;485:14;502:20;:6;:18;;;:20::i;:::-;533;;;;;;;;;;485:37;;-1:-1:-1;533:20:24;;;;;;;;;;423:135;;:::o;877:164::-;970:20;1007:29;:23;;;1031:4;1007:29;:23;:29;:::i;:::-;1000:36;;877:164;;;;;:::o;725:148::-;811:4;832:36;:15;:34;;;:36::i;:::-;825:43;;725:148;;;;:::o;905:1710:18:-;991:20;1095:4;1089:11;1238:66;1229:7;1222:83;1347:6;1343:2;1339:15;1332:4;1323:7;1319:18;1312:43;1389:66;1382:4;1373:7;1369:18;1362:94;1732:4;1723:7;1713:24;1794:4;1786:5;1777:7;1773:19;1766:33;1875:66;1868:4;1859:7;1855:18;1848:94;1998:9;1994:2;1990:18;1983:4;1974:7;1970:18;1963:46;2076:5;2067:7;2063:19;2057:26;2050:4;2041:7;2037:18;2030:54;2132:16;2125:4;2116:7;2112:18;2105:44;;2203:4;2196;2187:7;2183:18;2173:35;2157:51;;2235:12;2223:25;2260:1;2255:161;;;;2457:1;2441:17;;2216:250;;2255:161;2400:5;2391:7;2387:19;2381:26;2375:4;2366:7;2363:1;2355:53;2339:69;;2216:250;-1:-1:-1;;2560:26:18;;;2552:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;450:452:20;517:14;613:4;607:11;639:66;632:5;625:81;746:6;742:2;738:15;731:4;724:5;720:16;713:41;786:66;779:4;772:5;768:16;761:92;887:4;880:5;877:1;870:22;860:32;586:312;-1:-1:-1;;;586:312:20:o;201:984:19:-;400:4;394:11;520:66;504:83;;625:2;621:15;;;614:4;601:18;;594:43;671:66;664:4;651:18;;644:94;817:4;798:24;;860:66;844:83;;996:9;988:18;;;982:3;969:17;;962:45;1049:4;1036:18;;1029:32;;;;1103:4;1090:18;;1083:44;;;;1170:4;1151:24;;;371:810::o;202:309:21:-;290:4;307:29;;;304:65;;-1:-1:-1;357:5:21;350:12;;304:65;-1:-1:-1;450:28:21;497:9;;202:309::o", "source": "// SPDX-License-Identifier: MIT\npragma solidity ^0.6.0;\n\nimport '../proxies/CloneFactory.sol';\nimport '../proxies/Clone2Factory.sol';\nimport '../proxies/Clone2Probe.sol';\nimport '../proxies/Create2Probe.sol';\n\n\ncontract CloneFactoryMock\n{\n using CloneFactory for address;\n using Clone2Factory for address;\n using Clone2Probe for address;\n using Create2Probe for address;\n\n event CloneCreated(address proxyAddress);\n\n function createClone(\n address target\n ) external\n {\n address result = target.createClone();\n emit CloneCreated(result);\n }\n\n function createClone2(\n address target,\n bytes32 salt\n ) external\n {\n address result = target.createClone2(salt);\n emit CloneCreated(result);\n }\n\n function isAddressAvailable(\n address contractAddress\n ) public view\n returns (bool)\n {\n return contractAddress.isAddressAvailable();\n }\n\n function getClone2Address(\n address target,\n bytes32 salt\n ) public view\n returns (address cloneAddress)\n {\n return target.getClone2Address(salt);\n }\n}\n", "sourcePath": "/home/circleci/repo/contracts/test-artifacts/CloneFactoryMock.sol", "ast": { "absolutePath": "project:/contracts/test-artifacts/CloneFactoryMock.sol", "exportedSymbols": { "CloneFactoryMock": [ 4022 ] }, "id": 4023, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 3939, "literals": [ "solidity", "^", "0.6", ".0" ], "nodeType": "PragmaDirective", "src": "32:23:24" }, { "absolutePath": "project:/contracts/proxies/CloneFactory.sol", "file": "../proxies/CloneFactory.sol", "id": 3940, "nodeType": "ImportDirective", "scope": 4023, "sourceUnit": 3783, "src": "57:37:24", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "project:/contracts/proxies/Clone2Factory.sol", "file": "../proxies/Clone2Factory.sol", "id": 3941, "nodeType": "ImportDirective", "scope": 4023, "sourceUnit": 3756, "src": "95:38:24", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "project:/contracts/proxies/Clone2Probe.sol", "file": "../proxies/Clone2Probe.sol", "id": 3942, "nodeType": "ImportDirective", "scope": 4023, "sourceUnit": 3770, "src": "134:36:24", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "project:/contracts/proxies/Create2Probe.sol", "file": "../proxies/Create2Probe.sol", "id": 3943, "nodeType": "ImportDirective", "scope": 4023, "sourceUnit": 3812, "src": "171:37:24", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4022, "linearizedBaseContracts": [ 4022 ], "name": "CloneFactoryMock", "nodeType": "ContractDefinition", "nodes": [ { "id": 3946, "libraryName": { "contractScope": null, "id": 3944, "name": "CloneFactory", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3782, "src": "247:12:24", "typeDescriptions": { "typeIdentifier": "t_contract$_CloneFactory_$3782", "typeString": "library CloneFactory" } }, "nodeType": "UsingForDirective", "src": "241:31:24", "typeName": { "id": 3945, "name": "address", "nodeType": "ElementaryTypeName", "src": "264:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "id": 3949, "libraryName": { "contractScope": null, "id": 3947, "name": "Clone2Factory", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3755, "src": "281:13:24", "typeDescriptions": { "typeIdentifier": "t_contract$_Clone2Factory_$3755", "typeString": "library Clone2Factory" } }, "nodeType": "UsingForDirective", "src": "275:32:24", "typeName": { "id": 3948, "name": "address", "nodeType": "ElementaryTypeName", "src": "299:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "id": 3952, "libraryName": { "contractScope": null, "id": 3950, "name": "Clone2Probe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3769, "src": "316:11:24", "typeDescriptions": { "typeIdentifier": "t_contract$_Clone2Probe_$3769", "typeString": "library Clone2Probe" } }, "nodeType": "UsingForDirective", "src": "310:30:24", "typeName": { "id": 3951, "name": "address", "nodeType": "ElementaryTypeName", "src": "332:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "id": 3955, "libraryName": { "contractScope": null, "id": 3953, "name": "Create2Probe", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 3811, "src": "349:12:24", "typeDescriptions": { "typeIdentifier": "t_contract$_Create2Probe_$3811", "typeString": "library Create2Probe" } }, "nodeType": "UsingForDirective", "src": "343:31:24", "typeName": { "id": 3954, "name": "address", "nodeType": "ElementaryTypeName", "src": "366:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "anonymous": false, "documentation": null, "id": 3959, "name": "CloneCreated", "nodeType": "EventDefinition", "parameters": { "id": 3958, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3957, "indexed": false, "mutability": "mutable", "name": "proxyAddress", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3959, "src": "397:20:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3956, "name": "address", "nodeType": "ElementaryTypeName", "src": "397:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "396:22:24" }, "src": "378:41:24" }, { "body": { "id": 3974, "nodeType": "Block", "src": "479:79:24", "statements": [ { "assignments": [ 3965 ], "declarations": [ { "constant": false, "id": 3965, "mutability": "mutable", "name": "result", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3974, "src": "485:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3964, "name": "address", "nodeType": "ElementaryTypeName", "src": "485:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 3969, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 3966, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3961, "src": "502:6:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createClone", "nodeType": "MemberAccess", "referencedDeclaration": 3781, "src": "502:18:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$_t_address_$bound_to$_t_address_$", "typeString": "function (address) returns (address)" } }, "id": 3968, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "502:20:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "485:37:24" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3971, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3965, "src": "546:6:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3970, "name": "CloneCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3959, "src": "533:12:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 3972, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "533:20:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3973, "nodeType": "EmitStatement", "src": "528:25:24" } ] }, "documentation": null, "functionSelector": "57894c1b", "id": 3975, "implemented": true, "kind": "function", "modifiers": [], "name": "createClone", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3962, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3961, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3975, "src": "449:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3960, "name": "address", "nodeType": "ElementaryTypeName", "src": "449:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "443:24:24" }, "returnParameters": { "id": 3963, "nodeType": "ParameterList", "parameters": [], "src": "479:0:24" }, "scope": 4022, "src": "423:135:24", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 3993, "nodeType": "Block", "src": "637:84:24", "statements": [ { "assignments": [ 3983 ], "declarations": [ { "constant": false, "id": 3983, "mutability": "mutable", "name": "result", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3993, "src": "643:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3982, "name": "address", "nodeType": "ElementaryTypeName", "src": "643:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "id": 3988, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3986, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3979, "src": "680:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "argumentTypes": null, "id": 3984, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3977, "src": "660:6:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 3985, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "createClone2", "nodeType": "MemberAccess", "referencedDeclaration": 3754, "src": "660:19:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$bound_to$_t_address_$", "typeString": "function (address,bytes32) returns (address)" } }, "id": 3987, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "660:25:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "643:42:24" }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3990, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3983, "src": "709:6:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3989, "name": "CloneCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3959, "src": "696:12:24", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, "id": 3991, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "696:20:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3992, "nodeType": "EmitStatement", "src": "691:25:24" } ] }, "documentation": null, "functionSelector": "321660e4", "id": 3994, "implemented": true, "kind": "function", "modifiers": [], "name": "createClone2", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3980, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3977, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3994, "src": "589:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3976, "name": "address", "nodeType": "ElementaryTypeName", "src": "589:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 3979, "mutability": "mutable", "name": "salt", "nodeType": "VariableDeclaration", "overrides": null, "scope": 3994, "src": "609:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 3978, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "609:7:24", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "value": null, "visibility": "internal" } ], "src": "583:42:24" }, "returnParameters": { "id": 3981, "nodeType": "ParameterList", "parameters": [], "src": "637:0:24" }, "scope": 4022, "src": "562:159:24", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 4005, "nodeType": "Block", "src": "819:54:24", "statements": [ { "expression": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], "expression": { "argumentTypes": null, "id": 4001, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3996, "src": "832:15:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 4002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isAddressAvailable", "nodeType": "MemberAccess", "referencedDeclaration": 3810, "src": "832:34:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)" } }, "id": 4003, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "832:36:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 4000, "id": 4004, "nodeType": "Return", "src": "825:43:24" } ] }, "documentation": null, "functionSelector": "dda1670f", "id": 4006, "implemented": true, "kind": "function", "modifiers": [], "name": "isAddressAvailable", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 3997, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3996, "mutability": "mutable", "name": "contractAddress", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4006, "src": "758:23:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3995, "name": "address", "nodeType": "ElementaryTypeName", "src": "758:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" } ], "src": "752:33:24" }, "returnParameters": { "id": 4000, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3999, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4006, "src": "811:4:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 3998, "name": "bool", "nodeType": "ElementaryTypeName", "src": "811:4:24", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "810:6:24" }, "scope": 4022, "src": "725:148:24", "stateMutability": "view", "virtual": false, "visibility": "public" }, { "body": { "id": 4020, "nodeType": "Block", "src": "994:47:24", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4017, "name": "salt", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4010, "src": "1031:4:24", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "expression": { "argumentTypes": null, "id": 4015, "name": "target", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4008, "src": "1007:6:24", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 4016, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getClone2Address", "nodeType": "MemberAccess", "referencedDeclaration": 3768, "src": "1007:23:24", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes32_$returns$_t_address_$bound_to$_t_address_$", "typeString": "function (address,bytes32) view returns (address)" } }, "id": 4018, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1007:29:24", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 4014, "id": 4019, "nodeType": "Return", "src": "1000:36:24" } ] }, "documentation": null, "functionSelector": "9789e5bf", "id": 4021, "implemented": true, "kind": "function", "modifiers": [], "name": "getClone2Address", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4011, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4008, "mutability": "mutable", "name": "target", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4021, "src": "908:14:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4007, "name": "address", "nodeType": "ElementaryTypeName", "src": "908:7:24", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4010, "mutability": "mutable", "name": "salt", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4021, "src": "928:12:24", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 4009, "name": "bytes32", "nodeType": "ElementaryTypeName", "src"