From 343404318c49035cd457875b98e8faf52292bead Mon Sep 17 00:00:00 2001 From: Stephane Gosselin Date: Wed, 21 Aug 2019 10:23:52 +0200 Subject: [PATCH] update v2 deployment (#155) * update DecimalMath header * revert changes to MultiHashWrapper * deploy to testnet * remove build * add validation on proofHash length * deploy to testnet --- README.md | 4 +- build/Erasure_Agreements.json | 788 -- build/Erasure_Posts.json | 788 -- build/Erasure_Users.json | 5080 ---------- build/Feed.json | 5741 ----------- build/Feed_Factory.json | 4025 -------- build/OneWayGriefing.json | 11703 ----------------------- build/OneWayGriefing_Factory.json | 5487 ----------- build/Post.json | 3008 ------ build/Post_Factory.json | 4320 --------- build/TestPost.json | 522 - build/iFactory.json | 1947 ---- build/iNMR.json | 2138 ----- build/iRegistry.json | 3921 -------- contracts/helpers/DecimalMath.sol | 5 +- contracts/modules/MultiHashWrapper.sol | 29 +- deployment/deploy.js | 8 +- test/helpers/utils.js | 11 +- 18 files changed, 49 insertions(+), 49476 deletions(-) delete mode 100644 build/Erasure_Agreements.json delete mode 100644 build/Erasure_Posts.json delete mode 100644 build/Erasure_Users.json delete mode 100644 build/Feed.json delete mode 100644 build/Feed_Factory.json delete mode 100644 build/OneWayGriefing.json delete mode 100644 build/OneWayGriefing_Factory.json delete mode 100644 build/Post.json delete mode 100644 build/Post_Factory.json delete mode 100644 build/TestPost.json delete mode 100644 build/iFactory.json delete mode 100644 build/iNMR.json delete mode 100644 build/iRegistry.json diff --git a/README.md b/README.md index 870549dc..c3637a57 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,9 @@ | - | - | | [MockNMR](https://github.com/erasureprotocol/erasure-next-contracts/blob/2c14b52b95c15e686d006b8d34411d1321fcfc81/Fractal/contracts/helpers/mock/MockNMR.sol) | [0x1eBf22785bffb6B44fEbBc8a41056b1aD43401f9](https://rinkeby.etherscan.io/address/0x1eBf22785bffb6B44fEbBc8a41056b1aD43401f9) | | [Erasure_Posts](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/registries/Erasure_Posts.sol) | [0xEd11206a7d07601985DCC4FeD7B3284a928D022B](https://rinkeby.etherscan.io/address/0xEd11206a7d07601985DCC4FeD7B3284a928D022B) | -| [Erasure_Agreements](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/registries/Erasure_Agreements.sol) | [0xedE872bb4d8B7245D96Ed38CF29bE5116B53B7ae](https://rinkeby.etherscan.io/address/0xedE872bb4d8B7245D96Ed38CF29bE5116B53B7ae) | +| [Erasure_Agreements](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/registries/Erasure_Agreements.sol) | [0xa1811eD875E1AcE9a807aef15b885b8F616F1b0C](https://rinkeby.etherscan.io/address/0xa1811eD875E1AcE9a807aef15b885b8F616F1b0C) | | [Erasure_Users](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/registries/Erasure_Users.sol) | [0x58414777A792CD8E5A3D9f2fA576B16c38378234](https://rinkeby.etherscan.io/address/0x58414777A792CD8E5A3D9f2fA576B16c38378234) | -| [Post_Factory](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/posts/Post_Factory.sol) | [0x4C90aEF327556a7ca58EAD8B86c8215a247756B6](https://rinkeby.etherscan.io/address/0x4C90aEF327556a7ca58EAD8B86c8215a247756B6) | +| [Post_Factory](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/posts/Post_Factory.sol) | [0xec2Eaf70C3733C30cF65E5B5E4582228951d40ca](https://rinkeby.etherscan.io/address/0xec2Eaf70C3733C30cF65E5B5E4582228951d40ca) | | [Feed_Factory](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/posts/Feed_Factory.sol) | [0xabFe46E50D7A72e17688b44ce4f8B95545020560](https://rinkeby.etherscan.io/address/0xabFe46E50D7A72e17688b44ce4f8B95545020560) | | [OneWayGriefing_Factory](https://github.com/erasureprotocol/erasure-next-contracts/blob/master/contracts/agreements/OneWayGriefing_Factory.sol) | [0x91b052E4800DB77d4d0BFE9fe2bE48352695F282](https://rinkeby.etherscan.io/address/0x91b052E4800DB77d4d0BFE9fe2bE48352695F282) | diff --git a/build/Erasure_Agreements.json b/build/Erasure_Agreements.json deleted file mode 100644 index b4ece8d0..00000000 --- a/build/Erasure_Agreements.json +++ /dev/null @@ -1,788 +0,0 @@ -{ - "contractName": "Erasure_Agreements", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "name": "addFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "name": "getFactoryAddress", - "outputs": [ - { - "name": "factory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryData", - "outputs": [ - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactory", - "outputs": [ - { - "name": "status", - "type": "uint8" - }, - { - "name": "factoryID", - "type": "uint16" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "retireFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryID", - "outputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "instance", - "type": "address" - }, - { - "name": "creator", - "type": "address" - }, - { - "name": "extraData", - "type": "uint80" - } - ], - "name": "register", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactoryCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstanceData", - "outputs": [ - { - "name": "instanceAddress", - "type": "address" - }, - { - "name": "factoryID", - "type": "uint16" - }, - { - "name": "extraData", - "type": "uint80" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryStatus", - "outputs": [ - { - "name": "status", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - }, - { - "indexed": false, - "name": "extraData", - "type": "bytes" - } - ], - "name": "FactoryAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "FactoryRetired", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "factory", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "instanceIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "InstanceRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280600981526020017f41677265656d656e740000000000000000000000000000000000000000000000815250336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38080519060200120600360006101000a81548163ffffffff021916908360e01c0217905550506120d4806101386000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638f32d59b116100b8578063d10474341161007c578063d10474341461076c578063d35fdd791461078a578063ebd348de146107e9578063f12d27bf14610857578063f2fde38b146108f3578063f795ab751461093757610137565b80638f32d59b146105c5578063a826eb1e146105e7578063ae34325c14610647578063b71f2e7214610665578063bba83f64146106f257610137565b806363e5a670116100ff57806363e5a67014610441578063715018a6146104855780637e6cbb6a1461048f57806386609652146104ee5780638da5cb5b1461057b57610137565b806314ad01441461013c57806318c2f4cf146101d557806332e04be31461023157806345bdfb1e146102a35780635e994dca14610360575b600080fd5b6101d36004803603604081101561015257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561018f57600080fd5b8201836020820111156101a157600080fd5b803590602001918460018302840111640100000000831117156101c357600080fd5b909192939192939050505061099d565b005b6101dd610c81565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6102616004803603602081101561024757600080fd5b81019080803561ffff169060200190929190505050610c98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cdd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032557808201518184015260208101905061030a565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a26004803603602081101561037657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc1565b604051808460028111156103b257fe5b60ff1681526020018361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104836004803603602081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f26565b005b61048d611142565b005b61049761127b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104da5780820151818401526020810190506104bf565b505050509050019250505060405180910390f35b6105246004803603604081101561050457600080fd5b810190808035906020019092919080359060200190929190505050611309565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b6105836114ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cd6114e3565b604051808215151515815260200191505060405180910390f35b610629600480360360208110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153a565b604051808261ffff1661ffff16815260200191505060405180910390f35b61064f611594565b6040518082815260200191505060405180910390f35b61069b6004803603604081101561067b57600080fd5b8101908080359060200190929190803590602001909291905050506115a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106de5780820151818401526020810190506106c3565b505050509050019250505060405180910390f35b61076a6004803603606081101561070857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803569ffffffffffffffffffff169060200190929190505050611755565b005b610774611996565b6040518082815260200191505060405180910390f35b6107926119a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d55780820151818401526020810190506107ba565b505050509050019250505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108836004803603602081101561086d57600080fd5b8101908080359060200190929190505050611b46565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018361ffff1661ffff1681526020018269ffffffffffffffffffff1669ffffffffffffffffffff168152602001935050505060405180910390f35b6109356004803603602081101561090957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cbc565b005b6109796004803603602081101561094d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082600281111561098957fe5b60ff16815260200191505060405180910390f35b6109a56114e3565b610a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002811115610a6757fe5b8160000160009054906101000a900460ff166002811115610a8457fe5b14610ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806120226036913960400191505060405180910390fd5b6000600180549050905060018260000160006101000a81548160ff02191690836002811115610b0557fe5b0217905550808260000160016101000a81548161ffff021916908361ffff1602179055508383836001019190610b3c929190611edf565b5060018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f2b60b760542791ba21c4029237f2aa264a5731131d53872f4689f7113e8a77043386838787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a15050505050565b6000600360009054906101000a900460e01b905090565b600060018261ffff1681548110610cab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b50505050509050919050565b6000806060610dce611f5f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166002811115610e3657fe5b6002811115610e4157fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050815250509050806000015193508060200151925080604001519150509193909250565b610f2e6114e3565b610fa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016002811115610ff057fe5b8160000160009054906101000a900460ff16600281111561100d57fe5b14611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061207d6023913960400191505060405180910390fd5b60028160000160006101000a81548160ff0219169083600281111561108457fe5b02179055507fb2efe2b3bb8a6c15454da20cd3d82d0380c15bc3df9ebbb767ddeca18b75e3a833838360000160019054906101000a900461ffff16604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018261ffff168152602001935050505060405180910390a15050565b61114a6114e3565b6111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060018054806020026020016040519081016040528092919081815260200182805480156112ff57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112b5575b5050505050905090565b6060818310611363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b6001805490508211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156114115781602001602082028038833980820191505090505b50905060008490505b838110156114af576001818154811061142f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061146857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061141a565b508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900461ffff169050919050565b6000600480549050905090565b60608183106115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b600480549050821115611676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156116a95781602001602082028038833980820191505090505b50905060008490505b8381101561174a57600481815481106116c757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061170357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506116b2565b508091505092915050565b60008061176133610dc1565b50915091506001600281111561177357fe5b82600281111561177f57fe5b146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f666163746f727920696e2077726f6e672073746174757300000000000000000081525060200191505060405180910390fd5b60006004805490509050600460405180606001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff1681526020018669ffffffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548161ffff021916908361ffff16021790555060408201518160000160166101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff1602179055505050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fb35ceb7181267b8ad385c9c8b08bb23bf2580e751105dd463d17602effb427168486604051808381526020018261ffff1681526020019250505060405180910390a4505050505050565b6000600180549050905090565b6060600060048054905090506060816040519080825280602002602001820160405280156119e05781602001602082028038833980820191505090505b50905060008090505b82811015611a7f57600481815481106119fe57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110611a3857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506119e9565b50809250505090565b60006004805490508210611b04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60048281548110611b1157fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060006004805490508410611bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b611bcd611f8f565b60048581548110611bda57fe5b906000526020600020016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900461ffff1661ffff1661ffff1681526020016000820160169054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1669ffffffffffffffffffff16815250509050806000015193508060200151925080604001519150509193909250565b611cc46114e3565b611d36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611d3f81611d9b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ffc6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f2057803560ff1916838001178555611f4e565b82800160010185558215611f4e579182015b82811115611f4d578235825591602001919060010190611f32565b5b509050611f5b9190611fd6565b5090565b604051806060016040528060006002811115611f7757fe5b8152602001600061ffff168152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600061ffff168152602001600069ffffffffffffffffffff1681525090565b611ff891905b80821115611ff4576000816000905550600101611fdc565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373666163746f727920616c726561647920657869737473206174207468652070726f766964656420666163746f727920616464726573737374617274496e646578206d757374206265206c657373207468616e20656e64496e646578666163746f7279206973206e6f742063757272656e746c792072656769737465726564a265627a7a72305820a762f33cf33dd5274b6f3331c428c41752eeae56d1f98c87724fe5e15fbd4c9d64736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638f32d59b116100b8578063d10474341161007c578063d10474341461076c578063d35fdd791461078a578063ebd348de146107e9578063f12d27bf14610857578063f2fde38b146108f3578063f795ab751461093757610137565b80638f32d59b146105c5578063a826eb1e146105e7578063ae34325c14610647578063b71f2e7214610665578063bba83f64146106f257610137565b806363e5a670116100ff57806363e5a67014610441578063715018a6146104855780637e6cbb6a1461048f57806386609652146104ee5780638da5cb5b1461057b57610137565b806314ad01441461013c57806318c2f4cf146101d557806332e04be31461023157806345bdfb1e146102a35780635e994dca14610360575b600080fd5b6101d36004803603604081101561015257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561018f57600080fd5b8201836020820111156101a157600080fd5b803590602001918460018302840111640100000000831117156101c357600080fd5b909192939192939050505061099d565b005b6101dd610c81565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6102616004803603602081101561024757600080fd5b81019080803561ffff169060200190929190505050610c98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cdd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032557808201518184015260208101905061030a565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a26004803603602081101561037657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc1565b604051808460028111156103b257fe5b60ff1681526020018361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104836004803603602081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f26565b005b61048d611142565b005b61049761127b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104da5780820151818401526020810190506104bf565b505050509050019250505060405180910390f35b6105246004803603604081101561050457600080fd5b810190808035906020019092919080359060200190929190505050611309565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b6105836114ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cd6114e3565b604051808215151515815260200191505060405180910390f35b610629600480360360208110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153a565b604051808261ffff1661ffff16815260200191505060405180910390f35b61064f611594565b6040518082815260200191505060405180910390f35b61069b6004803603604081101561067b57600080fd5b8101908080359060200190929190803590602001909291905050506115a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106de5780820151818401526020810190506106c3565b505050509050019250505060405180910390f35b61076a6004803603606081101561070857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803569ffffffffffffffffffff169060200190929190505050611755565b005b610774611996565b6040518082815260200191505060405180910390f35b6107926119a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d55780820151818401526020810190506107ba565b505050509050019250505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108836004803603602081101561086d57600080fd5b8101908080359060200190929190505050611b46565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018361ffff1661ffff1681526020018269ffffffffffffffffffff1669ffffffffffffffffffff168152602001935050505060405180910390f35b6109356004803603602081101561090957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cbc565b005b6109796004803603602081101561094d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082600281111561098957fe5b60ff16815260200191505060405180910390f35b6109a56114e3565b610a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002811115610a6757fe5b8160000160009054906101000a900460ff166002811115610a8457fe5b14610ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806120226036913960400191505060405180910390fd5b6000600180549050905060018260000160006101000a81548160ff02191690836002811115610b0557fe5b0217905550808260000160016101000a81548161ffff021916908361ffff1602179055508383836001019190610b3c929190611edf565b5060018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f2b60b760542791ba21c4029237f2aa264a5731131d53872f4689f7113e8a77043386838787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a15050505050565b6000600360009054906101000a900460e01b905090565b600060018261ffff1681548110610cab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b50505050509050919050565b6000806060610dce611f5f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166002811115610e3657fe5b6002811115610e4157fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050815250509050806000015193508060200151925080604001519150509193909250565b610f2e6114e3565b610fa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016002811115610ff057fe5b8160000160009054906101000a900460ff16600281111561100d57fe5b14611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061207d6023913960400191505060405180910390fd5b60028160000160006101000a81548160ff0219169083600281111561108457fe5b02179055507fb2efe2b3bb8a6c15454da20cd3d82d0380c15bc3df9ebbb767ddeca18b75e3a833838360000160019054906101000a900461ffff16604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018261ffff168152602001935050505060405180910390a15050565b61114a6114e3565b6111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060018054806020026020016040519081016040528092919081815260200182805480156112ff57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112b5575b5050505050905090565b6060818310611363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b6001805490508211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156114115781602001602082028038833980820191505090505b50905060008490505b838110156114af576001818154811061142f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061146857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061141a565b508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900461ffff169050919050565b6000600480549050905090565b60608183106115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b600480549050821115611676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156116a95781602001602082028038833980820191505090505b50905060008490505b8381101561174a57600481815481106116c757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061170357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506116b2565b508091505092915050565b60008061176133610dc1565b50915091506001600281111561177357fe5b82600281111561177f57fe5b146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f666163746f727920696e2077726f6e672073746174757300000000000000000081525060200191505060405180910390fd5b60006004805490509050600460405180606001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff1681526020018669ffffffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548161ffff021916908361ffff16021790555060408201518160000160166101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff1602179055505050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fb35ceb7181267b8ad385c9c8b08bb23bf2580e751105dd463d17602effb427168486604051808381526020018261ffff1681526020019250505060405180910390a4505050505050565b6000600180549050905090565b6060600060048054905090506060816040519080825280602002602001820160405280156119e05781602001602082028038833980820191505090505b50905060008090505b82811015611a7f57600481815481106119fe57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110611a3857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506119e9565b50809250505090565b60006004805490508210611b04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60048281548110611b1157fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060006004805490508410611bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b611bcd611f8f565b60048581548110611bda57fe5b906000526020600020016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900461ffff1661ffff1661ffff1681526020016000820160169054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1669ffffffffffffffffffff16815250509050806000015193508060200151925080604001519150509193909250565b611cc46114e3565b611d36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611d3f81611d9b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ffc6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f2057803560ff1916838001178555611f4e565b82800160010185558215611f4e579182015b82811115611f4d578235825591602001919060010190611f32565b5b509050611f5b9190611fd6565b5090565b604051806060016040528060006002811115611f7757fe5b8152602001600061ffff168152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600061ffff168152602001600069ffffffffffffffffffff1681525090565b611ff891905b80821115611ff4576000816000905550600101611fdc565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373666163746f727920616c726561647920657869737473206174207468652070726f766964656420666163746f727920616464726573737374617274496e646578206d757374206265206c657373207468616e20656e64496e646578666163746f7279206973206e6f742063757272656e746c792072656769737465726564a265627a7a72305820a762f33cf33dd5274b6f3331c428c41752eeae56d1f98c87724fe5e15fbd4c9d64736f6c634300050a0032", - "sourceMap": "61:100:42:-;;;108:51;8:9:-1;5:2;;;30:1;27;20:12;5:2;108:51:42;885:118:32;;;;;;;;;;;;;;;;;667:10:20;658:6;;:19;;;;;;;;;;;;;;;;;;725:6;;;;;;;;;;;692:40;;721:1;692:40;;;;;;;;;;;;981:12:32;965:30;;;;;;942:13;;:54;;;;;;;;;;;;;;;;;;885:118;61:100:42;;;;;;", - "deployedSourceMap": "61:100:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;61:100:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:875:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1041:875:32;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1041:875:32;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1041:875:32;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1041:875:32;;;;;;;;;;;;:::i;:::-;;5206:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3086:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3086:135:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2932:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2932:148:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2932:148:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3227:342;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3227:342:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3227:342:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1922:564;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1922:564:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;1598:137:20;;;:::i;:::-;;3575:116:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3575:116:32;;;;;;;;;;;;;;;;;3754:639;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3754:639:32;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3754:639:32;;;;;;;;;;;;;;;;;815:77:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1166:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2786:140:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2786:140:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5328:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6476:644;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6476:644:32;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6476:644:32;;;;;;;;;;;;;;;;;4432:736;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4432:736:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2523:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6037:376;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6037:376:32;;;;;;;;;;;;;;;;;5442:197;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5442:197:32;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5645:386;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5645:386:32;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:107:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1884:107:20;;;;;;;;;;;;;;;;;;;:::i;:::-;;2638:142:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2638:142:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:875;1019:9:20;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1205:27:32;1235:12;:21;1248:7;1235:21;;;;;;;;;;;;;;;1205:51;;1362:26;1340:48;;;;;;;;:11;:18;;;;;;;;;;;;:48;;;;;;;;;1319:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:16;1554:12;:19;;;;1528:46;;1665:24;1644:11;:18;;;:45;;;;;;;;;;;;;;;;;;;;;;;;1723:9;1699:11;:21;;;:33;;;;;;;;;;;;;;;;;;1766:9;;1742:11;:21;;:33;;;;;;;:::i;:::-;;1786:12;1804:7;1786:26;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1786:26:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1854:55;1867:10;1879:7;1888:9;1899;;1854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1854:55:32;;;;;;;;;;;;;;;;;1075:1:20;;1041:875:32;;;:::o;5206:116::-;5256:19;5302:13;;;;;;;;;;;5287:28;;5206:116;:::o;3086:135::-;3154:15;3191:12;3204:9;3191:23;;;;;;;;;;;;;;;;;;;;;;;;;;;3181:33;;3086:135;;;:::o;2932:148::-;2996:22;3042:12;:21;3055:7;3042:21;;;;;;;;;;;;;;;:31;;3030:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:148;;;:::o;3227:342::-;3294:20;3324:16;3350:22;3389:26;;:::i;:::-;3418:12;:21;3431:7;3418:21;;;;;;;;;;;;;;;3389:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:11;:18;;;3449:27;;3498:11;:21;;;3486:33;;3541:11;:21;;;3529:33;;3227:342;;;;;;:::o;1922:564::-;1019:9:20;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2055:27:32;2085:12;:21;2098:7;2085:21;;;;;;;;;;;;;;;2055:51;;2236:24;2214:46;;;;;;;;:11;:18;;;;;;;;;;;;:46;;;;;;;;;2193:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2384:21;2363:11;:18;;;:42;;;;;;;;;;;;;;;;;;;;;;;;2421:58;2436:10;2448:7;2457:11;:21;;;;;;;;;;;;2421:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:1:20;1922:564:32;:::o;1598:137:20:-;1019:9;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:1;1659:40;;1680:6;;;;;;;;;;;1659:40;;;;;;;;;;;;1726:1;1709:6;;:19;;;;;;;;;;;;;;;;;;1598:137::o;3575:116:32:-;3622:26;3672:12;3660:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3575:116;:::o;3754:639::-;3846:26;3905:8;3892:10;:21;3884:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:12;:19;;;;3973:8;:31;;3965:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4088:22;4138:10;4127:8;:21;4113:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4113:36:32;;;;4088:61;;4215:9;4227:10;4215:22;;4210:112;4243:8;4239:1;:12;4210:112;;;4296:12;4309:1;4296:15;;;;;;;;;;;;;;;;;;;;;;;;;4272:5;4282:10;4278:1;:14;4272:21;;;;;;;;;;;;;:39;;;;;;;;;;;4253:3;;;;;;;4210:112;;;;4381:5;4369:17;;3754:639;;;;;:::o;815:77:20:-;853:7;879:6;;;;;;;;;;;872:13;;815:77;:::o;1166:90::-;1206:4;1243:6;;;;;;;;;;;1229:20;;:10;:20;;;1222:27;;1166:90;:::o;2786:140:32:-;2848:16;2888:12;:21;2901:7;2888:21;;;;;;;;;;;;;;;:31;;;;;;;;;;;;2876:43;;2786:140;;;:::o;5328:108::-;5379:13;5412:10;:17;;;;5404:25;;5328:108;:::o;6476:644::-;6568:26;6627:8;6614:10;:21;6606:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:10;:17;;;;6695:8;:29;;6687:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6808:22;6858:10;6847:8;:21;6833:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6833:36:32;;;;6808:61;;6935:9;6947:10;6935:22;;6930:119;6963:8;6959:1;:12;6930:119;;;7016:10;7027:1;7016:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6992:5;7002:10;6998:1;:14;6992:21;;;;;;;;;;;;;:46;;;;;;;;;;;6973:3;;;;;;;6930:119;;;;7108:5;7096:17;;6476:644;;;;;:::o;4432:736::-;4536:20;4570:16;4638:22;4649:10;4638;:22::i;:::-;4522:138;;;;;4760:24;4750:34;;;;;;;;:6;:34;;;;;;;;;4729:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4844:21;4868:10;:17;;;;4844:41;;4895:10;4924:136;;;;;;;;4961:8;4924:136;;;;;;4998:9;4924:136;;;;;;5036:9;4924:136;;;;;4895:175;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4895:175:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5127:7;5086:75;;5115:10;5086:75;;5105:8;5086:75;;;5136:13;5151:9;5086:75;;;;;;;;;;;;;;;;;;;;;;;;;;4432:736;;;;;;:::o;2523:109::-;2573:13;2606:12;:19;;;;2598:27;;2523:109;:::o;6037:376::-;6084:26;6122:14;6139:10;:17;;;;6122:34;;6166:26;6209:6;6195:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6195:21:32;;;;6166:50;;6282:9;6294:1;6282:13;;6277:99;6301:6;6297:1;:10;6277:99;;;6343:10;6354:1;6343:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6328:9;6338:1;6328:12;;;;;;;;;;;;;:37;;;;;;;;;;;6309:3;;;;;;;6277:99;;;;6397:9;6385:21;;6037:376;;;:::o;5442:197::-;5501:16;5545:10;:17;;;;5537:5;:25;5529:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5606:10;5617:5;5606:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;5595:37;;5442:197;;;:::o;5645:386::-;5716:23;5741:16;5759;5804:10;:17;;;;5796:5;:25;5788:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:24;;:::i;:::-;5882:10;5893:5;5882:17;;;;;;;;;;;;;;;5855:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:8;:17;;;5909:35;;5966:8;:18;;;5954:30;;6006:8;:18;;;5994:30;;5645:386;;;;;;:::o;1884:107:20:-;1019:9;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:28;1975:8;1956:18;:28::i;:::-;1884:107;:::o;2638:142:32:-;2704:20;2745:12;:21;2758:7;2745:21;;;;;;;;;;;;;;;:28;;;;;;;;;;;;2736:37;;2638:142;;;:::o;2092:225:20:-;2185:1;2165:22;;:8;:22;;;;2157:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:8;2245:38;;2266:6;;;;;;;;;;;2245:38;;;;;;;;;;;;2302:8;2293:6;;:17;;;;;;;;;;;;;;;;;;2092:225;:::o;61:100:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/Registry.sol\";\n\n\ncontract Erasure_Agreements is Registry {\n\n constructor() public Registry('Agreement') {\n\n }\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Agreements.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Agreements.sol", - "exportedSymbols": { - "Erasure_Agreements": [ - 8599 - ] - }, - "id": 8600, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8588, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:42" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Registry.sol", - "file": "../modules/Registry.sol", - "id": 8589, - "nodeType": "ImportDirective", - "scope": 8600, - "sourceUnit": 7287, - "src": "25:33:42", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8590, - "name": "Registry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7286, - "src": "92:8:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$7286", - "typeString": "contract Registry" - } - }, - "id": 8591, - "nodeType": "InheritanceSpecifier", - "src": "92:8:42" - } - ], - "contractDependencies": [ - 5077, - 7286 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8599, - "linearizedBaseContracts": [ - 8599, - 7286, - 5077 - ], - "name": "Erasure_Agreements", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8597, - "nodeType": "Block", - "src": "151:8:42", - "statements": [] - }, - "documentation": null, - "id": 8598, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "41677265656d656e74", - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:11:42", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - }, - "value": "Agreement" - } - ], - "id": 8595, - "modifierName": { - "argumentTypes": null, - "id": 8593, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7286, - "src": "129:8:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Registry_$7286_$", - "typeString": "type(contract Registry)" - } - }, - "nodeType": "ModifierInvocation", - "src": "129:21:42" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8592, - "nodeType": "ParameterList", - "parameters": [], - "src": "119:2:42" - }, - "returnParameters": { - "id": 8596, - "nodeType": "ParameterList", - "parameters": [], - "src": "151:0:42" - }, - "scope": 8599, - "src": "108:51:42", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8600, - "src": "61:100:42" - } - ], - "src": "0:162:42" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Agreements.sol", - "exportedSymbols": { - "Erasure_Agreements": [ - 8599 - ] - }, - "id": 8600, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8588, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:42" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Registry.sol", - "file": "../modules/Registry.sol", - "id": 8589, - "nodeType": "ImportDirective", - "scope": 8600, - "sourceUnit": 7287, - "src": "25:33:42", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8590, - "name": "Registry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7286, - "src": "92:8:42", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$7286", - "typeString": "contract Registry" - } - }, - "id": 8591, - "nodeType": "InheritanceSpecifier", - "src": "92:8:42" - } - ], - "contractDependencies": [ - 5077, - 7286 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8599, - "linearizedBaseContracts": [ - 8599, - 7286, - 5077 - ], - "name": "Erasure_Agreements", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8597, - "nodeType": "Block", - "src": "151:8:42", - "statements": [] - }, - "documentation": null, - "id": 8598, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "41677265656d656e74", - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:11:42", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - }, - "value": "Agreement" - } - ], - "id": 8595, - "modifierName": { - "argumentTypes": null, - "id": 8593, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7286, - "src": "129:8:42", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Registry_$7286_$", - "typeString": "type(contract Registry)" - } - }, - "nodeType": "ModifierInvocation", - "src": "129:21:42" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8592, - "nodeType": "ParameterList", - "parameters": [], - "src": "119:2:42" - }, - "returnParameters": { - "id": 8596, - "nodeType": "ParameterList", - "parameters": [], - "src": "151:0:42" - }, - "scope": 8599, - "src": "108:51:42", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8600, - "src": "61:100:42" - } - ], - "src": "0:162:42" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.403Z" -} \ No newline at end of file diff --git a/build/Erasure_Posts.json b/build/Erasure_Posts.json deleted file mode 100644 index 4ae499a9..00000000 --- a/build/Erasure_Posts.json +++ /dev/null @@ -1,788 +0,0 @@ -{ - "contractName": "Erasure_Posts", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "name": "addFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "name": "getFactoryAddress", - "outputs": [ - { - "name": "factory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryData", - "outputs": [ - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactory", - "outputs": [ - { - "name": "status", - "type": "uint8" - }, - { - "name": "factoryID", - "type": "uint16" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "retireFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryID", - "outputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "instance", - "type": "address" - }, - { - "name": "creator", - "type": "address" - }, - { - "name": "extraData", - "type": "uint80" - } - ], - "name": "register", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactoryCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstanceData", - "outputs": [ - { - "name": "instanceAddress", - "type": "address" - }, - { - "name": "factoryID", - "type": "uint16" - }, - { - "name": "extraData", - "type": "uint80" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryStatus", - "outputs": [ - { - "name": "status", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - }, - { - "indexed": false, - "name": "extraData", - "type": "bytes" - } - ], - "name": "FactoryAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "FactoryRetired", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "factory", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "instanceIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "InstanceRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040518060400160405280600481526020017f506f737400000000000000000000000000000000000000000000000000000000815250336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38080519060200120600360006101000a81548163ffffffff021916908360e01c0217905550506120d4806101386000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80638f32d59b116100b8578063d10474341161007c578063d10474341461076c578063d35fdd791461078a578063ebd348de146107e9578063f12d27bf14610857578063f2fde38b146108f3578063f795ab751461093757610137565b80638f32d59b146105c5578063a826eb1e146105e7578063ae34325c14610647578063b71f2e7214610665578063bba83f64146106f257610137565b806363e5a670116100ff57806363e5a67014610441578063715018a6146104855780637e6cbb6a1461048f57806386609652146104ee5780638da5cb5b1461057b57610137565b806314ad01441461013c57806318c2f4cf146101d557806332e04be31461023157806345bdfb1e146102a35780635e994dca14610360575b600080fd5b6101d36004803603604081101561015257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561018f57600080fd5b8201836020820111156101a157600080fd5b803590602001918460018302840111640100000000831117156101c357600080fd5b909192939192939050505061099d565b005b6101dd610c81565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6102616004803603602081101561024757600080fd5b81019080803561ffff169060200190929190505050610c98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cdd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032557808201518184015260208101905061030a565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a26004803603602081101561037657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc1565b604051808460028111156103b257fe5b60ff1681526020018361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104836004803603602081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f26565b005b61048d611142565b005b61049761127b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104da5780820151818401526020810190506104bf565b505050509050019250505060405180910390f35b6105246004803603604081101561050457600080fd5b810190808035906020019092919080359060200190929190505050611309565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b6105836114ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cd6114e3565b604051808215151515815260200191505060405180910390f35b610629600480360360208110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153a565b604051808261ffff1661ffff16815260200191505060405180910390f35b61064f611594565b6040518082815260200191505060405180910390f35b61069b6004803603604081101561067b57600080fd5b8101908080359060200190929190803590602001909291905050506115a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106de5780820151818401526020810190506106c3565b505050509050019250505060405180910390f35b61076a6004803603606081101561070857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803569ffffffffffffffffffff169060200190929190505050611755565b005b610774611996565b6040518082815260200191505060405180910390f35b6107926119a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d55780820151818401526020810190506107ba565b505050509050019250505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108836004803603602081101561086d57600080fd5b8101908080359060200190929190505050611b46565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018361ffff1661ffff1681526020018269ffffffffffffffffffff1669ffffffffffffffffffff168152602001935050505060405180910390f35b6109356004803603602081101561090957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cbc565b005b6109796004803603602081101561094d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082600281111561098957fe5b60ff16815260200191505060405180910390f35b6109a56114e3565b610a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002811115610a6757fe5b8160000160009054906101000a900460ff166002811115610a8457fe5b14610ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806120226036913960400191505060405180910390fd5b6000600180549050905060018260000160006101000a81548160ff02191690836002811115610b0557fe5b0217905550808260000160016101000a81548161ffff021916908361ffff1602179055508383836001019190610b3c929190611edf565b5060018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f2b60b760542791ba21c4029237f2aa264a5731131d53872f4689f7113e8a77043386838787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a15050505050565b6000600360009054906101000a900460e01b905090565b600060018261ffff1681548110610cab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b50505050509050919050565b6000806060610dce611f5f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166002811115610e3657fe5b6002811115610e4157fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050815250509050806000015193508060200151925080604001519150509193909250565b610f2e6114e3565b610fa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016002811115610ff057fe5b8160000160009054906101000a900460ff16600281111561100d57fe5b14611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061207d6023913960400191505060405180910390fd5b60028160000160006101000a81548160ff0219169083600281111561108457fe5b02179055507fb2efe2b3bb8a6c15454da20cd3d82d0380c15bc3df9ebbb767ddeca18b75e3a833838360000160019054906101000a900461ffff16604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018261ffff168152602001935050505060405180910390a15050565b61114a6114e3565b6111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060018054806020026020016040519081016040528092919081815260200182805480156112ff57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112b5575b5050505050905090565b6060818310611363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b6001805490508211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156114115781602001602082028038833980820191505090505b50905060008490505b838110156114af576001818154811061142f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061146857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061141a565b508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900461ffff169050919050565b6000600480549050905090565b60608183106115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b600480549050821115611676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156116a95781602001602082028038833980820191505090505b50905060008490505b8381101561174a57600481815481106116c757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061170357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506116b2565b508091505092915050565b60008061176133610dc1565b50915091506001600281111561177357fe5b82600281111561177f57fe5b146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f666163746f727920696e2077726f6e672073746174757300000000000000000081525060200191505060405180910390fd5b60006004805490509050600460405180606001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff1681526020018669ffffffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548161ffff021916908361ffff16021790555060408201518160000160166101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff1602179055505050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fb35ceb7181267b8ad385c9c8b08bb23bf2580e751105dd463d17602effb427168486604051808381526020018261ffff1681526020019250505060405180910390a4505050505050565b6000600180549050905090565b6060600060048054905090506060816040519080825280602002602001820160405280156119e05781602001602082028038833980820191505090505b50905060008090505b82811015611a7f57600481815481106119fe57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110611a3857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506119e9565b50809250505090565b60006004805490508210611b04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60048281548110611b1157fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060006004805490508410611bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b611bcd611f8f565b60048581548110611bda57fe5b906000526020600020016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900461ffff1661ffff1661ffff1681526020016000820160169054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1669ffffffffffffffffffff16815250509050806000015193508060200151925080604001519150509193909250565b611cc46114e3565b611d36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611d3f81611d9b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ffc6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f2057803560ff1916838001178555611f4e565b82800160010185558215611f4e579182015b82811115611f4d578235825591602001919060010190611f32565b5b509050611f5b9190611fd6565b5090565b604051806060016040528060006002811115611f7757fe5b8152602001600061ffff168152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600061ffff168152602001600069ffffffffffffffffffff1681525090565b611ff891905b80821115611ff4576000816000905550600101611fdc565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373666163746f727920616c726561647920657869737473206174207468652070726f766964656420666163746f727920616464726573737374617274496e646578206d757374206265206c657373207468616e20656e64496e646578666163746f7279206973206e6f742063757272656e746c792072656769737465726564a265627a7a7230582043ae0d1ff6c70052a2e8aefe960cd55e8cb30480c201308f2c4cccc7fa907e1964736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c80638f32d59b116100b8578063d10474341161007c578063d10474341461076c578063d35fdd791461078a578063ebd348de146107e9578063f12d27bf14610857578063f2fde38b146108f3578063f795ab751461093757610137565b80638f32d59b146105c5578063a826eb1e146105e7578063ae34325c14610647578063b71f2e7214610665578063bba83f64146106f257610137565b806363e5a670116100ff57806363e5a67014610441578063715018a6146104855780637e6cbb6a1461048f57806386609652146104ee5780638da5cb5b1461057b57610137565b806314ad01441461013c57806318c2f4cf146101d557806332e04be31461023157806345bdfb1e146102a35780635e994dca14610360575b600080fd5b6101d36004803603604081101561015257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561018f57600080fd5b8201836020820111156101a157600080fd5b803590602001918460018302840111640100000000831117156101c357600080fd5b909192939192939050505061099d565b005b6101dd610c81565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b6102616004803603602081101561024757600080fd5b81019080803561ffff169060200190929190505050610c98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102e5600480360360208110156102b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cdd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561032557808201518184015260208101905061030a565b50505050905090810190601f1680156103525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103a26004803603602081101561037657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc1565b604051808460028111156103b257fe5b60ff1681526020018361ffff1661ffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104836004803603602081101561045757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f26565b005b61048d611142565b005b61049761127b565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104da5780820151818401526020810190506104bf565b505050509050019250505060405180910390f35b6105246004803603604081101561050457600080fd5b810190808035906020019092919080359060200190929190505050611309565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561056757808201518184015260208101905061054c565b505050509050019250505060405180910390f35b6105836114ba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cd6114e3565b604051808215151515815260200191505060405180910390f35b610629600480360360208110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061153a565b604051808261ffff1661ffff16815260200191505060405180910390f35b61064f611594565b6040518082815260200191505060405180910390f35b61069b6004803603604081101561067b57600080fd5b8101908080359060200190929190803590602001909291905050506115a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106de5780820151818401526020810190506106c3565b505050509050019250505060405180910390f35b61076a6004803603606081101561070857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803569ffffffffffffffffffff169060200190929190505050611755565b005b610774611996565b6040518082815260200191505060405180910390f35b6107926119a3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107d55780820151818401526020810190506107ba565b505050509050019250505060405180910390f35b610815600480360360208110156107ff57600080fd5b8101908080359060200190929190505050611a88565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108836004803603602081101561086d57600080fd5b8101908080359060200190929190505050611b46565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018361ffff1661ffff1681526020018269ffffffffffffffffffff1669ffffffffffffffffffff168152602001935050505060405180910390f35b6109356004803603602081101561090957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cbc565b005b6109796004803603602081101561094d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d42565b6040518082600281111561098957fe5b60ff16815260200191505060405180910390f35b6109a56114e3565b610a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060006002811115610a6757fe5b8160000160009054906101000a900460ff166002811115610a8457fe5b14610ada576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001806120226036913960400191505060405180910390fd5b6000600180549050905060018260000160006101000a81548160ff02191690836002811115610b0557fe5b0217905550808260000160016101000a81548161ffff021916908361ffff1602179055508383836001019190610b3c929190611edf565b5060018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f2b60b760542791ba21c4029237f2aa264a5731131d53872f4689f7113e8a77043386838787604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f820116905080830192505050965050505050505060405180910390a15050505050565b6000600360009054906101000a900460e01b905090565b600060018261ffff1681548110610cab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610db55780601f10610d8a57610100808354040283529160200191610db5565b820191906000526020600020905b815481529060010190602001808311610d9857829003601f168201915b50505050509050919050565b6000806060610dce611f5f565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060600160405290816000820160009054906101000a900460ff166002811115610e3657fe5b6002811115610e4157fe5b81526020016000820160019054906101000a900461ffff1661ffff1661ffff168152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610efe5780601f10610ed357610100808354040283529160200191610efe565b820191906000526020600020905b815481529060010190602001808311610ee157829003601f168201915b5050505050815250509050806000015193508060200151925080604001519150509193909250565b610f2e6114e3565b610fa0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016002811115610ff057fe5b8160000160009054906101000a900460ff16600281111561100d57fe5b14611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061207d6023913960400191505060405180910390fd5b60028160000160006101000a81548160ff0219169083600281111561108457fe5b02179055507fb2efe2b3bb8a6c15454da20cd3d82d0380c15bc3df9ebbb767ddeca18b75e3a833838360000160019054906101000a900461ffff16604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018261ffff168152602001935050505060405180910390a15050565b61114a6114e3565b6111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060018054806020026020016040519081016040528092919081815260200182805480156112ff57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112b5575b5050505050905090565b6060818310611363576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b6001805490508211156113de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156114115781602001602082028038833980820191505090505b50905060008490505b838110156114af576001818154811061142f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061146857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061141a565b508091505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160019054906101000a900461ffff169050919050565b6000600480549050905090565b60608183106115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806120586025913960400191505060405180910390fd5b600480549050821115611676576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156116a95781602001602082028038833980820191505090505b50905060008490505b8381101561174a57600481815481106116c757fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061170357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506116b2565b508091505092915050565b60008061176133610dc1565b50915091506001600281111561177357fe5b82600281111561177f57fe5b146117f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f666163746f727920696e2077726f6e672073746174757300000000000000000081525060200191505060405180910390fd5b60006004805490509050600460405180606001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020018461ffff1681526020018669ffffffffffffffffffff1681525090806001815401808255809150509060018203906000526020600020016000909192909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548161ffff021916908361ffff16021790555060408201518160000160166101000a81548169ffffffffffffffffffff021916908369ffffffffffffffffffff1602179055505050508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fb35ceb7181267b8ad385c9c8b08bb23bf2580e751105dd463d17602effb427168486604051808381526020018261ffff1681526020019250505060405180910390a4505050505050565b6000600180549050905090565b6060600060048054905090506060816040519080825280602002602001820160405280156119e05781602001602082028038833980820191505090505b50905060008090505b82811015611a7f57600481815481106119fe57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110611a3857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506119e9565b50809250505090565b60006004805490508210611b04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60048281548110611b1157fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060006004805490508410611bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b611bcd611f8f565b60048581548110611bda57fe5b906000526020600020016040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900461ffff1661ffff1661ffff1681526020016000820160169054906101000a900469ffffffffffffffffffff1669ffffffffffffffffffff1669ffffffffffffffffffff16815250509050806000015193508060200151925080604001519150509193909250565b611cc46114e3565b611d36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611d3f81611d9b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff169050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611ffc6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f2057803560ff1916838001178555611f4e565b82800160010185558215611f4e579182015b82811115611f4d578235825591602001919060010190611f32565b5b509050611f5b9190611fd6565b5090565b604051806060016040528060006002811115611f7757fe5b8152602001600061ffff168152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600061ffff168152602001600069ffffffffffffffffffff1681525090565b611ff891905b80821115611ff4576000816000905550600101611fdc565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373666163746f727920616c726561647920657869737473206174207468652070726f766964656420666163746f727920616464726573737374617274496e646578206d757374206265206c657373207468616e20656e64496e646578666163746f7279206973206e6f742063757272656e746c792072656769737465726564a265627a7a7230582043ae0d1ff6c70052a2e8aefe960cd55e8cb30480c201308f2c4cccc7fa907e1964736f6c634300050a0032", - "sourceMap": "61:90:45:-;;;103:46;8:9:-1;5:2;;;30:1;27;20:12;5:2;103:46:45;885:118:32;;;;;;;;;;;;;;;;;667:10:20;658:6;;:19;;;;;;;;;;;;;;;;;;725:6;;;;;;;;;;;692:40;;721:1;692:40;;;;;;;;;;;;981:12:32;965:30;;;;;;942:13;;:54;;;;;;;;;;;;;;;;;;885:118;61:90:45;;;;;;", - "deployedSourceMap": "61:90:45:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;61:90:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:875:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1041:875:32;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1041:875:32;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1041:875:32;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1041:875:32;;;;;;;;;;;;:::i;:::-;;5206:116;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;3086:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3086:135:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2932:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2932:148:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2932:148:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3227:342;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3227:342:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3227:342:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1922:564;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1922:564:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;1598:137:20;;;:::i;:::-;;3575:116:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3575:116:32;;;;;;;;;;;;;;;;;3754:639;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3754:639:32;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3754:639:32;;;;;;;;;;;;;;;;;815:77:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1166:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2786:140:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2786:140:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5328:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6476:644;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6476:644:32;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6476:644:32;;;;;;;;;;;;;;;;;4432:736;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4432:736:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2523:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6037:376;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6037:376:32;;;;;;;;;;;;;;;;;5442:197;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5442:197:32;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5645:386;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5645:386:32;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:107:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1884:107:20;;;;;;;;;;;;;;;;;;;:::i;:::-;;2638:142:32;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2638:142:32;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1041:875;1019:9:20;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1205:27:32;1235:12;:21;1248:7;1235:21;;;;;;;;;;;;;;;1205:51;;1362:26;1340:48;;;;;;;;:11;:18;;;;;;;;;;;;:48;;;;;;;;;1319:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:16;1554:12;:19;;;;1528:46;;1665:24;1644:11;:18;;;:45;;;;;;;;;;;;;;;;;;;;;;;;1723:9;1699:11;:21;;;:33;;;;;;;;;;;;;;;;;;1766:9;;1742:11;:21;;:33;;;;;;;:::i;:::-;;1786:12;1804:7;1786:26;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1786:26:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1854:55;1867:10;1879:7;1888:9;1899;;1854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1854:55:32;;;;;;;;;;;;;;;;;1075:1:20;;1041:875:32;;;:::o;5206:116::-;5256:19;5302:13;;;;;;;;;;;5287:28;;5206:116;:::o;3086:135::-;3154:15;3191:12;3204:9;3191:23;;;;;;;;;;;;;;;;;;;;;;;;;;;3181:33;;3086:135;;;:::o;2932:148::-;2996:22;3042:12;:21;3055:7;3042:21;;;;;;;;;;;;;;;:31;;3030:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:148;;;:::o;3227:342::-;3294:20;3324:16;3350:22;3389:26;;:::i;:::-;3418:12;:21;3431:7;3418:21;;;;;;;;;;;;;;;3389:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3458:11;:18;;;3449:27;;3498:11;:21;;;3486:33;;3541:11;:21;;;3529:33;;3227:342;;;;;;:::o;1922:564::-;1019:9:20;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2055:27:32;2085:12;:21;2098:7;2085:21;;;;;;;;;;;;;;;2055:51;;2236:24;2214:46;;;;;;;;:11;:18;;;;;;;;;;;;:46;;;;;;;;;2193:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2384:21;2363:11;:18;;;:42;;;;;;;;;;;;;;;;;;;;;;;;2421:58;2436:10;2448:7;2457:11;:21;;;;;;;;;;;;2421:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:1:20;1922:564:32;:::o;1598:137:20:-;1019:9;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1696:1;1659:40;;1680:6;;;;;;;;;;;1659:40;;;;;;;;;;;;1726:1;1709:6;;:19;;;;;;;;;;;;;;;;;;1598:137::o;3575:116:32:-;3622:26;3672:12;3660:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3575:116;:::o;3754:639::-;3846:26;3905:8;3892:10;:21;3884:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:12;:19;;;;3973:8;:31;;3965:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4088:22;4138:10;4127:8;:21;4113:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4113:36:32;;;;4088:61;;4215:9;4227:10;4215:22;;4210:112;4243:8;4239:1;:12;4210:112;;;4296:12;4309:1;4296:15;;;;;;;;;;;;;;;;;;;;;;;;;4272:5;4282:10;4278:1;:14;4272:21;;;;;;;;;;;;;:39;;;;;;;;;;;4253:3;;;;;;;4210:112;;;;4381:5;4369:17;;3754:639;;;;;:::o;815:77:20:-;853:7;879:6;;;;;;;;;;;872:13;;815:77;:::o;1166:90::-;1206:4;1243:6;;;;;;;;;;;1229:20;;:10;:20;;;1222:27;;1166:90;:::o;2786:140:32:-;2848:16;2888:12;:21;2901:7;2888:21;;;;;;;;;;;;;;;:31;;;;;;;;;;;;2876:43;;2786:140;;;:::o;5328:108::-;5379:13;5412:10;:17;;;;5404:25;;5328:108;:::o;6476:644::-;6568:26;6627:8;6614:10;:21;6606:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6707:10;:17;;;;6695:8;:29;;6687:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6808:22;6858:10;6847:8;:21;6833:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6833:36:32;;;;6808:61;;6935:9;6947:10;6935:22;;6930:119;6963:8;6959:1;:12;6930:119;;;7016:10;7027:1;7016:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6992:5;7002:10;6998:1;:14;6992:21;;;;;;;;;;;;;:46;;;;;;;;;;;6973:3;;;;;;;6930:119;;;;7108:5;7096:17;;6476:644;;;;;:::o;4432:736::-;4536:20;4570:16;4638:22;4649:10;4638;:22::i;:::-;4522:138;;;;;4760:24;4750:34;;;;;;;;:6;:34;;;;;;;;;4729:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4844:21;4868:10;:17;;;;4844:41;;4895:10;4924:136;;;;;;;;4961:8;4924:136;;;;;;4998:9;4924:136;;;;;;5036:9;4924:136;;;;;4895:175;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4895:175:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5127:7;5086:75;;5115:10;5086:75;;5105:8;5086:75;;;5136:13;5151:9;5086:75;;;;;;;;;;;;;;;;;;;;;;;;;;4432:736;;;;;;:::o;2523:109::-;2573:13;2606:12;:19;;;;2598:27;;2523:109;:::o;6037:376::-;6084:26;6122:14;6139:10;:17;;;;6122:34;;6166:26;6209:6;6195:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6195:21:32;;;;6166:50;;6282:9;6294:1;6282:13;;6277:99;6301:6;6297:1;:10;6277:99;;;6343:10;6354:1;6343:13;;;;;;;;;;;;;;;:22;;;;;;;;;;;;6328:9;6338:1;6328:12;;;;;;;;;;;;;:37;;;;;;;;;;;6309:3;;;;;;;6277:99;;;;6397:9;6385:21;;6037:376;;;:::o;5442:197::-;5501:16;5545:10;:17;;;;5537:5;:25;5529:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5606:10;5617:5;5606:17;;;;;;;;;;;;;;;:26;;;;;;;;;;;;5595:37;;5442:197;;;:::o;5645:386::-;5716:23;5741:16;5759;5804:10;:17;;;;5796:5;:25;5788:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5855:24;;:::i;:::-;5882:10;5893:5;5882:17;;;;;;;;;;;;;;;5855:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:8;:17;;;5909:35;;5966:8;:18;;;5954:30;;6006:8;:18;;;5994:30;;5645:386;;;;;;:::o;1884:107:20:-;1019:9;:7;:9::i;:::-;1011:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1956:28;1975:8;1956:18;:28::i;:::-;1884:107;:::o;2638:142:32:-;2704:20;2745:12;:21;2758:7;2745:21;;;;;;;;;;;;;;;:28;;;;;;;;;;;;2736:37;;2638:142;;;:::o;2092:225:20:-;2185:1;2165:22;;:8;:22;;;;2157:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:8;2245:38;;2266:6;;;;;;;;;;;2245:38;;;;;;;;;;;;2302:8;2293:6;;:17;;;;;;;;;;;;;;;;;;2092:225;:::o;61:90:45:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/Registry.sol\";\n\n\ncontract Erasure_Posts is Registry {\n\n constructor() public Registry(\"Post\") {\n\n }\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Posts.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Posts.sol", - "exportedSymbols": { - "Erasure_Posts": [ - 8638 - ] - }, - "id": 8639, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8627, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:45" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Registry.sol", - "file": "../modules/Registry.sol", - "id": 8628, - "nodeType": "ImportDirective", - "scope": 8639, - "sourceUnit": 7287, - "src": "25:33:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8629, - "name": "Registry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7286, - "src": "87:8:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$7286", - "typeString": "contract Registry" - } - }, - "id": 8630, - "nodeType": "InheritanceSpecifier", - "src": "87:8:45" - } - ], - "contractDependencies": [ - 5077, - 7286 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8638, - "linearizedBaseContracts": [ - 8638, - 7286, - 5077 - ], - "name": "Erasure_Posts", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8636, - "nodeType": "Block", - "src": "141:8:45", - "statements": [] - }, - "documentation": null, - "id": 8637, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "133:6:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "id": 8634, - "modifierName": { - "argumentTypes": null, - "id": 8632, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7286, - "src": "124:8:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Registry_$7286_$", - "typeString": "type(contract Registry)" - } - }, - "nodeType": "ModifierInvocation", - "src": "124:16:45" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8631, - "nodeType": "ParameterList", - "parameters": [], - "src": "114:2:45" - }, - "returnParameters": { - "id": 8635, - "nodeType": "ParameterList", - "parameters": [], - "src": "141:0:45" - }, - "scope": 8638, - "src": "103:46:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8639, - "src": "61:90:45" - } - ], - "src": "0:152:45" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Posts.sol", - "exportedSymbols": { - "Erasure_Posts": [ - 8638 - ] - }, - "id": 8639, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8627, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:45" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Registry.sol", - "file": "../modules/Registry.sol", - "id": 8628, - "nodeType": "ImportDirective", - "scope": 8639, - "sourceUnit": 7287, - "src": "25:33:45", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8629, - "name": "Registry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7286, - "src": "87:8:45", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Registry_$7286", - "typeString": "contract Registry" - } - }, - "id": 8630, - "nodeType": "InheritanceSpecifier", - "src": "87:8:45" - } - ], - "contractDependencies": [ - 5077, - 7286 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8638, - "linearizedBaseContracts": [ - 8638, - 7286, - 5077 - ], - "name": "Erasure_Posts", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8636, - "nodeType": "Block", - "src": "141:8:45", - "statements": [] - }, - "documentation": null, - "id": 8637, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "133:6:45", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "id": 8634, - "modifierName": { - "argumentTypes": null, - "id": 8632, - "name": "Registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7286, - "src": "124:8:45", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Registry_$7286_$", - "typeString": "type(contract Registry)" - } - }, - "nodeType": "ModifierInvocation", - "src": "124:16:45" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8631, - "nodeType": "ParameterList", - "parameters": [], - "src": "114:2:45" - }, - "returnParameters": { - "id": 8635, - "nodeType": "ParameterList", - "parameters": [], - "src": "141:0:45" - }, - "scope": 8638, - "src": "103:46:45", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8639, - "src": "61:90:45" - } - ], - "src": "0:152:45" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.402Z" -} \ No newline at end of file diff --git a/build/Erasure_Users.json b/build/Erasure_Users.json deleted file mode 100644 index d871ecec..00000000 --- a/build/Erasure_Users.json +++ /dev/null @@ -1,5080 +0,0 @@ -{ - "contractName": "Erasure_Users", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "user", - "type": "address" - }, - { - "indexed": false, - "name": "data", - "type": "bytes" - } - ], - "name": "UserRegistered", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "user", - "type": "address" - } - ], - "name": "UserRemoved", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "name": "registerUser", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "removeUser", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "user", - "type": "address" - } - ], - "name": "getUserData", - "outputs": [ - { - "name": "data", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getUsers", - "outputs": [ - { - "name": "users", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getUserCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedUsers", - "outputs": [ - { - "name": "users", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610f9b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100615760003560e01c8062ce8e3e146100665780630a38178c146100c5578063b5cb15f714610180578063cf5caa121461019e578063f944f4c71461022b578063ffc9896b14610235575b600080fd5b61006e6102f2565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100b1578082015181840152602081019050610096565b505050509050019250505060405180910390f35b61017e600480360360208110156100db57600080fd5b81019080803590602001906401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610383565b005b610188610528565b6040518082815260200191505060405180910390f35b6101d4600480360360408110156101b457600080fd5b810190808035906020019092919080359060200190929190505050610539565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b6102336106ca565b005b6102776004803603602081101561024b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b757808201518184015260208101905061029c565b50505050905090810190601f1680156102e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6060600060010180548060200260200160405190810160405280929190818152602001828054801561037957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161032f575b5050505050905090565b6103973360006108d590919063ffffffff16565b1561040a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7573657220616c7265616479206578697374730000000000000000000000000081525060200191505060405180910390fd5b61041e3360006109a190919063ffffffff16565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190610471929190610d7e565b503373ffffffffffffffffffffffffffffffffffffffff167fb4e474a799db1c21852b730a8ac43394df2133bba1b219242c78954109a980a1826040518080602001828103825283818151815260200191508051906020019080838360005b838110156104eb5780820151818401526020810190506104d0565b50505050905090810190601f1680156105185780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60006105346000610b3a565b905090565b6060818310610593576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610ec06025913960400191505060405180910390fd5b61059d6000610b3a565b821115610612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156106455781602001602082028038833980820191505090505b50905060008490505b838110156106bf5761066a816000610b4b90919063ffffffff16565b828683038151811061067857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061064e565b508091505092915050565b6106de3360006108d590919063ffffffff16565b610750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7573657220646f6573206e6f742065786973740000000000000000000000000081525060200191505060405180910390fd5b610764336000610b8f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107af9190610dfe565b3373ffffffffffffffffffffffffffffffffffffffff167fe9dce8c992623ce791725b21e857e33248d1f190a25b5168313420eebdaae99d60405160405180910390a2565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b50505050509050919050565b600080836001018054905014156108ef576000905061099b565b8173ffffffffffffffffffffffffffffffffffffffff16836001018460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061095657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610e986028913960400191505060405180910390fd5b610a3182826108d5565b15610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180610ee56043913960600191505060405180910390fd5b6001826001018290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550038260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600081600101805490509050919050565b6000826001018281548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b610b9982826108d5565b610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610f28603f913960400191505060405180910390fd5b6000826001016001610bff85610b3a565b0381548110610c0a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808460000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081846001018281548110610cd357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905583600101805480919060019003610d779190610e46565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610dbf57805160ff1916838001178555610ded565b82800160010185558215610ded579182015b82811115610dec578251825591602001919060010190610dd1565b5b509050610dfa9190610e72565b5090565b50805460018160011615610100020316600290046000825580601f10610e245750610e43565b601f016020900490600052602060002090810190610e429190610e72565b5b50565b815481835581811115610e6d57818360005260206000209182019101610e6c9190610e72565b5b505050565b610e9491905b80821115610e90576000816000905550600101610e78565b5090565b9056fe556e6f7264657265644b65795365742831303029202d204b65792063616e6e6f74206265203078307374617274496e646578206d757374206265206c657373207468616e20656e64496e646578556e6f726465726564416464726573735365742831303129202d204164647265737320286b65792920616c72656164792065786973747320696e20746865207365742e556e6f7264657265644b65795365742831303229202d204164647265737320286b65792920646f6573206e6f7420657869737420696e20746865207365742ea265627a7a72305820f6f477731db7034b744138c96e26ea4c908c30ebbb88f3a980b9b39d20d3ccf864736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100615760003560e01c8062ce8e3e146100665780630a38178c146100c5578063b5cb15f714610180578063cf5caa121461019e578063f944f4c71461022b578063ffc9896b14610235575b600080fd5b61006e6102f2565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156100b1578082015181840152602081019050610096565b505050509050019250505060405180910390f35b61017e600480360360208110156100db57600080fd5b81019080803590602001906401000000008111156100f857600080fd5b82018360208201111561010a57600080fd5b8035906020019184600183028401116401000000008311171561012c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610383565b005b610188610528565b6040518082815260200191505060405180910390f35b6101d4600480360360408110156101b457600080fd5b810190808035906020019092919080359060200190929190505050610539565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b6102336106ca565b005b6102776004803603602081101561024b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102b757808201518184015260208101905061029c565b50505050905090810190601f1680156102e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6060600060010180548060200260200160405190810160405280929190818152602001828054801561037957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161032f575b5050505050905090565b6103973360006108d590919063ffffffff16565b1561040a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7573657220616c7265616479206578697374730000000000000000000000000081525060200191505060405180910390fd5b61041e3360006109a190919063ffffffff16565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190610471929190610d7e565b503373ffffffffffffffffffffffffffffffffffffffff167fb4e474a799db1c21852b730a8ac43394df2133bba1b219242c78954109a980a1826040518080602001828103825283818151815260200191508051906020019080838360005b838110156104eb5780820151818401526020810190506104d0565b50505050905090810190601f1680156105185780820380516001836020036101000a031916815260200191505b509250505060405180910390a250565b60006105346000610b3a565b905090565b6060818310610593576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180610ec06025913960400191505060405180910390fd5b61059d6000610b3a565b821115610612576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b60608383036040519080825280602002602001820160405280156106455781602001602082028038833980820191505090505b50905060008490505b838110156106bf5761066a816000610b4b90919063ffffffff16565b828683038151811061067857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061064e565b508091505092915050565b6106de3360006108d590919063ffffffff16565b610750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7573657220646f6573206e6f742065786973740000000000000000000000000081525060200191505060405180910390fd5b610764336000610b8f90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107af9190610dfe565b3373ffffffffffffffffffffffffffffffffffffffff167fe9dce8c992623ce791725b21e857e33248d1f190a25b5168313420eebdaae99d60405160405180910390a2565b6060600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108c95780601f1061089e576101008083540402835291602001916108c9565b820191906000526020600020905b8154815290600101906020018083116108ac57829003601f168201915b50505050509050919050565b600080836001018054905014156108ef576000905061099b565b8173ffffffffffffffffffffffffffffffffffffffff16836001018460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811061095657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180610e986028913960400191505060405180910390fd5b610a3182826108d5565b15610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526043815260200180610ee56043913960600191505060405180910390fd5b6001826001018290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550038260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600081600101805490509050919050565b6000826001018281548110610b5c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b610b9982826108d5565b610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f815260200180610f28603f913960400191505060405180910390fd5b6000826001016001610bff85610b3a565b0381548110610c0a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808460000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081846001018281548110610cd357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000905583600101805480919060019003610d779190610e46565b5050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610dbf57805160ff1916838001178555610ded565b82800160010185558215610ded579182015b82811115610dec578251825591602001919060010190610dd1565b5b509050610dfa9190610e72565b5090565b50805460018160011615610100020316600290046000825580601f10610e245750610e43565b601f016020900490600052602060002090810190610e429190610e72565b5b50565b815481835581811115610e6d57818360005260206000209182019101610e6c9190610e72565b5b505050565b610e9491905b80821115610e90576000816000905550600101610e78565b5090565b9056fe556e6f7264657265644b65795365742831303029202d204b65792063616e6e6f74206265203078307374617274496e646578206d757374206265206c657373207468616e20656e64496e646578556e6f726465726564416464726573735365742831303129202d204164647265737320286b65792920616c72656164792065786973747320696e20746865207365742e556e6f7264657265644b65795365742831303229202d204164647265737320286b65792920646f6573206e6f7420657869737420696e20746865207365742ea265627a7a72305820f6f477731db7034b744138c96e26ea4c908c30ebbb88f3a980b9b39d20d3ccf864736f6c634300050a0032", - "sourceMap": "83:2041:46:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:2041:46;;;;;;;", - "deployedSourceMap": "83:2041:46:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;83:2041:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:104;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1225:104:46;;;;;;;;;;;;;;;;;431:312;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;431:312:46;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;431:312:46;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;431:312:46;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;431:312:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;431:312:46;;;;;;;;;;;;;;;:::i;:::-;;1335:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1497:625;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1497:625:46;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1497:625:46;;;;;;;;;;;;;;;;;749:327;;;:::i;:::-;;1105:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1105:114:46;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1105:114:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:104;1266:22;1308:6;:14;;1300:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1225:104;:::o;431:312::-;498:25;512:10;498:6;:13;;:25;;;;:::i;:::-;497:26;489:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;578:25;592:10;578:6;:13;;:25;;;;:::i;:::-;662:4;638:9;:21;648:10;638:21;;;;;;;;;;;;;;;:28;;;;;;;;;;;;:::i;:::-;;719:10;704:32;;;731:4;704:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;704:32:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:312;:::o;1335:99::-;1380:13;1413:14;:6;:12;:14::i;:::-;1405:22;;1335:99;:::o;1497:625::-;1583:22;1638:8;1625:10;:21;1617:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:14;:6;:12;:14::i;:::-;1706:8;:26;;1698:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1816:22;1866:10;1855:8;:21;1841:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;1841:36:46;;;;1816:61;;1943:9;1955:10;1943:22;;1938:117;1971:8;1967:1;:12;1938:117;;;2024:20;2042:1;2024:6;:17;;:20;;;;:::i;:::-;2000:5;2010:10;2006:1;:14;2000:21;;;;;;;;;;;;;:44;;;;;;;;;;;1981:3;;;;;;;1938:117;;;;2110:5;2102:13;;1497:625;;;;;:::o;749:327::-;834:25;848:10;834:6;:13;;:25;;;;:::i;:::-;826:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;917:25;931:10;917:6;:13;;:25;;;;:::i;:::-;987:9;:21;997:10;987:21;;;;;;;;;;;;;;;;980:28;;;;:::i;:::-;1058:10;1046:23;;;;;;;;;;;;749:327::o;1105:114::-;1161:17;1197:9;:15;1207:4;1197:15;;;;;;;;;;;;;;;1190:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1105:114;;;:::o;1044:192:10:-;1113:4;1155:1;1132:4;:12;;:19;;;;:24;1129:41;;;1165:5;1158:12;;;;1129:41;1226:3;1187:42;;:4;:12;;1200:4;:16;;:21;1217:3;1200:21;;;;;;;;;;;;;;;;1187:35;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;1180:49;;1044:192;;;;;:::o;169:309::-;258:1;243:17;;:3;:17;;;;235:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:17;331:4;337:3;324:6;:17::i;:::-;323:18;315:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;470:1;447:4;:12;;465:3;447:22;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;447:22:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:24;423:4;:16;;:21;440:3;423:21;;;;;;;;;;;;;;;:48;;;;169:309;;:::o;933:105::-;988:4;1011;:12;;:19;;;;1004:27;;933:105;;;:::o;1242:124::-;1314:7;1340:4;:12;;1353:5;1340:19;;;;;;;;;;;;;;;;;;;;;;;;;1333:26;;1242:124;;;;:::o;484:443::-;558:17;565:4;571:3;558:6;:17::i;:::-;550:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;653:17;673:4;:12;;698:1;686:11;692:4;686:5;:11::i;:::-;:13;673:27;;;;;;;;;;;;;;;;;;;;;;;;;653:47;;710:17;730:4;:16;;:21;747:3;730:21;;;;;;;;;;;;;;;;710:41;;791:12;761:4;:16;;:27;778:9;761:27;;;;;;;;;;;;;;;:42;;;;842:9;813:4;:12;;826;813:26;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;868:4;:16;;:21;885:3;868:21;;;;;;;;;;;;;;;861:28;;;899:4;:12;;:21;;;;;;;;;;;;:::i;:::-;;484:443;;;;:::o;83:2041:46:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../helpers/HitchensUnorderedAddressSetLib.sol\";\n\n\ncontract Erasure_Users {\n\n using HitchensUnorderedAddressSetLib for HitchensUnorderedAddressSetLib.Set;\n HitchensUnorderedAddressSetLib.Set private _users;\n\n mapping (address => bytes) private _metadata;\n\n event UserRegistered(address indexed user, bytes data);\n event UserRemoved(address indexed user);\n\n // state functions\n\n function registerUser(bytes memory data) public {\n require(!_users.exists(msg.sender), \"user already exists\");\n\n // add user\n _users.insert(msg.sender);\n\n // set metadata\n _metadata[msg.sender] = data;\n\n // emit event\n emit UserRegistered(msg.sender, data);\n }\n\n function removeUser() public {\n // require user is registered\n require(_users.exists(msg.sender), \"user does not exist\");\n\n // remove user\n _users.remove(msg.sender);\n\n // delete metadata\n delete _metadata[msg.sender];\n\n // emit event\n emit UserRemoved(msg.sender);\n }\n\n // view functions\n\n function getUserData(address user) public view returns (bytes memory data) {\n data = _metadata[user];\n }\n\n function getUsers() public view returns (address[] memory users) {\n users = _users.keyList;\n }\n\n function getUserCount() public view returns (uint256 count) {\n count = _users.count();\n }\n\n // Note: startIndex is inclusive, endIndex exclusive\n function getPaginatedUsers(uint256 startIndex, uint256 endIndex) public view returns (address[] memory users) {\n require(startIndex < endIndex, \"startIndex must be less than endIndex\");\n require(endIndex <= _users.count(), \"end index out of range\");\n\n // initialize fixed size memory array\n address[] memory range = new address[](endIndex - startIndex);\n\n // Populate array with addresses in range\n for (uint256 i = startIndex; i < endIndex; i++) {\n range[i - startIndex] = _users.keyAtIndex(i);\n }\n\n // return array of addresses\n users = range;\n }\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Users.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Users.sol", - "exportedSymbols": { - "Erasure_Users": [ - 8832 - ] - }, - "id": 8833, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8640, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:46" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/HitchensUnorderedAddressSetLib.sol", - "file": "../helpers/HitchensUnorderedAddressSetLib.sol", - "id": 8641, - "nodeType": "ImportDirective", - "scope": 8833, - "sourceUnit": 3687, - "src": "25:55:46", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8832, - "linearizedBaseContracts": [ - 8832 - ], - "name": "Erasure_Users", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 8644, - "libraryName": { - "contractScope": null, - "id": 8642, - "name": "HitchensUnorderedAddressSetLib", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3686, - "src": "119:30:46", - "typeDescriptions": { - "typeIdentifier": "t_contract$_HitchensUnorderedAddressSetLib_$3686", - "typeString": "library HitchensUnorderedAddressSetLib" - } - }, - "nodeType": "UsingForDirective", - "src": "113:76:46", - "typeName": { - "contractScope": null, - "id": 8643, - "name": "HitchensUnorderedAddressSetLib.Set", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3516, - "src": "154:34:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage_ptr", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - } - } - }, - { - "constant": false, - "id": 8646, - "name": "_users", - "nodeType": "VariableDeclaration", - "scope": 8832, - "src": "194:49:46", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - }, - "typeName": { - "contractScope": null, - "id": 8645, - "name": "HitchensUnorderedAddressSetLib.Set", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3516, - "src": "194:34:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage_ptr", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 8650, - "name": "_metadata", - "nodeType": "VariableDeclaration", - "scope": 8832, - "src": "250:44:46", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes)" - }, - "typeName": { - "id": 8649, - "keyType": { - "id": 8647, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "259:7:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "250:26:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes)" - }, - "valueType": { - "id": 8648, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "270:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 8656, - "name": "UserRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 8655, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8652, - "indexed": true, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8656, - "src": "322:20:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8651, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "322:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8654, - "indexed": false, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8656, - "src": "344:10:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8653, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "344:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "321:34:46" - }, - "src": "301:55:46" - }, - { - "anonymous": false, - "documentation": null, - "id": 8660, - "name": "UserRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 8659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8658, - "indexed": true, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8660, - "src": "379:20:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "379:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "378:22:46" - }, - "src": "361:40:46" - }, - { - "body": { - "id": 8695, - "nodeType": "Block", - "src": "479:264:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "497:26:46", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8668, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "512:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "512:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8666, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "498:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8667, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 3660, - "src": "498:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address) view returns (bool)" - } - }, - "id": 8670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "498:25:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7573657220616c726561647920657869737473", - "id": 8672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "525:21:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a4d7b7d222639f70280a8c87b627c135ce2533e7a3fe73a8c1e9102fb9a3078a", - "typeString": "literal_string \"user already exists\"" - }, - "value": "user already exists" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a4d7b7d222639f70280a8c87b627c135ce2533e7a3fe73a8c1e9102fb9a3078a", - "typeString": "literal_string \"user already exists\"" - } - ], - "id": 8665, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "489:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "489:58:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8674, - "nodeType": "ExpressionStatement", - "src": "489:58:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8678, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "592:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "592:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8675, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "578:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8677, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "insert", - "nodeType": "MemberAccess", - "referencedDeclaration": 3556, - "src": "578:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address)" - } - }, - "id": 8680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "578:25:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8681, - "nodeType": "ExpressionStatement", - "src": "578:25:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8682, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "638:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8685, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "648:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "648:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "638:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8686, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8662, - "src": "662:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "638:28:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 8688, - "nodeType": "ExpressionStatement", - "src": "638:28:46" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8690, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "719:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "719:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8692, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8662, - "src": "731:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8689, - "name": "UserRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8656, - "src": "704:14:46", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 8693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "704:32:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8694, - "nodeType": "EmitStatement", - "src": "699:37:46" - } - ] - }, - "documentation": null, - "id": 8696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerUser", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8662, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8696, - "src": "453:17:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8661, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "453:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "452:19:46" - }, - "returnParameters": { - "id": 8664, - "nodeType": "ParameterList", - "parameters": [], - "src": "479:0:46" - }, - "scope": 8832, - "src": "431:312:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8726, - "nodeType": "Block", - "src": "778:298:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8702, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "848:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "848:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8700, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "834:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8701, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 3660, - "src": "834:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address) view returns (bool)" - } - }, - "id": 8704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "834:25:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7573657220646f6573206e6f74206578697374", - "id": 8705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:21:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_44a1c20ceeb2d3c42bdd712ac4353ffb65e737bf726621f6505798c5f70aba18", - "typeString": "literal_string \"user does not exist\"" - }, - "value": "user does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_44a1c20ceeb2d3c42bdd712ac4353ffb65e737bf726621f6505798c5f70aba18", - "typeString": "literal_string \"user does not exist\"" - } - ], - "id": 8699, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "826:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "826:57:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8707, - "nodeType": "ExpressionStatement", - "src": "826:57:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8711, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "931:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "931:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8708, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "917:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8710, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 3619, - "src": "917:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address)" - } - }, - "id": 8713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "917:25:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8714, - "nodeType": "ExpressionStatement", - "src": "917:25:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "980:28:46", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8715, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "987:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8718, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8716, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "997:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "997:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "987:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8720, - "nodeType": "ExpressionStatement", - "src": "980:28:46" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8722, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1058:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1058:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 8721, - "name": "UserRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8660, - "src": "1046:11:46", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1046:23:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8725, - "nodeType": "EmitStatement", - "src": "1041:28:46" - } - ] - }, - "documentation": null, - "id": 8727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeUser", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8697, - "nodeType": "ParameterList", - "parameters": [], - "src": "768:2:46" - }, - "returnParameters": { - "id": 8698, - "nodeType": "ParameterList", - "parameters": [], - "src": "778:0:46" - }, - "scope": 8832, - "src": "749:327:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8740, - "nodeType": "Block", - "src": "1180:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8734, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8732, - "src": "1190:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8735, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "1197:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8737, - "indexExpression": { - "argumentTypes": null, - "id": 8736, - "name": "user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8729, - "src": "1207:4:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1197:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "1190:22:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 8739, - "nodeType": "ExpressionStatement", - "src": "1190:22:46" - } - ] - }, - "documentation": null, - "id": 8741, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUserData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8729, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8741, - "src": "1126:12:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1125:14:46" - }, - "returnParameters": { - "id": 8733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8732, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8741, - "src": "1161:17:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8731, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1161:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1160:19:46" - }, - "scope": 8832, - "src": "1105:114:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8752, - "nodeType": "Block", - "src": "1290:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8747, - "name": "users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8745, - "src": "1300:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8748, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1308:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "keyList", - "nodeType": "MemberAccess", - "referencedDeclaration": 3515, - "src": "1308:14:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "src": "1300:22:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8751, - "nodeType": "ExpressionStatement", - "src": "1300:22:46" - } - ] - }, - "documentation": null, - "id": 8753, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUsers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8742, - "nodeType": "ParameterList", - "parameters": [], - "src": "1242:2:46" - }, - "returnParameters": { - "id": 8746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8745, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 8753, - "src": "1266:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1266:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8744, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1266:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1265:24:46" - }, - "scope": 8832, - "src": "1225:104:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8764, - "nodeType": "Block", - "src": "1395:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8758, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8756, - "src": "1405:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8759, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1413:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3632, - "src": "1413:12:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer) view returns (uint256)" - } - }, - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1413:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1405:22:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8763, - "nodeType": "ExpressionStatement", - "src": "1405:22:46" - } - ] - }, - "documentation": null, - "id": 8765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUserCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8754, - "nodeType": "ParameterList", - "parameters": [], - "src": "1356:2:46" - }, - "returnParameters": { - "id": 8757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8756, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "1380:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1380:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1379:15:46" - }, - "scope": 8832, - "src": "1335:99:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8830, - "nodeType": "Block", - "src": "1607:515:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8776, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1625:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8777, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1638:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1625:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578", - "id": 8779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:39:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_492fa687fe415196acc105a7559629aa3b479c14705c1062c5647de560da5102", - "typeString": "literal_string \"startIndex must be less than endIndex\"" - }, - "value": "startIndex must be less than endIndex" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_492fa687fe415196acc105a7559629aa3b479c14705c1062c5647de560da5102", - "typeString": "literal_string \"startIndex must be less than endIndex\"" - } - ], - "id": 8775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1617:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1617:71:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8781, - "nodeType": "ExpressionStatement", - "src": "1617:71:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8783, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1706:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8784, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1718:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8785, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3632, - "src": "1718:12:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer) view returns (uint256)" - } - }, - "id": 8786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1718:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1706:26:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "656e6420696e646578206f7574206f662072616e6765", - "id": 8788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1734:24:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d416c789db1abc0f86e28342ecac51936ae9c666942c830f1640a0891a9c30c6", - "typeString": "literal_string \"end index out of range\"" - }, - "value": "end index out of range" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d416c789db1abc0f86e28342ecac51936ae9c666942c830f1640a0891a9c30c6", - "typeString": "literal_string \"end index out of range\"" - } - ], - "id": 8782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1698:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1698:61:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8790, - "nodeType": "ExpressionStatement", - "src": "1698:61:46" - }, - { - "assignments": [ - 8794 - ], - "declarations": [ - { - "constant": false, - "id": 8794, - "name": "range", - "nodeType": "VariableDeclaration", - "scope": 8830, - "src": "1816:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1816:7:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8793, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1816:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8802, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8798, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1855:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8799, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1866:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1855:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1841:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 8795, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1845:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8796, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1845:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 8801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1841:36:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1816:61:46" - }, - { - "body": { - "id": 8824, - "nodeType": "Block", - "src": "1986:69:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8813, - "name": "range", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8794, - "src": "2000:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8817, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8814, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "2006:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8815, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "2010:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2006:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2000:21:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8820, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "2042:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8818, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "2024:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "keyAtIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 3675, - "src": "2024:17:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,uint256) view returns (address)" - } - }, - "id": 8821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2024:20:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2000:44:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8823, - "nodeType": "ExpressionStatement", - "src": "2000:44:46" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "1967:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8808, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1971:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1967:12:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8825, - "initializationExpression": { - "assignments": [ - 8804 - ], - "declarations": [ - { - "constant": false, - "id": 8804, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8825, - "src": "1943:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1943:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8806, - "initialValue": { - "argumentTypes": null, - "id": 8805, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1955:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1943:22:46" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1981:3:46", - "subExpression": { - "argumentTypes": null, - "id": 8810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "1981:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8812, - "nodeType": "ExpressionStatement", - "src": "1981:3:46" - }, - "nodeType": "ForStatement", - "src": "1938:117:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8826, - "name": "users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8773, - "src": "2102:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8827, - "name": "range", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8794, - "src": "2110:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2102:13:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8829, - "nodeType": "ExpressionStatement", - "src": "2102:13:46" - } - ] - }, - "documentation": null, - "id": 8831, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPaginatedUsers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8767, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1524:18:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1524:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8769, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1544:16:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1544:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1523:38:46" - }, - "returnParameters": { - "id": 8774, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8773, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1583:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8771, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1583:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8772, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1583:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1582:24:46" - }, - "scope": 8832, - "src": "1497:625:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8833, - "src": "83:2041:46" - } - ], - "src": "0:2125:46" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/registries/Erasure_Users.sol", - "exportedSymbols": { - "Erasure_Users": [ - 8832 - ] - }, - "id": 8833, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8640, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:46" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/HitchensUnorderedAddressSetLib.sol", - "file": "../helpers/HitchensUnorderedAddressSetLib.sol", - "id": 8641, - "nodeType": "ImportDirective", - "scope": 8833, - "sourceUnit": 3687, - "src": "25:55:46", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8832, - "linearizedBaseContracts": [ - 8832 - ], - "name": "Erasure_Users", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 8644, - "libraryName": { - "contractScope": null, - "id": 8642, - "name": "HitchensUnorderedAddressSetLib", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3686, - "src": "119:30:46", - "typeDescriptions": { - "typeIdentifier": "t_contract$_HitchensUnorderedAddressSetLib_$3686", - "typeString": "library HitchensUnorderedAddressSetLib" - } - }, - "nodeType": "UsingForDirective", - "src": "113:76:46", - "typeName": { - "contractScope": null, - "id": 8643, - "name": "HitchensUnorderedAddressSetLib.Set", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3516, - "src": "154:34:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage_ptr", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - } - } - }, - { - "constant": false, - "id": 8646, - "name": "_users", - "nodeType": "VariableDeclaration", - "scope": 8832, - "src": "194:49:46", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - }, - "typeName": { - "contractScope": null, - "id": 8645, - "name": "HitchensUnorderedAddressSetLib.Set", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3516, - "src": "194:34:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage_ptr", - "typeString": "struct HitchensUnorderedAddressSetLib.Set" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 8650, - "name": "_metadata", - "nodeType": "VariableDeclaration", - "scope": 8832, - "src": "250:44:46", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes)" - }, - "typeName": { - "id": 8649, - "keyType": { - "id": 8647, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "259:7:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "250:26:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes)" - }, - "valueType": { - "id": 8648, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "270:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 8656, - "name": "UserRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 8655, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8652, - "indexed": true, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8656, - "src": "322:20:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8651, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "322:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8654, - "indexed": false, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8656, - "src": "344:10:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8653, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "344:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "321:34:46" - }, - "src": "301:55:46" - }, - { - "anonymous": false, - "documentation": null, - "id": 8660, - "name": "UserRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 8659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8658, - "indexed": true, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8660, - "src": "379:20:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "379:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "378:22:46" - }, - "src": "361:40:46" - }, - { - "body": { - "id": 8695, - "nodeType": "Block", - "src": "479:264:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "497:26:46", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8668, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "512:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "512:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8666, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "498:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8667, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 3660, - "src": "498:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address) view returns (bool)" - } - }, - "id": 8670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "498:25:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7573657220616c726561647920657869737473", - "id": 8672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "525:21:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a4d7b7d222639f70280a8c87b627c135ce2533e7a3fe73a8c1e9102fb9a3078a", - "typeString": "literal_string \"user already exists\"" - }, - "value": "user already exists" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a4d7b7d222639f70280a8c87b627c135ce2533e7a3fe73a8c1e9102fb9a3078a", - "typeString": "literal_string \"user already exists\"" - } - ], - "id": 8665, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "489:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "489:58:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8674, - "nodeType": "ExpressionStatement", - "src": "489:58:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8678, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "592:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "592:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8675, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "578:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8677, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "insert", - "nodeType": "MemberAccess", - "referencedDeclaration": 3556, - "src": "578:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address)" - } - }, - "id": 8680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "578:25:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8681, - "nodeType": "ExpressionStatement", - "src": "578:25:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8682, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "638:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8685, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8683, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "648:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "648:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "638:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8686, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8662, - "src": "662:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "src": "638:28:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "id": 8688, - "nodeType": "ExpressionStatement", - "src": "638:28:46" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8690, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "719:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "719:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8692, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8662, - "src": "731:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8689, - "name": "UserRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8656, - "src": "704:14:46", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory)" - } - }, - "id": 8693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "704:32:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8694, - "nodeType": "EmitStatement", - "src": "699:37:46" - } - ] - }, - "documentation": null, - "id": 8696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "registerUser", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8662, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8696, - "src": "453:17:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8661, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "453:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "452:19:46" - }, - "returnParameters": { - "id": 8664, - "nodeType": "ParameterList", - "parameters": [], - "src": "479:0:46" - }, - "scope": 8832, - "src": "431:312:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8726, - "nodeType": "Block", - "src": "778:298:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8702, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "848:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "848:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8700, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "834:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8701, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 3660, - "src": "834:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address) view returns (bool)" - } - }, - "id": 8704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "834:25:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7573657220646f6573206e6f74206578697374", - "id": 8705, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:21:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_44a1c20ceeb2d3c42bdd712ac4353ffb65e737bf726621f6505798c5f70aba18", - "typeString": "literal_string \"user does not exist\"" - }, - "value": "user does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_44a1c20ceeb2d3c42bdd712ac4353ffb65e737bf726621f6505798c5f70aba18", - "typeString": "literal_string \"user does not exist\"" - } - ], - "id": 8699, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "826:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "826:57:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8707, - "nodeType": "ExpressionStatement", - "src": "826:57:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8711, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "931:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "931:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8708, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "917:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8710, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 3619, - "src": "917:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$3516_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,address)" - } - }, - "id": 8713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "917:25:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8714, - "nodeType": "ExpressionStatement", - "src": "917:25:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "980:28:46", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8715, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "987:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8718, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8716, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "997:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "997:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "987:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8720, - "nodeType": "ExpressionStatement", - "src": "980:28:46" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8722, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1058:3:46", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1058:10:46", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 8721, - "name": "UserRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8660, - "src": "1046:11:46", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1046:23:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8725, - "nodeType": "EmitStatement", - "src": "1041:28:46" - } - ] - }, - "documentation": null, - "id": 8727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeUser", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8697, - "nodeType": "ParameterList", - "parameters": [], - "src": "768:2:46" - }, - "returnParameters": { - "id": 8698, - "nodeType": "ParameterList", - "parameters": [], - "src": "778:0:46" - }, - "scope": 8832, - "src": "749:327:46", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8740, - "nodeType": "Block", - "src": "1180:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8734, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8732, - "src": "1190:4:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8735, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8650, - "src": "1197:9:46", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bytes_storage_$", - "typeString": "mapping(address => bytes storage ref)" - } - }, - "id": 8737, - "indexExpression": { - "argumentTypes": null, - "id": 8736, - "name": "user", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8729, - "src": "1207:4:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1197:15:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "src": "1190:22:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 8739, - "nodeType": "ExpressionStatement", - "src": "1190:22:46" - } - ] - }, - "documentation": null, - "id": 8741, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUserData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8729, - "name": "user", - "nodeType": "VariableDeclaration", - "scope": 8741, - "src": "1126:12:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1125:14:46" - }, - "returnParameters": { - "id": 8733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8732, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 8741, - "src": "1161:17:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8731, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1161:5:46", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1160:19:46" - }, - "scope": 8832, - "src": "1105:114:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8752, - "nodeType": "Block", - "src": "1290:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8747, - "name": "users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8745, - "src": "1300:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8748, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1308:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "keyList", - "nodeType": "MemberAccess", - "referencedDeclaration": 3515, - "src": "1308:14:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "src": "1300:22:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8751, - "nodeType": "ExpressionStatement", - "src": "1300:22:46" - } - ] - }, - "documentation": null, - "id": 8753, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUsers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8742, - "nodeType": "ParameterList", - "parameters": [], - "src": "1242:2:46" - }, - "returnParameters": { - "id": 8746, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8745, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 8753, - "src": "1266:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8743, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1266:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8744, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1266:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1265:24:46" - }, - "scope": 8832, - "src": "1225:104:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8764, - "nodeType": "Block", - "src": "1395:39:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8758, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8756, - "src": "1405:5:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8759, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1413:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3632, - "src": "1413:12:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer) view returns (uint256)" - } - }, - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1413:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1405:22:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8763, - "nodeType": "ExpressionStatement", - "src": "1405:22:46" - } - ] - }, - "documentation": null, - "id": 8765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getUserCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8754, - "nodeType": "ParameterList", - "parameters": [], - "src": "1356:2:46" - }, - "returnParameters": { - "id": 8757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8756, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "1380:13:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8755, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1380:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1379:15:46" - }, - "scope": 8832, - "src": "1335:99:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8830, - "nodeType": "Block", - "src": "1607:515:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8776, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1625:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8777, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1638:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1625:21:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578", - "id": 8779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1648:39:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_492fa687fe415196acc105a7559629aa3b479c14705c1062c5647de560da5102", - "typeString": "literal_string \"startIndex must be less than endIndex\"" - }, - "value": "startIndex must be less than endIndex" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_492fa687fe415196acc105a7559629aa3b479c14705c1062c5647de560da5102", - "typeString": "literal_string \"startIndex must be less than endIndex\"" - } - ], - "id": 8775, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1617:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1617:71:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8781, - "nodeType": "ExpressionStatement", - "src": "1617:71:46" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8783, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1706:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8784, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "1718:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8785, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "count", - "nodeType": "MemberAccess", - "referencedDeclaration": 3632, - "src": "1718:12:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer) view returns (uint256)" - } - }, - "id": 8786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1718:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1706:26:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "656e6420696e646578206f7574206f662072616e6765", - "id": 8788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1734:24:46", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d416c789db1abc0f86e28342ecac51936ae9c666942c830f1640a0891a9c30c6", - "typeString": "literal_string \"end index out of range\"" - }, - "value": "end index out of range" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d416c789db1abc0f86e28342ecac51936ae9c666942c830f1640a0891a9c30c6", - "typeString": "literal_string \"end index out of range\"" - } - ], - "id": 8782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1698:7:46", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1698:61:46", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8790, - "nodeType": "ExpressionStatement", - "src": "1698:61:46" - }, - { - "assignments": [ - 8794 - ], - "declarations": [ - { - "constant": false, - "id": 8794, - "name": "range", - "nodeType": "VariableDeclaration", - "scope": 8830, - "src": "1816:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8792, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1816:7:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8793, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1816:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8802, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8798, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1855:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8799, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1866:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1855:21:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8797, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "1841:13:46", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 8795, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1845:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8796, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1845:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 8801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1841:36:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1816:61:46" - }, - { - "body": { - "id": 8824, - "nodeType": "Block", - "src": "1986:69:46", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8813, - "name": "range", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8794, - "src": "2000:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8817, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8814, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "2006:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 8815, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "2010:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2006:14:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2000:21:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8820, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "2042:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8818, - "name": "_users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8646, - "src": "2024:6:46", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Set_$3516_storage", - "typeString": "struct HitchensUnorderedAddressSetLib.Set storage ref" - } - }, - "id": 8819, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "keyAtIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 3675, - "src": "2024:17:46", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$3516_storage_ptr_$_t_uint256_$returns$_t_address_$bound_to$_t_struct$_Set_$3516_storage_ptr_$", - "typeString": "function (struct HitchensUnorderedAddressSetLib.Set storage pointer,uint256) view returns (address)" - } - }, - "id": 8821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2024:20:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2000:44:46", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8823, - "nodeType": "ExpressionStatement", - "src": "2000:44:46" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "1967:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 8808, - "name": "endIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "1971:8:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1967:12:46", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8825, - "initializationExpression": { - "assignments": [ - 8804 - ], - "declarations": [ - { - "constant": false, - "id": 8804, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8825, - "src": "1943:9:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1943:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8806, - "initialValue": { - "argumentTypes": null, - "id": 8805, - "name": "startIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "1955:10:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1943:22:46" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1981:3:46", - "subExpression": { - "argumentTypes": null, - "id": 8810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8804, - "src": "1981:1:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8812, - "nodeType": "ExpressionStatement", - "src": "1981:3:46" - }, - "nodeType": "ForStatement", - "src": "1938:117:46" - }, - { - "expression": { - "argumentTypes": null, - "id": 8828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8826, - "name": "users", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8773, - "src": "2102:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8827, - "name": "range", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8794, - "src": "2110:5:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2102:13:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8829, - "nodeType": "ExpressionStatement", - "src": "2102:13:46" - } - ] - }, - "documentation": null, - "id": 8831, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPaginatedUsers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8767, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1524:18:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1524:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8769, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1544:16:46", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1544:7:46", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1523:38:46" - }, - "returnParameters": { - "id": 8774, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8773, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 8831, - "src": "1583:22:46", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8771, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1583:7:46", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8772, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1583:9:46", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1582:24:46" - }, - "scope": 8832, - "src": "1497:625:46", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8833, - "src": "83:2041:46" - } - ], - "src": "0:2125:46" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.561Z" -} \ No newline at end of file diff --git a/build/Feed.json b/build/Feed.json deleted file mode 100644 index 57fce620..00000000 --- a/build/Feed.json +++ /dev/null @@ -1,5741 +0,0 @@ -{ - "contractName": "Feed", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getMetadata", - "outputs": [ - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOperator", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isCreator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "post", - "type": "address" - }, - { - "indexed": false, - "name": "postFactory", - "type": "address" - }, - { - "indexed": false, - "name": "initData", - "type": "bytes" - } - ], - "name": "PostCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "StaticMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "VariableMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "status", - "type": "bool" - } - ], - "name": "OperatorUpdated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "postRegistry", - "type": "address" - }, - { - "name": "feedStaticMetadata", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "postFactory", - "type": "address" - }, - { - "name": "initData", - "type": "bytes" - } - ], - "name": "createPost", - "outputs": [ - { - "name": "post", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "feedVariableMetadata", - "type": "bytes" - } - ], - "name": "setFeedVariableMetadata", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "post", - "type": "address" - }, - { - "name": "postVariableMetadata", - "type": "bytes" - } - ], - "name": "setPostVariableMetadata", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getPosts", - "outputs": [ - { - "name": "posts", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getPostRegistry", - "outputs": [ - { - "name": "postRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506118cd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80638077f0ae1161008c578063e424f5e611610066578063e424f5e6146105d6578063e7f43c6814610620578063ed02dcea1461066a578063efd4606514610785576100ce565b80638077f0ae146103fe578063923b1762146104b9578063cf7a1d77146104db576100ce565b806212a907146100d35780630ee2cb10146101ae5780633367cca5146101f857806341f3004a146102545780636d70f7ae146102b35780637a5b4f591461030f575b600080fd5b6101ac600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561012657600080fd5b82018360208201111561013857600080fd5b8035906020019184600183028401116401000000008311171561015a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107e1565b005b6101b6610940565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61023a6004803603602081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a21565b604051808215151515815260200191505060405180910390f35b61025c610a43565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561029f578082015181840152602081019050610284565b505050509050019250505060405180910390f35b6102f5600480360360208110156102c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ad1565b604051808215151515815260200191505060405180910390f35b610317610b10565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561035b578082015181840152602081019050610340565b50505050905090810190601f1680156103885780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103c15780820151818401526020810190506103a6565b50505050905090810190601f1680156103ee5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104b76004803603602081101561041457600080fd5b810190808035906020019064010000000081111561043157600080fd5b82018360208201111561044357600080fd5b8035906020019184600183028401116401000000008311171561046557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610c51565b005b6104c1610ce8565b604051808215151515815260200191505060405180910390f35b6105d4600480360360608110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561054e57600080fd5b82018360208201111561056057600080fd5b8035906020019184600183028401116401000000008311171561058257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610cfe565b005b6105de610e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610628610e64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107436004803603604081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106bd57600080fd5b8201836020820111156106cf57600080fd5b803590602001918460018302840111640100000000831117156106f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107c76004803603602081101561079b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b604051808215151515815260200191505060405180910390f35b6107ea336112c7565b806107fa57506107f933610a21565b5b61086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166327305e83826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108d85780820151818401526020810190506108bd565b50505050905090810190601f1680156109055780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109e157600080fd5b505afa1580156109f5573d6000803e3d6000fd5b505050506040513d6020811015610a0b57600080fd5b8101908080519060200190929190505050905090565b6000610a2c82610ad1565b8015610a3c5750610a3b610ce8565b5b9050919050565b60606004805480602002602001604051908101604052809291908181526020018280548015610ac757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a7d575b5050505050905090565b6000610adb610e64565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba95780601f10610b7e57610100808354040283529160200191610ba9565b820191906000526020600020905b815481529060010190602001808311610b8c57829003601f168201915b5050505050915060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c465780601f10610c1b57610100808354040283529160200191610c46565b820191906000526020600020905b815481529060010190602001808311610c2957829003601f168201915b505050505090509091565b610c5a336112c7565b80610c6a5750610c6933610a21565b5b610cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b610ce581611306565b50565b60008060149054906101000a900460ff16905090565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610da4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061186f602a913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610dea57610de1846113bc565b610de9611538565b5b82600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3482611661565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610e98336112c7565b80610ea85750610ea733610a21565b5b610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b60016002811115610f2757fe5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f795ab75856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fc657600080fd5b505afa158015610fda573d6000803e3d6000fd5b505050506040513d6020811015610ff057600080fd5b8101908080519060200190929190505050600281111561100c57fe5b14611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061184d6022913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16636f8d11e6836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110ce5780820151818401526020810190506110b3565b50505050905090810190601f1680156110fb5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b8101908080519060200190929190505050905060048190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f6e586eddfc77482083ba3396cb6e340089605d21249a6bc9725e6d751cd4796a818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561128557808201518184015260208101905061126a565b50505050905090810190601f1680156112b25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a192915050565b60006112d1610940565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b806002908051906020019061131c929190611786565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561137f578082015181840152602081019050611364565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816114e9610ce8565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b611540610ce8565b156115b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b60006001805460018160011615610100020316600290049050146116d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061182c6021913960400191505060405180910390fd5b80600190805190602001906116e6929190611786565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561174957808201518184015260208101905061172e565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117c757805160ff19168380011785556117f5565b828001600101855582156117f5579182015b828111156117f45782518255916020019190600101906117d9565b5b5090506118029190611806565b5090565b61182891905b8082111561182457600081600090555060010161180c565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e676564666163746f7279206973206e6f74206163746976656c7920726567697374657265646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582049a83ea8083928ada4fa39d7509db54284fedf06f9bcf3e2063f56ebabf4c01864736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ce5760003560e01c80638077f0ae1161008c578063e424f5e611610066578063e424f5e6146105d6578063e7f43c6814610620578063ed02dcea1461066a578063efd4606514610785576100ce565b80638077f0ae146103fe578063923b1762146104b9578063cf7a1d77146104db576100ce565b806212a907146100d35780630ee2cb10146101ae5780633367cca5146101f857806341f3004a146102545780636d70f7ae146102b35780637a5b4f591461030f575b600080fd5b6101ac600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561012657600080fd5b82018360208201111561013857600080fd5b8035906020019184600183028401116401000000008311171561015a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107e1565b005b6101b6610940565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61023a6004803603602081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a21565b604051808215151515815260200191505060405180910390f35b61025c610a43565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561029f578082015181840152602081019050610284565b505050509050019250505060405180910390f35b6102f5600480360360208110156102c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ad1565b604051808215151515815260200191505060405180910390f35b610317610b10565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561035b578082015181840152602081019050610340565b50505050905090810190601f1680156103885780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103c15780820151818401526020810190506103a6565b50505050905090810190601f1680156103ee5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104b76004803603602081101561041457600080fd5b810190808035906020019064010000000081111561043157600080fd5b82018360208201111561044357600080fd5b8035906020019184600183028401116401000000008311171561046557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610c51565b005b6104c1610ce8565b604051808215151515815260200191505060405180910390f35b6105d4600480360360608110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561054e57600080fd5b82018360208201111561056057600080fd5b8035906020019184600183028401116401000000008311171561058257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610cfe565b005b6105de610e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610628610e64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107436004803603604081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106bd57600080fd5b8201836020820111156106cf57600080fd5b803590602001918460018302840111640100000000831117156106f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107c76004803603602081101561079b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b604051808215151515815260200191505060405180910390f35b6107ea336112c7565b806107fa57506107f933610a21565b5b61086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166327305e83826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108d85780820151818401526020810190506108bd565b50505050905090810190601f1680156109055780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109e157600080fd5b505afa1580156109f5573d6000803e3d6000fd5b505050506040513d6020811015610a0b57600080fd5b8101908080519060200190929190505050905090565b6000610a2c82610ad1565b8015610a3c5750610a3b610ce8565b5b9050919050565b60606004805480602002602001604051908101604052809291908181526020018280548015610ac757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a7d575b5050505050905090565b6000610adb610e64565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba95780601f10610b7e57610100808354040283529160200191610ba9565b820191906000526020600020905b815481529060010190602001808311610b8c57829003601f168201915b5050505050915060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c465780601f10610c1b57610100808354040283529160200191610c46565b820191906000526020600020905b815481529060010190602001808311610c2957829003601f168201915b505050505090509091565b610c5a336112c7565b80610c6a5750610c6933610a21565b5b610cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b610ce581611306565b50565b60008060149054906101000a900460ff16905090565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610da4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061186f602a913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610dea57610de1846113bc565b610de9611538565b5b82600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3482611661565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610e98336112c7565b80610ea85750610ea733610a21565b5b610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b60016002811115610f2757fe5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f795ab75856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fc657600080fd5b505afa158015610fda573d6000803e3d6000fd5b505050506040513d6020811015610ff057600080fd5b8101908080519060200190929190505050600281111561100c57fe5b14611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061184d6022913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16636f8d11e6836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110ce5780820151818401526020810190506110b3565b50505050905090810190601f1680156110fb5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b8101908080519060200190929190505050905060048190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f6e586eddfc77482083ba3396cb6e340089605d21249a6bc9725e6d751cd4796a818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561128557808201518184015260208101905061126a565b50505050905090810190601f1680156112b25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a192915050565b60006112d1610940565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b806002908051906020019061131c929190611786565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561137f578082015181840152602081019050611364565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816114e9610ce8565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b611540610ce8565b156115b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b60006001805460018160011615610100020316600290049050146116d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061182c6021913960400191505060405180910390fd5b80600190805190602001906116e6929190611786565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561174957808201518184015260208101905061172e565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117c757805160ff19168380011785556117f5565b828001600101855582156117f5579182015b828111156117f45782518255916020019190600101906117d9565b5b5090506118029190611806565b5090565b61182891905b8082111561182457600081600090555060010161180c565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e676564666163746f7279206973206e6f74206163746976656c7920726567697374657265646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582049a83ea8083928ada4fa39d7509db54284fedf06f9bcf3e2063f56ebabf4c01864736f6c634300050a0032", - "sourceMap": "193:2334:38:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;193:2334:38;;;;;;;", - "deployedSourceMap": "193:2334:38:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;193:2334:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1951:327;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1951:327:38;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1951:327:38;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1951:327:38;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1951:327:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1951:327:38;;;;;;;;;;;;;;;:::i;:::-;;494:232:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1467:139:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1467:139:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2307:96:38;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2307:96:38;;;;;;;;;;;;;;;;;1250:115:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1250:115:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;711:199:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1633:312:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1633:312:38;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1633:312:38;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1633:312:38;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1633:312:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1633:312:38;;;;;;;;;;;;;;;:::i;:::-;;1371:90:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;387:474:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;387:474:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;387:474:38;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;387:474:38;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;387:474:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;387:474:38;;;;;;;;;;;;;;;:::i;:::-;;2409:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1145:99:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;891:736:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;891:736:38;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;891:736:38;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;891:736:38;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;891:736:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;891:736:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;732:111:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;732:111:34;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1951:327:38;2101:30;2120:10;2101:18;:30::i;:::-;:71;;;;2135:37;2161:10;2135:25;:37::i;:::-;2101:71;2093:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2224:4;2219:30;;;2250:20;2219:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2219:52:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2219:52:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2219:52:38;;;;1951:327;;:::o;494:232:34:-;537:15;676:8;;;;;;;;;;;667:37;;;713:4;667:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:52:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;667:52:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;667:52:34;;;;;;;;;;;;;;;;657:62;;494:232;:::o;1467:139:30:-;1530:7;1557:18;1568:6;1557:10;:18::i;:::-;:41;;;;;1579:19;:17;:19::i;:::-;1557:41;1549:50;;1467:139;;;:::o;2307:96:38:-;2348:22;2390:6;2382:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2307:96;:::o;1250:115:30:-;1307:7;1344:13;:11;:13::i;:::-;1334:23;;:6;:23;;;1326:32;;1250:115;;;:::o;711:199:28:-;755:27;784:29;842:15;825:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;886:17;867:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:199;;:::o;1633:312:38:-;1769:30;1788:10;1769:18;:30::i;:::-;:71;;;;1803:37;1829:10;1803:25;:37::i;:::-;1769:71;1761:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:51;1917:20;1887:29;:51::i;:::-;1633:312;:::o;1371:90:30:-;1421:7;1447;;;;;;;;;;;1440:14;;1371:90;:::o;387:474:38:-;200:10:34;189:8;;:21;;;;;;;;;;;;;;;;;;300:15;360:7;348:20;336:32;;399:1;387:8;:13;;;379:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;596:1:38;576:22;;:8;:22;;;572:126;;614:31;636:8;614:21;:31::i;:::-;659:28;:26;:28::i;:::-;572:126;753:12;737:13;;:28;;;;;;;;;;;;;;;;;;807:47;835:18;807:27;:47::i;:::-;387:474;;;;:::o;2409:115::-;2457:20;2504:13;;;;;;;;;;;2489:28;;2409:115;:::o;1145:99:30:-;1189:16;1228:9;;;;;;;;;;;1217:20;;1145:99;:::o;891:736:38:-;971:12;1046:30;1065:10;1046:18;:30::i;:::-;:71;;;;1080:37;1106:10;1080:25;:37::i;:::-;1046:71;1038:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1285:34;1227:92;;;;;;;;1237:13;;;;;;;;;;;1227:41;;;1269:11;1227:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1227:54:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1227:54:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1227:54:38;;;;;;;;;;;;;;;;:92;;;;;;;;;1206:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1445:11;1432:39;;;1472:8;1432:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1432:49:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1432:49:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1432:49:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1432:49:38;;;;;;;;;;;;;;;;1425:56;;1525:6;1537:4;1525:17;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1525:17:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1580:40;1592:4;1598:11;1611:8;1580:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1580:40:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;891:736;;;;:::o;732:111:34:-;788:7;823:12;:10;:12::i;:::-;813:22;;:6;:22;;;807:29;;732:111;;;:::o;507:175:28:-;607:16;587:17;:36;;;;;;;;;;;;:::i;:::-;;638:37;658:16;638:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;638:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:175;:::o;192:215:30:-;272:8;259:21;;:9;;;;;;;;;;;:21;;;;251:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:8;319:9;;:20;;;;;;;;;;;;;;;;;;354:46;370:8;380:19;:17;:19::i;:::-;354:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:215;:::o;735:188::-;792:19;:17;:19::i;:::-;791:20;783:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;855:7;;:14;;;;;;;;;;;;;;;;;;884:32;900:9;;;;;;;;;;;911:4;884:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:188::o;255:246:28:-;365:1;339:15;:22;;;;;;;;;;;;;;;;:27;331:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;414:15;:32;;;;;;;;;;;;:::i;:::-;;461:33;479:14;461:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;461:33:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;255:246;:::o;193:2334:38:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"./Post_Factory.sol\";\nimport \"../modules/iRegistry.sol\";\nimport \"../modules/Metadata.sol\";\nimport \"../modules/Operated.sol\";\nimport \"../modules/Template.sol\";\n\n\ncontract Feed is Operated, Metadata, Template {\n\n address[] private _posts;\n address private _postRegistry;\n\n event PostCreated(address post, address postFactory, bytes initData);\n\n function initialize(\n address operator,\n address postRegistry,\n bytes memory feedStaticMetadata\n ) public initializeTemplate() {\n // set operator\n if (operator != address(0)) {\n Operated._setOperator(operator);\n Operated._activateOperator();\n }\n\n // set post registry\n _postRegistry = postRegistry;\n\n // set static metadata\n Metadata._setStaticMetadata(feedStaticMetadata);\n }\n\n // state functions\n\n function createPost(address postFactory, bytes memory initData) public returns (address post) {\n // only active operator or creator\n require(Template.isCreator(msg.sender) || Operated.isActiveOperator(msg.sender), \"only active operator or creator\");\n\n // validate factory is registered\n require(\n iRegistry(_postRegistry).getFactoryStatus(postFactory) == iRegistry.FactoryStatus.Registered,\n \"factory is not actively registered\"\n );\n\n // spawn new post contract\n post = Post_Factory(postFactory).createEncoded(initData);\n\n // add to array of posts\n _posts.push(post);\n\n // emit event\n emit PostCreated(post, postFactory, initData);\n }\n\n function setFeedVariableMetadata(bytes memory feedVariableMetadata) public {\n // only active operator or creator\n require(Template.isCreator(msg.sender) || Operated.isActiveOperator(msg.sender), \"only active operator or creator\");\n\n Metadata._setVariableMetadata(feedVariableMetadata);\n }\n\n function setPostVariableMetadata(address post, bytes memory postVariableMetadata) public {\n // only active operator or creator\n require(Template.isCreator(msg.sender) || Operated.isActiveOperator(msg.sender), \"only active operator or creator\");\n\n Post(post).setVariableMetadata(postVariableMetadata);\n }\n\n // view functions\n\n function getPosts() public view returns (address[] memory posts) {\n posts = _posts;\n }\n\n function getPostRegistry() public view returns (address postRegistry) {\n postRegistry = _postRegistry;\n }\n\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed.sol", - "exportedSymbols": { - "Feed": [ - 8191 - ] - }, - "id": 8192, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7988, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:38" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post_Factory.sol", - "file": "./Post_Factory.sol", - "id": 7989, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 8587, - "src": "25:28:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iRegistry.sol", - "file": "../modules/iRegistry.sol", - "id": 7990, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 7987, - "src": "54:34:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 7991, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 6413, - "src": "89:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 7992, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 6630, - "src": "123:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 7993, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 7681, - "src": "157:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7994, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "210:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 7995, - "nodeType": "InheritanceSpecifier", - "src": "210:8:38" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7996, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "220:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 7997, - "nodeType": "InheritanceSpecifier", - "src": "220:8:38" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7998, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "230:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 7999, - "nodeType": "InheritanceSpecifier", - "src": "230:8:38" - } - ], - "contractDependencies": [ - 6412, - 6629, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8191, - "linearizedBaseContracts": [ - 8191, - 7680, - 6412, - 6629 - ], - "name": "Feed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8002, - "name": "_posts", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "246:24:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8001, - "length": null, - "nodeType": "ArrayTypeName", - "src": "246:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 8004, - "name": "_postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "276:29:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 8012, - "name": "PostCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 8011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8006, - "indexed": false, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "330:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8005, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8008, - "indexed": false, - "name": "postFactory", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "344:19:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "344:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8010, - "indexed": false, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "365:14:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8009, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "365:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:51:38" - }, - "src": "312:69:38" - }, - { - "body": { - "id": 8051, - "nodeType": "Block", - "src": "538:323:38", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8023, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8014, - "src": "576:8:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "596:1:38", - "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": 8024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "576:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8040, - "nodeType": "IfStatement", - "src": "572:126:38", - "trueBody": { - "id": 8039, - "nodeType": "Block", - "src": "600:98:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8031, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8014, - "src": "636:8:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8028, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "614:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "614:21:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "614:31:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8033, - "nodeType": "ExpressionStatement", - "src": "614:31:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8034, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "659:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "659:26:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "659:28:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8038, - "nodeType": "ExpressionStatement", - "src": "659:28:38" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8041, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "737:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8042, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8016, - "src": "753:12:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "737:28:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8044, - "nodeType": "ExpressionStatement", - "src": "737:28:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8048, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "835:18:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8045, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "807:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "807:27:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "807:47:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8050, - "nodeType": "ExpressionStatement", - "src": "807:47:38" - } - ] - }, - "documentation": null, - "id": 8052, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 8021, - "modifierName": { - "argumentTypes": null, - "id": 8020, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "517:18:38", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "517:20:38" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8014, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "416:16:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "416:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8016, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "442:20:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8018, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "472:31:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8017, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "472:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "406:103:38" - }, - "returnParameters": { - "id": 8022, - "nodeType": "ParameterList", - "parameters": [], - "src": "538:0:38" - }, - "scope": 8191, - "src": "387:474:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8111, - "nodeType": "Block", - "src": "985:642:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8064, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1065:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1065:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8062, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1046:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1046:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1046:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8069, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1106:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1106:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8067, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1080:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1080:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1080:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1046:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1119:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8061, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1038:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1038:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8075, - "nodeType": "ExpressionStatement", - "src": "1038:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8081, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1269:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8078, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "1237:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8077, - "name": "iRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7986, - "src": "1227:9:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iRegistry_$7986_$", - "typeString": "type(contract iRegistry)" - } - }, - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1227:24:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iRegistry_$7986", - "typeString": "contract iRegistry" - } - }, - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getFactoryStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 7895, - "src": "1227:41:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_enum$_FactoryStatus_$7841_$", - "typeString": "function (address) view external returns (enum iRegistry.FactoryStatus)" - } - }, - "id": 8082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1227:54:38", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8083, - "name": "iRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7986, - "src": "1285:9:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iRegistry_$7986_$", - "typeString": "type(contract iRegistry)" - } - }, - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "FactoryStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "1285:23:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FactoryStatus_$7841_$", - "typeString": "type(enum iRegistry.FactoryStatus)" - } - }, - "id": 8085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Registered", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1285:34:38", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "src": "1227:92:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "666163746f7279206973206e6f74206163746976656c792072656769737465726564", - "id": 8087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1333:36:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_563fcfa56a825c28d005671dd63cb793a7c437dbdb86a988150ee87a91336b97", - "typeString": "literal_string \"factory is not actively registered\"" - }, - "value": "factory is not actively registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_563fcfa56a825c28d005671dd63cb793a7c437dbdb86a988150ee87a91336b97", - "typeString": "literal_string \"factory is not actively registered\"" - } - ], - "id": 8076, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1206:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1206:173:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8089, - "nodeType": "ExpressionStatement", - "src": "1206:173:38" - }, - { - "expression": { - "argumentTypes": null, - "id": 8097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8090, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1425:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8095, - "name": "initData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8056, - "src": "1472:8:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8092, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1445:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8091, - "name": "Post_Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8586, - "src": "1432:12:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Post_Factory_$8586_$", - "typeString": "type(contract Post_Factory)" - } - }, - "id": 8093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:25:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_Factory_$8586", - "typeString": "contract Post_Factory" - } - }, - "id": 8094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createEncoded", - "nodeType": "MemberAccess", - "referencedDeclaration": 8541, - "src": "1432:39:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) external returns (address)" - } - }, - "id": 8096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:49:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1425:56:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8098, - "nodeType": "ExpressionStatement", - "src": "1425:56:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8102, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1537:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8099, - "name": "_posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "1525:6:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 8101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1525:11:38", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 8103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1525:17:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8104, - "nodeType": "ExpressionStatement", - "src": "1525:17:38" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8106, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1592:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8107, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1598:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8108, - "name": "initData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8056, - "src": "1611:8:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8105, - "name": "PostCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8012, - "src": "1580:11:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory)" - } - }, - "id": 8109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1580:40:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8110, - "nodeType": "EmitStatement", - "src": "1575:45:38" - } - ] - }, - "documentation": null, - "id": 8112, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createPost", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8054, - "name": "postFactory", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "911:19:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "911:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8056, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "932:21:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8055, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "932:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "910:44:38" - }, - "returnParameters": { - "id": 8060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8059, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "971:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "971:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "970:14:38" - }, - "scope": 8191, - "src": "891:736:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8138, - "nodeType": "Block", - "src": "1708:237:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1788:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1788:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8118, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1769:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1769:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1769:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8125, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1829:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1829:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8123, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1803:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1803:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1803:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1769:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1842:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8117, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1761:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1761:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8131, - "nodeType": "ExpressionStatement", - "src": "1761:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8135, - "name": "feedVariableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8114, - "src": "1917:20:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8132, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1887:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "1887:29:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1887:51:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8137, - "nodeType": "ExpressionStatement", - "src": "1887:51:38" - } - ] - }, - "documentation": null, - "id": 8139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setFeedVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8114, - "name": "feedVariableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8139, - "src": "1666:33:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8113, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1666:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1665:35:38" - }, - "returnParameters": { - "id": 8116, - "nodeType": "ParameterList", - "parameters": [], - "src": "1708:0:38" - }, - "scope": 8191, - "src": "1633:312:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8168, - "nodeType": "Block", - "src": "2040:238:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8149, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2120:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2120:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8147, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "2101:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "2101:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2101:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2161:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2161:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8152, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2135:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2135:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2135:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2101:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2174:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8146, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2093:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2093:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8160, - "nodeType": "ExpressionStatement", - "src": "2093:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8165, - "name": "postVariableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8143, - "src": "2250:20:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8162, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8141, - "src": "2224:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8161, - "name": "Post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8438, - "src": "2219:4:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Post_$8438_$", - "typeString": "type(contract Post)" - } - }, - "id": 8163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2219:10:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 8164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 8437, - "src": "2219:30:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) external" - } - }, - "id": 8166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2219:52:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8167, - "nodeType": "ExpressionStatement", - "src": "2219:52:38" - } - ] - }, - "documentation": null, - "id": 8169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setPostVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8141, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8169, - "src": "1984:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1984:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8143, - "name": "postVariableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8169, - "src": "1998:33:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8142, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1998:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1983:49:38" - }, - "returnParameters": { - "id": 8145, - "nodeType": "ParameterList", - "parameters": [], - "src": "2040:0:38" - }, - "scope": 8191, - "src": "1951:327:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8179, - "nodeType": "Block", - "src": "2372:31:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8175, - "name": "posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8173, - "src": "2382:5:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8176, - "name": "_posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2390:6:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "src": "2382:14:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8178, - "nodeType": "ExpressionStatement", - "src": "2382:14:38" - } - ] - }, - "documentation": null, - "id": 8180, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPosts", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8170, - "nodeType": "ParameterList", - "parameters": [], - "src": "2324:2:38" - }, - "returnParameters": { - "id": 8174, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8173, - "name": "posts", - "nodeType": "VariableDeclaration", - "scope": 8180, - "src": "2348:22:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8172, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2348:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2347:24:38" - }, - "scope": 8191, - "src": "2307:96:38", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8189, - "nodeType": "Block", - "src": "2479:45:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8185, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8183, - "src": "2489:12:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8186, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "2504:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2489:28:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8188, - "nodeType": "ExpressionStatement", - "src": "2489:28:38" - } - ] - }, - "documentation": null, - "id": 8190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPostRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8181, - "nodeType": "ParameterList", - "parameters": [], - "src": "2433:2:38" - }, - "returnParameters": { - "id": 8184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8183, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8190, - "src": "2457:20:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2456:22:38" - }, - "scope": 8191, - "src": "2409:115:38", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8192, - "src": "193:2334:38" - } - ], - "src": "0:2528:38" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed.sol", - "exportedSymbols": { - "Feed": [ - 8191 - ] - }, - "id": 8192, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7988, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:38" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post_Factory.sol", - "file": "./Post_Factory.sol", - "id": 7989, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 8587, - "src": "25:28:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iRegistry.sol", - "file": "../modules/iRegistry.sol", - "id": 7990, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 7987, - "src": "54:34:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 7991, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 6413, - "src": "89:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 7992, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 6630, - "src": "123:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 7993, - "nodeType": "ImportDirective", - "scope": 8192, - "sourceUnit": 7681, - "src": "157:33:38", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7994, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "210:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 7995, - "nodeType": "InheritanceSpecifier", - "src": "210:8:38" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7996, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "220:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 7997, - "nodeType": "InheritanceSpecifier", - "src": "220:8:38" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7998, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "230:8:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 7999, - "nodeType": "InheritanceSpecifier", - "src": "230:8:38" - } - ], - "contractDependencies": [ - 6412, - 6629, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8191, - "linearizedBaseContracts": [ - 8191, - 7680, - 6412, - 6629 - ], - "name": "Feed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8002, - "name": "_posts", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "246:24:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8001, - "length": null, - "nodeType": "ArrayTypeName", - "src": "246:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 8004, - "name": "_postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8191, - "src": "276:29:38", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8003, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "276:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 8012, - "name": "PostCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 8011, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8006, - "indexed": false, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "330:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8005, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "330:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8008, - "indexed": false, - "name": "postFactory", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "344:19:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8007, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "344:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8010, - "indexed": false, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 8012, - "src": "365:14:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8009, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "365:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:51:38" - }, - "src": "312:69:38" - }, - { - "body": { - "id": 8051, - "nodeType": "Block", - "src": "538:323:38", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8023, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8014, - "src": "576:8:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8025, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "596:1:38", - "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": 8024, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "576:22:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8040, - "nodeType": "IfStatement", - "src": "572:126:38", - "trueBody": { - "id": 8039, - "nodeType": "Block", - "src": "600:98:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8031, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8014, - "src": "636:8:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8028, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "614:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "614:21:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "614:31:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8033, - "nodeType": "ExpressionStatement", - "src": "614:31:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8034, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "659:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "659:26:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "659:28:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8038, - "nodeType": "ExpressionStatement", - "src": "659:28:38" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8041, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "737:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8042, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8016, - "src": "753:12:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "737:28:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8044, - "nodeType": "ExpressionStatement", - "src": "737:28:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8048, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8018, - "src": "835:18:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8045, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "807:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "807:27:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "807:47:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8050, - "nodeType": "ExpressionStatement", - "src": "807:47:38" - } - ] - }, - "documentation": null, - "id": 8052, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 8021, - "modifierName": { - "argumentTypes": null, - "id": 8020, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "517:18:38", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "517:20:38" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8014, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "416:16:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "416:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8016, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "442:20:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8015, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8018, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8052, - "src": "472:31:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8017, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "472:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "406:103:38" - }, - "returnParameters": { - "id": 8022, - "nodeType": "ParameterList", - "parameters": [], - "src": "538:0:38" - }, - "scope": 8191, - "src": "387:474:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8111, - "nodeType": "Block", - "src": "985:642:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8064, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1065:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1065:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8062, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1046:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1046:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1046:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8069, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1106:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1106:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8067, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1080:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1080:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1080:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1046:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1119:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8061, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1038:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1038:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8075, - "nodeType": "ExpressionStatement", - "src": "1038:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "id": 8086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8081, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1269:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8078, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "1237:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8077, - "name": "iRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7986, - "src": "1227:9:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iRegistry_$7986_$", - "typeString": "type(contract iRegistry)" - } - }, - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1227:24:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iRegistry_$7986", - "typeString": "contract iRegistry" - } - }, - "id": 8080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getFactoryStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 7895, - "src": "1227:41:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_enum$_FactoryStatus_$7841_$", - "typeString": "function (address) view external returns (enum iRegistry.FactoryStatus)" - } - }, - "id": 8082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1227:54:38", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8083, - "name": "iRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7986, - "src": "1285:9:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iRegistry_$7986_$", - "typeString": "type(contract iRegistry)" - } - }, - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "FactoryStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "1285:23:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FactoryStatus_$7841_$", - "typeString": "type(enum iRegistry.FactoryStatus)" - } - }, - "id": 8085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Registered", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1285:34:38", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "src": "1227:92:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "666163746f7279206973206e6f74206163746976656c792072656769737465726564", - "id": 8087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1333:36:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_563fcfa56a825c28d005671dd63cb793a7c437dbdb86a988150ee87a91336b97", - "typeString": "literal_string \"factory is not actively registered\"" - }, - "value": "factory is not actively registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_563fcfa56a825c28d005671dd63cb793a7c437dbdb86a988150ee87a91336b97", - "typeString": "literal_string \"factory is not actively registered\"" - } - ], - "id": 8076, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1206:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1206:173:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8089, - "nodeType": "ExpressionStatement", - "src": "1206:173:38" - }, - { - "expression": { - "argumentTypes": null, - "id": 8097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8090, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1425:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8095, - "name": "initData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8056, - "src": "1472:8:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8092, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1445:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8091, - "name": "Post_Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8586, - "src": "1432:12:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Post_Factory_$8586_$", - "typeString": "type(contract Post_Factory)" - } - }, - "id": 8093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:25:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_Factory_$8586", - "typeString": "contract Post_Factory" - } - }, - "id": 8094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "createEncoded", - "nodeType": "MemberAccess", - "referencedDeclaration": 8541, - "src": "1432:39:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) external returns (address)" - } - }, - "id": 8096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1432:49:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1425:56:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8098, - "nodeType": "ExpressionStatement", - "src": "1425:56:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8102, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1537:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8099, - "name": "_posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "1525:6:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 8101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1525:11:38", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 8103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1525:17:38", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8104, - "nodeType": "ExpressionStatement", - "src": "1525:17:38" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8106, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8059, - "src": "1592:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8107, - "name": "postFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8054, - "src": "1598:11:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8108, - "name": "initData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8056, - "src": "1611:8:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8105, - "name": "PostCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8012, - "src": "1580:11:38", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory)" - } - }, - "id": 8109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1580:40:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8110, - "nodeType": "EmitStatement", - "src": "1575:45:38" - } - ] - }, - "documentation": null, - "id": 8112, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createPost", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8057, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8054, - "name": "postFactory", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "911:19:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8053, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "911:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8056, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "932:21:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8055, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "932:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "910:44:38" - }, - "returnParameters": { - "id": 8060, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8059, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8112, - "src": "971:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "971:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "970:14:38" - }, - "scope": 8191, - "src": "891:736:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8138, - "nodeType": "Block", - "src": "1708:237:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8120, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1788:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1788:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8118, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1769:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1769:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1769:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8125, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1829:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1829:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8123, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1803:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1803:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1803:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1769:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1842:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8117, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1761:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1761:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8131, - "nodeType": "ExpressionStatement", - "src": "1761:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8135, - "name": "feedVariableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8114, - "src": "1917:20:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8132, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1887:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "1887:29:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1887:51:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8137, - "nodeType": "ExpressionStatement", - "src": "1887:51:38" - } - ] - }, - "documentation": null, - "id": 8139, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setFeedVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8115, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8114, - "name": "feedVariableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8139, - "src": "1666:33:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8113, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1666:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1665:35:38" - }, - "returnParameters": { - "id": 8116, - "nodeType": "ParameterList", - "parameters": [], - "src": "1708:0:38" - }, - "scope": 8191, - "src": "1633:312:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8168, - "nodeType": "Block", - "src": "2040:238:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8149, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2120:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2120:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8147, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "2101:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "2101:18:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2101:30:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2161:3:38", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2161:10:38", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8152, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2135:8:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2135:25:38", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2135:37:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2101:71:38", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8158, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2174:33:38", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8146, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2093:7:38", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2093:115:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8160, - "nodeType": "ExpressionStatement", - "src": "2093:115:38" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8165, - "name": "postVariableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8143, - "src": "2250:20:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8162, - "name": "post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8141, - "src": "2224:4:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8161, - "name": "Post", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8438, - "src": "2219:4:38", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Post_$8438_$", - "typeString": "type(contract Post)" - } - }, - "id": 8163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2219:10:38", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 8164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 8437, - "src": "2219:30:38", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) external" - } - }, - "id": 8166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2219:52:38", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8167, - "nodeType": "ExpressionStatement", - "src": "2219:52:38" - } - ] - }, - "documentation": null, - "id": 8169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setPostVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8141, - "name": "post", - "nodeType": "VariableDeclaration", - "scope": 8169, - "src": "1984:12:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8140, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1984:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8143, - "name": "postVariableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8169, - "src": "1998:33:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8142, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1998:5:38", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1983:49:38" - }, - "returnParameters": { - "id": 8145, - "nodeType": "ParameterList", - "parameters": [], - "src": "2040:0:38" - }, - "scope": 8191, - "src": "1951:327:38", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8179, - "nodeType": "Block", - "src": "2372:31:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8175, - "name": "posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8173, - "src": "2382:5:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8176, - "name": "_posts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8002, - "src": "2390:6:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "src": "2382:14:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 8178, - "nodeType": "ExpressionStatement", - "src": "2382:14:38" - } - ] - }, - "documentation": null, - "id": 8180, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPosts", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8170, - "nodeType": "ParameterList", - "parameters": [], - "src": "2324:2:38" - }, - "returnParameters": { - "id": 8174, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8173, - "name": "posts", - "nodeType": "VariableDeclaration", - "scope": 8180, - "src": "2348:22:38", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 8171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2348:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8172, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2348:9:38", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2347:24:38" - }, - "scope": 8191, - "src": "2307:96:38", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8189, - "nodeType": "Block", - "src": "2479:45:38", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8185, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8183, - "src": "2489:12:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8186, - "name": "_postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8004, - "src": "2504:13:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2489:28:38", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8188, - "nodeType": "ExpressionStatement", - "src": "2489:28:38" - } - ] - }, - "documentation": null, - "id": 8190, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPostRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8181, - "nodeType": "ParameterList", - "parameters": [], - "src": "2433:2:38" - }, - "returnParameters": { - "id": 8184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8183, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8190, - "src": "2457:20:38", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2457:7:38", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2456:22:38" - }, - "scope": 8191, - "src": "2409:115:38", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8192, - "src": "193:2334:38" - } - ], - "src": "0:2528:38" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.592Z" -} \ No newline at end of file diff --git a/build/Feed_Factory.json b/build/Feed_Factory.json deleted file mode 100644 index 709b35f8..00000000 --- a/build/Feed_Factory.json +++ /dev/null @@ -1,4025 +0,0 @@ -{ - "contractName": "Feed_Factory", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getTemplate", - "outputs": [ - { - "name": "template", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "instance", - "type": "address" - } - ], - "name": "getInstanceCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceRegistry", - "outputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitdataABI", - "outputs": [ - { - "name": "initdataABI", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "postRegistry", - "type": "address" - }, - { - "indexed": false, - "name": "feedStaticMetadata", - "type": "bytes" - } - ], - "name": "ExplicitInitData", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "callData", - "type": "bytes" - } - ], - "name": "InstanceCreated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "callData", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "initdata", - "type": "bytes" - } - ], - "name": "createEncoded", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "postRegistry", - "type": "address" - }, - { - "name": "feedStaticMetadata", - "type": "bytes" - } - ], - "name": "createExplicit", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620036eb380380620036eb833981810160405260208110156200003757600080fd5b8101908080519060200190929190505050600060405162000058906200030c565b604051809103906000f08015801562000075573d6000803e3d6000fd5b50905060006040518060400160405280600481526020017f506f73740000000000000000000000000000000000000000000000000000000081525080519060200120905060606040518060400160405280601781526020017f28616464726573732c616464726573732c62797465732900000000000000000081525090506200010c848484846200011660201b620015091760201c565b50505050620003c9565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060039080519060200190620001b09291906200031a565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f857600080fd5b505afa1580156200020d573d6000803e3d6000fd5b505050506040513d60208110156200022457600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614620002e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b6118ed8062001dfe83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035d57805160ff19168380011785556200038e565b828001600101855582156200038e579182015b828111156200038d57825182559160200191906001019062000370565b5b5090506200039d9190620003a1565b5090565b620003c691905b80821115620003c2576000816000905550600101620003a8565b5090565b90565b611a2580620003d96000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e114610463578063ae34325c146104e6578063b71f2e7214610504578063cf5ba53f14610591578063d35fdd791461068c578063ebd348de146106eb576100b4565b806318c2f4cf146100b9578063321c48f2146101155780636bf719821461015f5780636f8d11e6146101e357806382804816146102de578063a5e1390414610419575b600080fd5b6100c1610759565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61011d610770565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a16004803603602081101561017557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029c600480360360208110156101f957600080fd5b810190808035906020019064010000000081111561021657600080fd5b82018360208201111561022857600080fd5b8035906020019184600183028401116401000000008311171561024a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610803565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d7600480360360608110156102f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184600183028401116401000000008311171561038557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610421610b1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046b610b46565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104ee610be8565b6040518082815260200191505060405180910390f35b61053a6004803603604081101561051a57600080fd5b810190808035906020019092919080359060200190929190505050610bf4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057d578082015181840152602081019050610562565b505050509050019250505060405180910390f35b61064a600480360360208110156105a757600080fd5b81019080803590602001906401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610694610db7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106d75780820151818401526020810190506106bc565b505050509050019250505060405180910390f35b6107176004803603602081101561070157600080fd5b8101908080359060200190929190505050610e45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000606084806020019051606081101561081f57600080fd5b810190808051906020019092919080519060200190929190805164010000000081111561084b57600080fd5b8281019050602081018481111561086157600080fd5b815185600182028301116401000000008211171561087e57600080fd5b50509291905050509250925092506108978383836108a1565b9350505050919050565b60008060608173ffffffffffffffffffffffffffffffffffffffff1663cf7a1d77905060e01b868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610971578082015181840152602081019050610956565b50505050905090810190601f16801561099e5780820380516001836020036101000a031916815260200191505b50945050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610a0d81610eff565b92507f159a9c35b291eea9d980b68e73d441cf24710856bf07f73814c8e1e49f5c8768868686604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ad7578082015181840152602081019050610abc565b50505050905090810190601f168015610b045780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150509392505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806119cc6025913960400191505060405180910390fd5b600080549050821115610cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610cfc5781602001602082028038833980820191505090505b50905060008490505b83811015610d9a5760008181548110610d1a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286830381518110610d5357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610d05565b508091505092915050565b6000610db082610eff565b9050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610e3b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610df1575b5050505050905090565b600080805490508210610ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60008281548110610ecd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610f12610f0c610770565b836111b8565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611000610b1c565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561117957808201518184015260208101905061115e565b50505050905090810190601f1680156111a65780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b60006060604051806020016111cc906114fc565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561125757808201518184015260208101905061123c565b50505050905090810190601f1680156112845780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b602083106112cf57805182526020820191506020810190506020830392506112ac565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061132057805182526020820191506020810190506020830392506112fd565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905061136081611369565b91505092915050565b6000806113758361139c565b50905082602001835182818334f5935083611394573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b6001156114f4573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b905060008114156114e7576114f4565b81806001019250506113b3565b505050915091565b61022d8061179f83390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906115a19291906116f9565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e857600080fd5b505afa1580156115fc573d6000803e3d6000fd5b505050506040513d602081101561161257600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061173a57805160ff1916838001178555611768565b82800160010185558215611768579182015b8281111561176757825182559160200191906001019061174c565b5b5090506117759190611779565b5090565b61179b91905b8082111561179757600081600090555060010161177f565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a7230582004b2f0276c1caf4c289047ba3631d83497554b5fe0779fca49deecdd7e62cace64736f6c634300050a0032608060405234801561001057600080fd5b506118cd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ce5760003560e01c80638077f0ae1161008c578063e424f5e611610066578063e424f5e6146105d6578063e7f43c6814610620578063ed02dcea1461066a578063efd4606514610785576100ce565b80638077f0ae146103fe578063923b1762146104b9578063cf7a1d77146104db576100ce565b806212a907146100d35780630ee2cb10146101ae5780633367cca5146101f857806341f3004a146102545780636d70f7ae146102b35780637a5b4f591461030f575b600080fd5b6101ac600480360360408110156100e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561012657600080fd5b82018360208201111561013857600080fd5b8035906020019184600183028401116401000000008311171561015a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107e1565b005b6101b6610940565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61023a6004803603602081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a21565b604051808215151515815260200191505060405180910390f35b61025c610a43565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561029f578082015181840152602081019050610284565b505050509050019250505060405180910390f35b6102f5600480360360208110156102c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ad1565b604051808215151515815260200191505060405180910390f35b610317610b10565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561035b578082015181840152602081019050610340565b50505050905090810190601f1680156103885780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103c15780820151818401526020810190506103a6565b50505050905090810190601f1680156103ee5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6104b76004803603602081101561041457600080fd5b810190808035906020019064010000000081111561043157600080fd5b82018360208201111561044357600080fd5b8035906020019184600183028401116401000000008311171561046557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610c51565b005b6104c1610ce8565b604051808215151515815260200191505060405180910390f35b6105d4600480360360608110156104f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561054e57600080fd5b82018360208201111561056057600080fd5b8035906020019184600183028401116401000000008311171561058257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610cfe565b005b6105de610e3a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610628610e64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107436004803603604081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156106bd57600080fd5b8201836020820111156106cf57600080fd5b803590602001918460018302840111640100000000831117156106f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e8d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107c76004803603602081101561079b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112c7565b604051808215151515815260200191505060405180910390f35b6107ea336112c7565b806107fa57506107f933610a21565b5b61086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166327305e83826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108d85780820151818401526020810190506108bd565b50505050905090810190601f1680156109055780820380516001836020036101000a031916815260200191505b5092505050600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b505050505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156109e157600080fd5b505afa1580156109f5573d6000803e3d6000fd5b505050506040513d6020811015610a0b57600080fd5b8101908080519060200190929190505050905090565b6000610a2c82610ad1565b8015610a3c5750610a3b610ce8565b5b9050919050565b60606004805480602002602001604051908101604052809291908181526020018280548015610ac757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610a7d575b5050505050905090565b6000610adb610e64565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba95780601f10610b7e57610100808354040283529160200191610ba9565b820191906000526020600020905b815481529060010190602001808311610b8c57829003601f168201915b5050505050915060028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c465780601f10610c1b57610100808354040283529160200191610c46565b820191906000526020600020905b815481529060010190602001808311610c2957829003601f168201915b505050505090509091565b610c5a336112c7565b80610c6a5750610c6933610a21565b5b610cdc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b610ce581611306565b50565b60008060149054906101000a900460ff16905090565b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610da4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061186f602a913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610dea57610de1846113bc565b610de9611538565b5b82600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e3482611661565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610e98336112c7565b80610ea85750610ea733610a21565b5b610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b60016002811115610f2757fe5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f795ab75856040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610fc657600080fd5b505afa158015610fda573d6000803e3d6000fd5b505050506040513d6020811015610ff057600080fd5b8101908080519060200190929190505050600281111561100c57fe5b14611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061184d6022913960400191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16636f8d11e6836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110ce5780820151818401526020810190506110b3565b50505050905090810190601f1680156110fb5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b8101908080519060200190929190505050905060048190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507f6e586eddfc77482083ba3396cb6e340089605d21249a6bc9725e6d751cd4796a818484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561128557808201518184015260208101905061126a565b50505050905090810190601f1680156112b25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a192915050565b60006112d1610940565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b806002908051906020019061131c929190611786565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561137f578082015181840152602081019050611364565b50505050905090810190601f1680156113ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816114e9610ce8565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b611540610ce8565b156115b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b60006001805460018160011615610100020316600290049050146116d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061182c6021913960400191505060405180910390fd5b80600190805190602001906116e6929190611786565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561174957808201518184015260208101905061172e565b50505050905090810190601f1680156117765780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117c757805160ff19168380011785556117f5565b828001600101855582156117f5579182015b828111156117f45782518255916020019190600101906117d9565b5b5090506118029190611806565b5090565b61182891905b8082111561182457600081600090555060010161180c565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e676564666163746f7279206973206e6f74206163746976656c7920726567697374657265646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582049a83ea8083928ada4fa39d7509db54284fedf06f9bcf3e2063f56ebabf4c01864736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e114610463578063ae34325c146104e6578063b71f2e7214610504578063cf5ba53f14610591578063d35fdd791461068c578063ebd348de146106eb576100b4565b806318c2f4cf146100b9578063321c48f2146101155780636bf719821461015f5780636f8d11e6146101e357806382804816146102de578063a5e1390414610419575b600080fd5b6100c1610759565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61011d610770565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a16004803603602081101561017557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061079a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029c600480360360208110156101f957600080fd5b810190808035906020019064010000000081111561021657600080fd5b82018360208201111561022857600080fd5b8035906020019184600183028401116401000000008311171561024a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610803565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d7600480360360608110156102f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035157600080fd5b82018360208201111561036357600080fd5b8035906020019184600183028401116401000000008311171561038557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506108a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610421610b1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61046b610b46565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104ee610be8565b6040518082815260200191505060405180910390f35b61053a6004803603604081101561051a57600080fd5b810190808035906020019092919080359060200190929190505050610bf4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057d578082015181840152602081019050610562565b505050509050019250505060405180910390f35b61064a600480360360208110156105a757600080fd5b81019080803590602001906401000000008111156105c457600080fd5b8201836020820111156105d657600080fd5b803590602001918460018302840111640100000000831117156105f857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610da5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610694610db7565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106d75780820151818401526020810190506106bc565b505050509050019250505060405180910390f35b6107176004803603602081101561070157600080fd5b8101908080359060200190929190505050610e45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000606084806020019051606081101561081f57600080fd5b810190808051906020019092919080519060200190929190805164010000000081111561084b57600080fd5b8281019050602081018481111561086157600080fd5b815185600182028301116401000000008211171561087e57600080fd5b50509291905050509250925092506108978383836108a1565b9350505050919050565b60008060608173ffffffffffffffffffffffffffffffffffffffff1663cf7a1d77905060e01b868686604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610971578082015181840152602081019050610956565b50505050905090810190601f16801561099e5780820380516001836020036101000a031916815260200191505b50945050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610a0d81610eff565b92507f159a9c35b291eea9d980b68e73d441cf24710856bf07f73814c8e1e49f5c8768868686604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ad7578082015181840152602081019050610abc565b50505050905090810190601f168015610b045780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150509392505050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610c4e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806119cc6025913960400191505060405180910390fd5b600080549050821115610cc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610cfc5781602001602082028038833980820191505090505b50905060008490505b83811015610d9a5760008181548110610d1a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286830381518110610d5357fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610d05565b508091505092915050565b6000610db082610eff565b9050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610e3b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610df1575b5050505050905090565b600080805490508210610ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b60008281548110610ecd57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610f12610f0c610770565b836111b8565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611000610b1c565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156110d157600080fd5b505af11580156110e5573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561117957808201518184015260208101905061115e565b50505050905090810190601f1680156111a65780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b60006060604051806020016111cc906114fc565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561125757808201518184015260208101905061123c565b50505050905090810190601f1680156112845780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b602083106112cf57805182526020820191506020810190506020830392506112ac565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061132057805182526020820191506020810190506020830392506112fd565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905061136081611369565b91505092915050565b6000806113758361139c565b50905082602001835182818334f5935083611394573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b6001156114f4573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b905060008114156114e7576114f4565b81806001019250506113b3565b505050915091565b61022d8061179f83390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906115a19291906116f9565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e857600080fd5b505afa1580156115fc573d6000803e3d6000fd5b505050506040513d602081101561161257600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061173a57805160ff1916838001178555611768565b82800160010185558215611768579182015b8281111561176757825182559160200191906001019061174c565b5b5090506117759190611779565b5090565b61179b91905b8082111561179757600081600090555060010161177f565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a7230582004b2f0276c1caf4c289047ba3631d83497554b5fe0779fca49deecdd7e62cace64736f6c634300050a0032", - "sourceMap": "81:1849:39:-;;;121:456;8:9:-1;5:2;;;30:1;27;20:12;5:2;121:456:39;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;121:456:39;;;;;;;;;;;;;;;;212:24;247:10;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;247:10:39;212:46;;297:19;336:13;;;;;;;;;;;;;;;;;326:24;;;;;;297:54;;388:25;:53;;;;;;;;;;;;;;;;;;;488:82;508:16;526;544:12;558:11;488:19;;;;;:82;;:::i;:::-;121:456;;;;81:1849;;545:574:26;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;81:1849:39:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "81:1849:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;81:1849:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1900:114:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2280:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1757:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1757:137:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;837:403:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;837:403:39;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;837:403:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;837:403:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;837:403:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;837:403:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1246:681;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1246:681:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1246:681:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1246:681:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1246:681:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1246:681:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2143:131:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2020:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2020:117:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2872:633;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2872:633:26;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2872:633:26;;;;;;;;;;;;;;;;;678:153:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;678:153:39;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;678:153:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;678:153:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;678:153:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;678:153:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2697:112:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2697:112:26;;;;;;;;;;;;;;;;;2505:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2505:186:26;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1900:114;1948:19;1994:13;;;;;;;;;;;1979:28;;1900:114;:::o;2280:107::-;2324:16;2363:17;;;;;;;;;;;2352:28;;2280:107;:::o;1757:137::-;1824:15;1861:16;:26;1878:8;1861:26;;;;;;;;;;;;;;;;;;;;;;;;;1851:36;;1757:137;;;:::o;837:403:39:-;899:16;968;998:20;1032:31;1087:8;1076:45;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1076:45:39;;;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1076:45:39;;;;;;954:167;;;;;;1175:58;1190:8;1200:12;1214:18;1175:14;:58::i;:::-;1164:69;;837:403;;;;;;:::o;1246:681::-;1389:16;1455:13;1558:21;1618:8;:19;;;:28;;;;1672:8;1694:12;1720:18;1582:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1582:166:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1582:166:39;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1582:166:39;1558:190;;1797:25;1813:8;1797:15;:25::i;:::-;1786:36;;1860:60;1877:8;1887:12;1901:18;1860:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1860:60:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1246:681;;;;;;;:::o;2143:131:26:-;2195:24;2250:17;;;;;;;;;;;2231:36;;2143:131;:::o;2020:117::-;2067:25;2118:12;2104:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:117;:::o;2393:106::-;2442:13;2475:10;:17;;;;2467:25;;2393:106;:::o;2872:633::-;2962:26;3021:8;3008:10;:21;3000:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:10;:17;;;;3089:8;:29;;3081:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:22;3252:10;3241:8;:21;3227:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3227:36:26;;;;3202:61;;3329:9;3341:10;3329:22;;3324:110;3357:8;3353:1;:12;3324:110;;;3410:10;3421:1;3410:13;;;;;;;;;;;;;;;;;;;;;;;;;3386:5;3396:10;3392:1;:14;3386:21;;;;;;;;;;;;;:37;;;;;;;;;;;3367:3;;;;;;;3324:110;;;;3493:5;3481:17;;2872:633;;;;;:::o;678:153:39:-;733:16;799:25;815:8;799:15;:25::i;:::-;788:36;;678:153;;;:::o;2697:112:26:-;2742:26;2792:10;2780:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2697:112;:::o;2505:186::-;2562:16;2606:10;:17;;;;2598:5;:25;2590:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:10;2678:5;2667:17;;;;;;;;;;;;;;;;;;;;;;;;;2656:28;;2505:186;;;:::o;1150:601::-;1208:16;1327:39;1342:13;:11;:13::i;:::-;1357:8;1327:14;:39::i;:::-;1316:50;;1417:10;1433:8;1417:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1417:25:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:10;1484:16;:26;1501:8;1484:26;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;1596:21;:19;:21::i;:::-;1586:41;;;1628:8;1638:10;1657:1;1586:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1586:74:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1586:74:26;;;;1723:10;1697:47;;1713:8;1697:47;;;1735:8;1697:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1697:47:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:601;;;:::o;1848:448:12:-;1954:23;2065:21;2113:24;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;2113:24:12;2156:13;2171:22;2145:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2145:49:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2145::12;;;2089:111;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2089:111:12;;;2065:135;;2268:23;2282:8;2268:13;:23::i;:::-;2250:41;;1848:448;;;;;:::o;3763:1009::-;3834:23;3947:12;3965:27;3983:8;3965:17;:27::i;:::-;3946:46;;;4046:8;4040:4;4036:19;4117:8;4111:15;4487:4;4410:12;4332;4251:9;4188:371;4169:390;;4657:15;4647:2;;4705:14;4702:1;4699;4684:36;4739:14;4736:1;4729:25;4647:2;4008:760;;;;;;:::o;4970:1612::-;5050:12;5064:14;5157:20;5190:8;5180:19;;;;;;5157:42;;5278:13;5294:1;5278:17;;5360:16;5383:1195;5390:4;5383:1195;;;5499:10;5511:5;5482:35;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5482:35:12;;;5472:46;;;;;;5465:53;;5914:4;5907:12;;5984:4;6052;6119:12;5829:367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5829:367:12;;;5752:458;;;;;;5673:549;;5527:713;;6360:6;6348:19;6336:31;;6466:1;6454:8;:13;6450:43;;;6479:5;;6450:43;6564:7;;;;;;;5383:1195;;;4970:1612;;;;;;:::o;81:1849:39:-;;;;;;;;:::o;545:574:26:-;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/Factory.sol\";\nimport \"./Feed.sol\";\n\n\ncontract Feed_Factory is Factory {\n\n constructor(address instanceRegistry) public {\n // deploy template contract\n address templateContract = address(new Feed());\n // set instance type\n bytes4 instanceType = bytes4(keccak256(bytes('Post')));\n // set initdataABI\n string memory initdataABI = '(address,address,bytes)';\n // initialize factory params\n Factory._initialize(instanceRegistry, templateContract, instanceType, initdataABI);\n }\n\n event ExplicitInitData(address operator, address postRegistry, bytes feedStaticMetadata);\n\n function create(bytes memory callData) public returns (address instance) {\n // deploy instance\n instance = Factory._create(callData);\n }\n\n function createEncoded(bytes memory initdata) public returns (address instance) {\n // decode initdata\n (\n address operator,\n address postRegistry,\n bytes memory feedStaticMetadata\n ) = abi.decode(initdata, (address,address,bytes));\n\n // call explicit create\n instance = createExplicit(operator, postRegistry, feedStaticMetadata);\n }\n\n function createExplicit(\n address operator,\n address postRegistry,\n bytes memory feedStaticMetadata\n ) public returns (address instance) {\n // declare template in memory\n Feed template;\n\n // construct the data payload used when initializing the new contract.\n bytes memory callData = abi.encodeWithSelector(\n template.initialize.selector, // selector\n operator,\n postRegistry,\n feedStaticMetadata\n );\n\n // deploy instance\n instance = Factory._create(callData);\n\n // emit event\n emit ExplicitInitData(operator, postRegistry, feedStaticMetadata);\n }\n\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed_Factory.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed_Factory.sol", - "exportedSymbols": { - "Feed_Factory": [ - 8329 - ] - }, - "id": 8330, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8193, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:39" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 8194, - "nodeType": "ImportDirective", - "scope": 8330, - "sourceUnit": 6054, - "src": "25:32:39", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed.sol", - "file": "./Feed.sol", - "id": 8195, - "nodeType": "ImportDirective", - "scope": 8330, - "sourceUnit": 8192, - "src": "58:20:39", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8196, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "106:7:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 8197, - "nodeType": "InheritanceSpecifier", - "src": "106:7:39" - } - ], - "contractDependencies": [ - 4049, - 6053, - 8191 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8329, - "linearizedBaseContracts": [ - 8329, - 6053, - 4049 - ], - "name": "Feed_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8233, - "nodeType": "Block", - "src": "166:411:39", - "statements": [ - { - "assignments": [ - 8203 - ], - "declarations": [ - { - "constant": false, - "id": 8203, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "212:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "212:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "247:8:39", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Feed_$8191_$", - "typeString": "function () returns (contract Feed)" - }, - "typeName": { - "contractScope": null, - "id": 8205, - "name": "Feed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8191, - "src": "251:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - } - }, - "id": 8207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "247:10:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - ], - "id": 8204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "239:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "239:19:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "212:46:39" - }, - { - "assignments": [ - 8211 - ], - "declarations": [ - { - "constant": false, - "id": 8211, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "297:19:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 8210, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "297:6:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8219, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:6:39", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - } - ], - "id": 8214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "336:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 8216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "336:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8213, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "326:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "326:24:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "319:6:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 8218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "319:32:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "297:54:39" - }, - { - "assignments": [ - 8221 - ], - "declarations": [ - { - "constant": false, - "id": 8221, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "388:25:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "388:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8223, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c616464726573732c627974657329", - "id": 8222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "416:25:39", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6208615fe3241d62a4148235665829848167d54b5068eb08565773013fa09b30", - "typeString": "literal_string \"(address,address,bytes)\"" - }, - "value": "(address,address,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "388:53:39" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8227, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8199, - "src": "508:16:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8228, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8203, - "src": "526:16:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8229, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8211, - "src": "544:12:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8230, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "558:11:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8224, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "488:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "488:19:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 8231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "488:82:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8232, - "nodeType": "ExpressionStatement", - "src": "488:82:39" - } - ] - }, - "documentation": null, - "id": 8234, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8199, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 8234, - "src": "133:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8198, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:26:39" - }, - "returnParameters": { - "id": 8201, - "nodeType": "ParameterList", - "parameters": [], - "src": "166:0:39" - }, - "scope": 8329, - "src": "121:456:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 8242, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 8241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8236, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "606:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "606:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8238, - "indexed": false, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "624:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "624:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8240, - "indexed": false, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "646:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8239, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "646:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "605:66:39" - }, - "src": "583:89:39" - }, - { - "body": { - "id": 8256, - "nodeType": "Block", - "src": "751:80:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8249, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8247, - "src": "788:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8252, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8244, - "src": "815:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8250, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "799:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "799:15:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "799:25:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "788:36:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8255, - "nodeType": "ExpressionStatement", - "src": "788:36:39" - } - ] - }, - "documentation": null, - "id": 8257, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8244, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8257, - "src": "694:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8243, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "694:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "693:23:39" - }, - "returnParameters": { - "id": 8248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8247, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8257, - "src": "733:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "732:18:39" - }, - "scope": 8329, - "src": "678:153:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8287, - "nodeType": "Block", - "src": "917:323:39", - "statements": [ - { - "assignments": [ - 8265, - 8267, - 8269 - ], - "declarations": [ - { - "constant": false, - "id": 8265, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "968:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "968:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8267, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "998:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "998:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8269, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "1032:31:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8268, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1032:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8278, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8272, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "1087:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1098:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1106:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1114:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 8276, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1097:23:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 8270, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1076:3:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1076:10:39", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 8277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1076:45:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_address_payable_$_t_bytes_memory_$", - "typeString": "tuple(address payable,address payable,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "954:167:39" - }, - { - "expression": { - "argumentTypes": null, - "id": 8285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8279, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8262, - "src": "1164:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8281, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8265, - "src": "1190:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8282, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8267, - "src": "1200:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8283, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8269, - "src": "1214:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8280, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8328, - "src": "1175:14:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,address,bytes memory) returns (address)" - } - }, - "id": 8284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1175:58:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1164:69:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8286, - "nodeType": "ExpressionStatement", - "src": "1164:69:39" - } - ] - }, - "documentation": null, - "id": 8288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8259, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 8288, - "src": "860:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8258, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "860:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "859:23:39" - }, - "returnParameters": { - "id": 8263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8262, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8288, - "src": "899:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8261, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "899:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "898:18:39" - }, - "scope": 8329, - "src": "837:403:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8327, - "nodeType": "Block", - "src": "1407:520:39", - "statements": [ - { - "assignments": [ - 8300 - ], - "declarations": [ - { - "constant": false, - "id": 8300, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 8327, - "src": "1455:13:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - }, - "typeName": { - "contractScope": null, - "id": 8299, - "name": "Feed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8191, - "src": "1455:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8301, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1455:13:39" - }, - { - "assignments": [ - 8303 - ], - "declarations": [ - { - "constant": false, - "id": 8303, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8327, - "src": "1558:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8302, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1558:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8313, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8306, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8300, - "src": "1618:8:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - }, - "id": 8307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 8052, - "src": "1618:19:39", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory) external" - } - }, - "id": 8308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1618:28:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8309, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8290, - "src": "1672:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8310, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8292, - "src": "1694:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8311, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8294, - "src": "1720:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8304, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1582:3:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1582:22:39", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 8312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1582:166:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1558:190:39" - }, - { - "expression": { - "argumentTypes": null, - "id": 8319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8314, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8297, - "src": "1786:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8317, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8303, - "src": "1813:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8315, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "1797:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "1797:15:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1797:25:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1786:36:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8320, - "nodeType": "ExpressionStatement", - "src": "1786:36:39" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8322, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8290, - "src": "1877:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8323, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8292, - "src": "1887:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8324, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8294, - "src": "1901:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8321, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8242, - "src": "1860:16:39", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory)" - } - }, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1860:60:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8326, - "nodeType": "EmitStatement", - "src": "1855:65:39" - } - ] - }, - "documentation": null, - "id": 8328, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8290, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1279:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8292, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1305:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1305:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8294, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1335:31:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1335:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1269:103:39" - }, - "returnParameters": { - "id": 8298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8297, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1389:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1389:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1388:18:39" - }, - "scope": 8329, - "src": "1246:681:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8330, - "src": "81:1849:39" - } - ], - "src": "0:1931:39" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed_Factory.sol", - "exportedSymbols": { - "Feed_Factory": [ - 8329 - ] - }, - "id": 8330, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8193, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:39" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 8194, - "nodeType": "ImportDirective", - "scope": 8330, - "sourceUnit": 6054, - "src": "25:32:39", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Feed.sol", - "file": "./Feed.sol", - "id": 8195, - "nodeType": "ImportDirective", - "scope": 8330, - "sourceUnit": 8192, - "src": "58:20:39", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8196, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "106:7:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 8197, - "nodeType": "InheritanceSpecifier", - "src": "106:7:39" - } - ], - "contractDependencies": [ - 4049, - 6053, - 8191 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8329, - "linearizedBaseContracts": [ - 8329, - 6053, - 4049 - ], - "name": "Feed_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8233, - "nodeType": "Block", - "src": "166:411:39", - "statements": [ - { - "assignments": [ - 8203 - ], - "declarations": [ - { - "constant": false, - "id": 8203, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "212:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "212:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "247:8:39", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Feed_$8191_$", - "typeString": "function () returns (contract Feed)" - }, - "typeName": { - "contractScope": null, - "id": 8205, - "name": "Feed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8191, - "src": "251:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - } - }, - "id": 8207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "247:10:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - ], - "id": 8204, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "239:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "239:19:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "212:46:39" - }, - { - "assignments": [ - 8211 - ], - "declarations": [ - { - "constant": false, - "id": 8211, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "297:19:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 8210, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "297:6:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8219, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:6:39", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - } - ], - "id": 8214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "336:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 8216, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "336:13:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8213, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "326:9:39", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "326:24:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8212, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "319:6:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 8218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "319:32:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "297:54:39" - }, - { - "assignments": [ - 8221 - ], - "declarations": [ - { - "constant": false, - "id": 8221, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 8233, - "src": "388:25:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8220, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "388:6:39", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8223, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c616464726573732c627974657329", - "id": 8222, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "416:25:39", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6208615fe3241d62a4148235665829848167d54b5068eb08565773013fa09b30", - "typeString": "literal_string \"(address,address,bytes)\"" - }, - "value": "(address,address,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "388:53:39" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8227, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8199, - "src": "508:16:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8228, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8203, - "src": "526:16:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8229, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8211, - "src": "544:12:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8230, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8221, - "src": "558:11:39", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8224, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "488:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "488:19:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 8231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "488:82:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8232, - "nodeType": "ExpressionStatement", - "src": "488:82:39" - } - ] - }, - "documentation": null, - "id": 8234, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8199, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 8234, - "src": "133:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8198, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:26:39" - }, - "returnParameters": { - "id": 8201, - "nodeType": "ParameterList", - "parameters": [], - "src": "166:0:39" - }, - "scope": 8329, - "src": "121:456:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 8242, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 8241, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8236, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "606:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "606:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8238, - "indexed": false, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "624:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "624:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8240, - "indexed": false, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8242, - "src": "646:24:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8239, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "646:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "605:66:39" - }, - "src": "583:89:39" - }, - { - "body": { - "id": 8256, - "nodeType": "Block", - "src": "751:80:39", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8249, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8247, - "src": "788:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8252, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8244, - "src": "815:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8250, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "799:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "799:15:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "799:25:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "788:36:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8255, - "nodeType": "ExpressionStatement", - "src": "788:36:39" - } - ] - }, - "documentation": null, - "id": 8257, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8244, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8257, - "src": "694:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8243, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "694:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "693:23:39" - }, - "returnParameters": { - "id": 8248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8247, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8257, - "src": "733:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8246, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "732:18:39" - }, - "scope": 8329, - "src": "678:153:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8287, - "nodeType": "Block", - "src": "917:323:39", - "statements": [ - { - "assignments": [ - 8265, - 8267, - 8269 - ], - "declarations": [ - { - "constant": false, - "id": 8265, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "968:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "968:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8267, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "998:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8266, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "998:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8269, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8287, - "src": "1032:31:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8268, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1032:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8278, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8272, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8259, - "src": "1087:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1098:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1106:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1114:5:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 8276, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1097:23:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 8270, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1076:3:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1076:10:39", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 8277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1076:45:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_address_payable_$_t_bytes_memory_$", - "typeString": "tuple(address payable,address payable,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "954:167:39" - }, - { - "expression": { - "argumentTypes": null, - "id": 8285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8279, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8262, - "src": "1164:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8281, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8265, - "src": "1190:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8282, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8267, - "src": "1200:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8283, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8269, - "src": "1214:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8280, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8328, - "src": "1175:14:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,address,bytes memory) returns (address)" - } - }, - "id": 8284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1175:58:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1164:69:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8286, - "nodeType": "ExpressionStatement", - "src": "1164:69:39" - } - ] - }, - "documentation": null, - "id": 8288, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8260, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8259, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 8288, - "src": "860:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8258, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "860:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "859:23:39" - }, - "returnParameters": { - "id": 8263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8262, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8288, - "src": "899:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8261, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "899:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "898:18:39" - }, - "scope": 8329, - "src": "837:403:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8327, - "nodeType": "Block", - "src": "1407:520:39", - "statements": [ - { - "assignments": [ - 8300 - ], - "declarations": [ - { - "constant": false, - "id": 8300, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 8327, - "src": "1455:13:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - }, - "typeName": { - "contractScope": null, - "id": 8299, - "name": "Feed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8191, - "src": "1455:4:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8301, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1455:13:39" - }, - { - "assignments": [ - 8303 - ], - "declarations": [ - { - "constant": false, - "id": 8303, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8327, - "src": "1558:21:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8302, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1558:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8313, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8306, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8300, - "src": "1618:8:39", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Feed_$8191", - "typeString": "contract Feed" - } - }, - "id": 8307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 8052, - "src": "1618:19:39", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory) external" - } - }, - "id": 8308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1618:28:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8309, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8290, - "src": "1672:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8310, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8292, - "src": "1694:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8311, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8294, - "src": "1720:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8304, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1582:3:39", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1582:22:39", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 8312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1582:166:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1558:190:39" - }, - { - "expression": { - "argumentTypes": null, - "id": 8319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8314, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8297, - "src": "1786:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8317, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8303, - "src": "1813:8:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8315, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "1797:7:39", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "1797:15:39", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1797:25:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1786:36:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8320, - "nodeType": "ExpressionStatement", - "src": "1786:36:39" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8322, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8290, - "src": "1877:8:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8323, - "name": "postRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8292, - "src": "1887:12:39", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8324, - "name": "feedStaticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8294, - "src": "1901:18:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8321, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8242, - "src": "1860:16:39", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes memory)" - } - }, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1860:60:39", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8326, - "nodeType": "EmitStatement", - "src": "1855:65:39" - } - ] - }, - "documentation": null, - "id": 8328, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8295, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8290, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1279:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8289, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8292, - "name": "postRegistry", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1305:20:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1305:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8294, - "name": "feedStaticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1335:31:39", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8293, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1335:5:39", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1269:103:39" - }, - "returnParameters": { - "id": 8298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8297, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8328, - "src": "1389:16:39", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1389:7:39", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1388:18:39" - }, - "scope": 8329, - "src": "1246:681:39", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8330, - "src": "81:1849:39" - } - ], - "src": "0:1931:39" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.546Z" -} \ No newline at end of file diff --git a/build/OneWayGriefing.json b/build/OneWayGriefing.json deleted file mode 100644 index 5e313fb1..00000000 --- a/build/OneWayGriefing.json +++ /dev/null @@ -1,11703 +0,0 @@ -{ - "contractName": "OneWayGriefing", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getToken", - "outputs": [ - { - "name": "token", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "ratio", - "type": "uint256" - }, - { - "name": "punishment", - "type": "uint256" - }, - { - "name": "ratioType", - "type": "uint8" - } - ], - "name": "getCost", - "outputs": [ - { - "name": "cost", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "ratio", - "type": "uint256" - }, - { - "name": "cost", - "type": "uint256" - }, - { - "name": "ratioType", - "type": "uint8" - } - ], - "name": "getPunishment", - "outputs": [ - { - "name": "punishment", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getDeadline", - "outputs": [ - { - "name": "deadline", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "staker", - "type": "address" - } - ], - "name": "getRatio", - "outputs": [ - { - "name": "ratio", - "type": "uint256" - }, - { - "name": "ratioType", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAfterDeadline", - "outputs": [ - { - "name": "status", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getMetadata", - "outputs": [ - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "staker", - "type": "address" - } - ], - "name": "getStake", - "outputs": [ - { - "name": "stake", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOver", - "outputs": [ - { - "name": "status", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getLength", - "outputs": [ - { - "name": "length", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "timeRemaining", - "outputs": [ - { - "name": "time", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOperator", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isCreator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "status", - "type": "bool" - } - ], - "name": "OperatorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "StaticMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "VariableMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "name": "ratio", - "type": "uint256" - }, - { - "indexed": false, - "name": "ratioType", - "type": "uint8" - } - ], - "name": "RatioSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "punisher", - "type": "address" - }, - { - "indexed": false, - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "name": "punishment", - "type": "uint256" - }, - { - "indexed": false, - "name": "cost", - "type": "uint256" - }, - { - "indexed": false, - "name": "message", - "type": "bytes" - } - ], - "name": "Griefed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "token", - "type": "address" - } - ], - "name": "TokenSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "name": "funder", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "newStake", - "type": "uint256" - } - ], - "name": "StakeAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "name": "recipient", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "newStake", - "type": "uint256" - } - ], - "name": "StakeTaken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staker", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "name": "newStake", - "type": "uint256" - } - ], - "name": "StakeBurned", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "length", - "type": "uint256" - } - ], - "name": "LengthSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "deadline", - "type": "uint256" - } - ], - "name": "DeadlineSet", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "operator", - "type": "address" - }, - { - "name": "staker", - "type": "address" - }, - { - "name": "counterparty", - "type": "address" - }, - { - "name": "ratio", - "type": "uint256" - }, - { - "name": "ratioType", - "type": "uint8" - }, - { - "name": "countdownLength", - "type": "uint256" - }, - { - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "setVariableMetadata", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "currentStake", - "type": "uint256" - }, - { - "name": "amountToAdd", - "type": "uint256" - } - ], - "name": "increaseStake", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "currentStake", - "type": "uint256" - }, - { - "name": "amountToAdd", - "type": "uint256" - } - ], - "name": "reward", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "punishment", - "type": "uint256" - }, - { - "name": "message", - "type": "bytes" - } - ], - "name": "punish", - "outputs": [ - { - "name": "cost", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "startCountdown", - "outputs": [ - { - "name": "deadline", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - } - ], - "name": "retrieveStake", - "outputs": [ - { - "name": "amount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - } - ], - "name": "transferOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renouceOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isStaker", - "outputs": [ - { - "name": "validity", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isCounterparty", - "outputs": [ - { - "name": "validity", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50613c7b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806373f500af116100f9578063a4fa8d5711610097578063bec10cde11610071578063bec10cde14610ae2578063e3cfef6014610b1a578063e7f43c6814610b38578063efd4606514610b82576101c4565b8063a4fa8d5714610a6a578063b4bd9e2714610aa2578063be1c766b14610ac4576101c4565b80637a5b4f59116100d35780637a5b4f59146108f75780637a766460146109e6578063913b945014610a3e578063923b176214610a48576101c4565b806373f500af1461080c578063754b2707146108685780637878f257146108d5576101c4565b806341ce2878116101665780635e5365c1116101405780635e5365c1146107185780635f8d96de146107365780636d70f7ae146107545780636f1e8533146107b0576101c4565b806341ce28781461060e578063465b414e146106665780635baeb806146106bf576101c4565b806327305e83116101a257806327305e831461035657806329605e77146104115780633121d2e7146104555780633367cca5146105b2576101c4565b8063060e468f146101c95780630ee2cb10146102c257806321df0da71461030c575b600080fd5b6102ac600480360360608110156101df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561022657600080fd5b82018360208201111561023857600080fd5b8035906020019184600183028401116401000000008311171561025a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610bde565b6040518082815260200191505060405180910390f35b6102ca610d03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610314610de4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040f6004803603602081101561036c57600080fd5b810190808035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0e565b005b6104536004803603602081101561042757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea5565b005b6105b0600480360361010081101561046c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019064010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184600183028401116401000000008311171561055e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610f2c565b005b6105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d1565b604051808215151515815260200191505060405180910390f35b6106506004803603602081101561062457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110f3565b6040518082815260200191505060405180910390f35b6106a96004803603606081101561067c57600080fd5b810190808035906020019092919080359060200190929190803560ff169060200190929190505050611230565b6040518082815260200191505060405180910390f35b610702600480360360608110156106d557600080fd5b810190808035906020019092919080359060200190929190803560ff16906020019092919050505061136a565b6040518082815260200191505060405180910390f35b6107206114ec565b6040518082815260200191505060405180910390f35b61073e611603565b6040518082815260200191505060405180910390f35b6107966004803603602081101561076a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160c565b604051808215151515815260200191505060405180910390f35b6107f2600480360360208110156107c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061164b565b604051808215151515815260200191505060405180910390f35b61084e6004803603602081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a8565b604051808215151515815260200191505060405180910390f35b6108aa6004803603602081101561087e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611705565b604051808381526020018260048111156108c057fe5b60ff1681526020019250505060405180910390f35b6108dd6117a4565b604051808215151515815260200191505060405180910390f35b6108ff6117c5565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610943578082015181840152602081019050610928565b50505050905090810190601f1680156109705780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156109a957808201518184015260208101905061098e565b50505050905090810190601f1680156109d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610a28600480360360208110156109fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611906565b6040518082815260200191505060405180910390f35b610a4661194f565b005b610a506119d4565b604051808215151515815260200191505060405180910390f35b610aa060048036036040811015610a8057600080fd5b8101908080359060200190929190803590602001909291905050506119eb565b005b610aaa611b09565b604051808215151515815260200191505060405180910390f35b610acc611b3e565b6040518082815260200191505060405180910390f35b610b1860048036036040811015610af857600080fd5b810190808035906020019092919080359060200190929190505050611b48565b005b610b22611c83565b6040518082815260200191505060405180910390f35b610b40611cbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bc460048036036020811015610b9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ce6565b604051808215151515815260200191505060405180910390f35b6000610be9336116a8565b80610bf95750610bf8336110d1565b5b610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b610c56611b09565b15610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b610cfa84600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585611d25565b90509392505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b8101908080519060200190929190505050905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e173361164b565b80610e275750610e26336110d1565b5b610e99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b610ea281612046565b50565b610eae336110d1565b610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b610f29816120fc565b50565b33600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613bfc602a913960400191505060405180910390fd5b86600960000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146110a05761109788612108565b61109f612286565b5b6110a9896123b0565b6110b487868661241f565b6110bd8361254f565b6110c682612590565b505050505050505050565b60006110dc8261160c565b80156110ec57506110eb6119d4565b5b9050919050565b60006110fe3361164b565b8061110e575061110d336110d1565b5b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6111886117a4565b6111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f646561646c696e65206e6f74207061737365640000000000000000000000000081525060200191505060405180910390fd5b611229600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836126b5565b9050919050565b60006001600481111561123f57fe5b82600481111561124b57fe5b141561126b5761126484846127b490919063ffffffff16565b9050611363565b6002600481111561127857fe5b82600481111561128457fe5b14156112a45761129d848461283a90919063ffffffff16565b9050611363565b600360048111156112b157fe5b8260048111156112bd57fe5b14156112cb57829050611363565b6004808111156112d757fe5b8260048111156112e357fe5b14156112f25760009050611363565b600060048111156112ff57fe5b82600481111561130b57fe5b1415611362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006001600481111561137957fe5b82600481111561138557fe5b14156113a55761139e848461283a90919063ffffffff16565b90506114e5565b600260048111156113b257fe5b8260048111156113be57fe5b14156113de576113d784846127b490919063ffffffff16565b90506114e5565b600360048111156113eb57fe5b8260048111156113f757fe5b1415611405578290506114e5565b60048081111561141157fe5b82600481111561141d57fe5b1415611474576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b316021913960400191505060405180910390fd5b6000600481111561148157fe5b82600481111561148d57fe5b14156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006114f73361164b565b806115075750611506336110d1565b5b611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6000611583611603565b146115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f646561646c696e6520616c72656164792073657400000000000000000000000081525060200191505060405180910390fd5b6115fe6128c9565b905090565b60008054905090565b6000611616611cbc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050915091565b60008060005414156117b957600090506117c2565b60005442101590505b90565b60608060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b5050505050915060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118fb5780601f106118d0576101008083540402835291602001916118fb565b820191906000526020600020905b8154815290600101906020018083116118de57829003601f168201915b505050505090509091565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611958336110d1565b6119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b6119d2612966565b565b6000600760149054906101000a900460ff16905090565b6119f4336116a8565b80611a045750611a03336110d1565b5b611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b611a61611b09565b15611ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611b05600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000806001541480611b2257506000611b20611603565b145b15611b305760009050611b3b565b611b386117a4565b90505b90565b6000600154905090565b611b513361164b565b80611b615750611b60336110d1565b5b611bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b611bdb611b09565b15611c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611c7f600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000611c8d611603565b4210611c9c5760009050611cb9565b611cb642611ca8611603565b612efb90919063ffffffff16565b90505b90565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611cf0610d03565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611d46610de4565b73ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f746f6b656e206e6f74207365740000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16905060006004811115611e7857fe5b816004811115611e8457fe5b1415611ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6e6f2070756e6973686d656e7420616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b611f03828683611230565b9250611f0f8784612f84565b6000611f1a87611906565b9050611f278782886130de565b7fca93c648a4546f2ae486b9140f0082ced75a2664a663c8882b8b3545cddfeeb18888888789604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ffd578082015181840152602081019050611fe2565b50505050905090810190601f16801561202a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1505050949350505050565b806006908051906020019061205c929190613a8b565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b838110156120bf5780820151818401526020810190506120a4565b50505050905090810190601f1680156120ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61210581612108565b50565b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816122376119d4565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61228e6119d4565b15612301576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b6123b9816133e8565b7fa07c91c183e42229e705a9795a1c06d76528b673788b849597364528c96eefb781604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908360048111156124c457fe5b02179055507fc964ed8af672f908dc7ba57f61d45a87a7e179cecf5198e7b7d53c920d898f06838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600481111561253557fe5b60ff168152602001935050505060405180910390a1505050565b806001819055507f7caceb1091bbaa84d09ab116a1fd72387eaab8a33d70fc39168b9b75686ee32c816040518082815260200191505060405180910390a150565b60006005805460018160011615610100020316600290049050146125ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b526021913960400191505060405180910390fd5b8060059080519060200190612615929190613a8b565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561267857808201518184015260208101905061265d565b50505050905090810190601f1680156126a55780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b60008073ffffffffffffffffffffffffffffffffffffffff166126d6610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506127ae8383838461342c565b92915050565b6000808314156127c75760009050612834565b60008284029050828482816127d857fe5b041461282f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613bb96021913960400191505060405180910390fd5b809150505b92915050565b60008082116128b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b60008284816128bc57fe5b0490508091505092915050565b6000806001541415612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6c656e677468206e6f742073657400000000000000000000000000000000000081525060200191505060405180910390fd5b6129584260015461389d90919063ffffffff16565b905061296381613925565b90565b61296e6119d4565b6129e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f6e6c79207768656e206f70657261746f72206163746976650000000000000081525060200191505060405180910390fd5b6000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600080604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff16612acf610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612b59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548214612c0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111612c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f207374616b6520746f20616464000000000000000000000000000000000081525060200191505060405180910390fd5b6000612c98828461389d90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ce6610de4565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8530856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b505050506040513d6020811015612dca57600080fd5b8101908080519060200190929190505050612e4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7fef7c8dfef14cbefdf829b8f066b068b677992411137321d64b3ed4538c2b363785858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b600082821115612f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637c8d56b883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b505050506040513d602081101561305757600080fd5b81019080805190602001909291905050506130da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6d72206275726e46726f6d206661696c65640000000000000000000000000081525060200191505060405180910390fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff166130fe610de4565b73ffffffffffffffffffffffffffffffffffffffff161415613188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461323c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b600081116132b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f206275726e0000000000000000000000000000000081525060200191505060405180910390fd5b8181111561330b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bda6022913960400191505060405180910390fd5b60006133208284612efb90919063ffffffff16565b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336f82613966565b7ff470d7f6c239014b63db190652ebe51433a828b65e06d9972143c34c2e2ca3bc848383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff1661344c610de4565b73ffffffffffffffffffffffffffffffffffffffff1614156134d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461358a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111613600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f2074616b650000000000000000000000000000000081525060200191505060405180910390fd5b81811115613659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613b736022913960400191505060405180910390fd5b600061366e8284612efb90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136bc610de4565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561374257600080fd5b505af1158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b81019080805190602001909291905050506137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7f79cb01d8e263c1d344176f9a596b5a6aa14a7df350a227e2e7df836a087b566185858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b60008082840190508381101561391b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b806000819055507f337b880688eb06df8adb77036a6c8def1da2b520bc901c04b3a5a23f9ae13039816040518082815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b505050506040513d6020811015613a0557600080fd5b8101908080519060200190929190505050613a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6d72206275726e206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613acc57805160ff1916838001178555613afa565b82800160010185558215613afa579182015b82811115613af9578251825591602001919060010190613ade565b5b509050613b079190613b0b565b5090565b613b2d91905b80821115613b29576000816000905550600101613b11565b5090565b9056fe726174696f547970652063616e6e6f7420626520526174696f547970652e496e66737461746963206d657461646174612063616e6e6f74206265206368616e67656463616e6e6f742074616b65206d6f7265207468616e2063757272656e745374616b656f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7763616e6e6f74206275726e206d6f7265207468616e2063757272656e745374616b656d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72726174696f547970652063616e6e6f7420626520526174696f547970652e4e614ea265627a7a7230582081339156344ab7a116f94fe356eb98a1070ac57c2963485ddd6589b77f506fe164736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806373f500af116100f9578063a4fa8d5711610097578063bec10cde11610071578063bec10cde14610ae2578063e3cfef6014610b1a578063e7f43c6814610b38578063efd4606514610b82576101c4565b8063a4fa8d5714610a6a578063b4bd9e2714610aa2578063be1c766b14610ac4576101c4565b80637a5b4f59116100d35780637a5b4f59146108f75780637a766460146109e6578063913b945014610a3e578063923b176214610a48576101c4565b806373f500af1461080c578063754b2707146108685780637878f257146108d5576101c4565b806341ce2878116101665780635e5365c1116101405780635e5365c1146107185780635f8d96de146107365780636d70f7ae146107545780636f1e8533146107b0576101c4565b806341ce28781461060e578063465b414e146106665780635baeb806146106bf576101c4565b806327305e83116101a257806327305e831461035657806329605e77146104115780633121d2e7146104555780633367cca5146105b2576101c4565b8063060e468f146101c95780630ee2cb10146102c257806321df0da71461030c575b600080fd5b6102ac600480360360608110156101df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561022657600080fd5b82018360208201111561023857600080fd5b8035906020019184600183028401116401000000008311171561025a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610bde565b6040518082815260200191505060405180910390f35b6102ca610d03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610314610de4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040f6004803603602081101561036c57600080fd5b810190808035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0e565b005b6104536004803603602081101561042757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea5565b005b6105b0600480360361010081101561046c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019064010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184600183028401116401000000008311171561055e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610f2c565b005b6105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d1565b604051808215151515815260200191505060405180910390f35b6106506004803603602081101561062457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110f3565b6040518082815260200191505060405180910390f35b6106a96004803603606081101561067c57600080fd5b810190808035906020019092919080359060200190929190803560ff169060200190929190505050611230565b6040518082815260200191505060405180910390f35b610702600480360360608110156106d557600080fd5b810190808035906020019092919080359060200190929190803560ff16906020019092919050505061136a565b6040518082815260200191505060405180910390f35b6107206114ec565b6040518082815260200191505060405180910390f35b61073e611603565b6040518082815260200191505060405180910390f35b6107966004803603602081101561076a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160c565b604051808215151515815260200191505060405180910390f35b6107f2600480360360208110156107c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061164b565b604051808215151515815260200191505060405180910390f35b61084e6004803603602081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a8565b604051808215151515815260200191505060405180910390f35b6108aa6004803603602081101561087e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611705565b604051808381526020018260048111156108c057fe5b60ff1681526020019250505060405180910390f35b6108dd6117a4565b604051808215151515815260200191505060405180910390f35b6108ff6117c5565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610943578082015181840152602081019050610928565b50505050905090810190601f1680156109705780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156109a957808201518184015260208101905061098e565b50505050905090810190601f1680156109d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610a28600480360360208110156109fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611906565b6040518082815260200191505060405180910390f35b610a4661194f565b005b610a506119d4565b604051808215151515815260200191505060405180910390f35b610aa060048036036040811015610a8057600080fd5b8101908080359060200190929190803590602001909291905050506119eb565b005b610aaa611b09565b604051808215151515815260200191505060405180910390f35b610acc611b3e565b6040518082815260200191505060405180910390f35b610b1860048036036040811015610af857600080fd5b810190808035906020019092919080359060200190929190505050611b48565b005b610b22611c83565b6040518082815260200191505060405180910390f35b610b40611cbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bc460048036036020811015610b9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ce6565b604051808215151515815260200191505060405180910390f35b6000610be9336116a8565b80610bf95750610bf8336110d1565b5b610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b610c56611b09565b15610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b610cfa84600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585611d25565b90509392505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b8101908080519060200190929190505050905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e173361164b565b80610e275750610e26336110d1565b5b610e99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b610ea281612046565b50565b610eae336110d1565b610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b610f29816120fc565b50565b33600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613bfc602a913960400191505060405180910390fd5b86600960000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146110a05761109788612108565b61109f612286565b5b6110a9896123b0565b6110b487868661241f565b6110bd8361254f565b6110c682612590565b505050505050505050565b60006110dc8261160c565b80156110ec57506110eb6119d4565b5b9050919050565b60006110fe3361164b565b8061110e575061110d336110d1565b5b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6111886117a4565b6111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f646561646c696e65206e6f74207061737365640000000000000000000000000081525060200191505060405180910390fd5b611229600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836126b5565b9050919050565b60006001600481111561123f57fe5b82600481111561124b57fe5b141561126b5761126484846127b490919063ffffffff16565b9050611363565b6002600481111561127857fe5b82600481111561128457fe5b14156112a45761129d848461283a90919063ffffffff16565b9050611363565b600360048111156112b157fe5b8260048111156112bd57fe5b14156112cb57829050611363565b6004808111156112d757fe5b8260048111156112e357fe5b14156112f25760009050611363565b600060048111156112ff57fe5b82600481111561130b57fe5b1415611362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006001600481111561137957fe5b82600481111561138557fe5b14156113a55761139e848461283a90919063ffffffff16565b90506114e5565b600260048111156113b257fe5b8260048111156113be57fe5b14156113de576113d784846127b490919063ffffffff16565b90506114e5565b600360048111156113eb57fe5b8260048111156113f757fe5b1415611405578290506114e5565b60048081111561141157fe5b82600481111561141d57fe5b1415611474576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b316021913960400191505060405180910390fd5b6000600481111561148157fe5b82600481111561148d57fe5b14156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006114f73361164b565b806115075750611506336110d1565b5b611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6000611583611603565b146115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f646561646c696e6520616c72656164792073657400000000000000000000000081525060200191505060405180910390fd5b6115fe6128c9565b905090565b60008054905090565b6000611616611cbc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050915091565b60008060005414156117b957600090506117c2565b60005442101590505b90565b60608060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b5050505050915060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118fb5780601f106118d0576101008083540402835291602001916118fb565b820191906000526020600020905b8154815290600101906020018083116118de57829003601f168201915b505050505090509091565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611958336110d1565b6119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b6119d2612966565b565b6000600760149054906101000a900460ff16905090565b6119f4336116a8565b80611a045750611a03336110d1565b5b611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b611a61611b09565b15611ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611b05600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000806001541480611b2257506000611b20611603565b145b15611b305760009050611b3b565b611b386117a4565b90505b90565b6000600154905090565b611b513361164b565b80611b615750611b60336110d1565b5b611bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b611bdb611b09565b15611c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611c7f600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000611c8d611603565b4210611c9c5760009050611cb9565b611cb642611ca8611603565b612efb90919063ffffffff16565b90505b90565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611cf0610d03565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611d46610de4565b73ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f746f6b656e206e6f74207365740000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16905060006004811115611e7857fe5b816004811115611e8457fe5b1415611ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6e6f2070756e6973686d656e7420616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b611f03828683611230565b9250611f0f8784612f84565b6000611f1a87611906565b9050611f278782886130de565b7fca93c648a4546f2ae486b9140f0082ced75a2664a663c8882b8b3545cddfeeb18888888789604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ffd578082015181840152602081019050611fe2565b50505050905090810190601f16801561202a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1505050949350505050565b806006908051906020019061205c929190613a8b565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b838110156120bf5780820151818401526020810190506120a4565b50505050905090810190601f1680156120ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61210581612108565b50565b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816122376119d4565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61228e6119d4565b15612301576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b6123b9816133e8565b7fa07c91c183e42229e705a9795a1c06d76528b673788b849597364528c96eefb781604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908360048111156124c457fe5b02179055507fc964ed8af672f908dc7ba57f61d45a87a7e179cecf5198e7b7d53c920d898f06838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600481111561253557fe5b60ff168152602001935050505060405180910390a1505050565b806001819055507f7caceb1091bbaa84d09ab116a1fd72387eaab8a33d70fc39168b9b75686ee32c816040518082815260200191505060405180910390a150565b60006005805460018160011615610100020316600290049050146125ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b526021913960400191505060405180910390fd5b8060059080519060200190612615929190613a8b565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561267857808201518184015260208101905061265d565b50505050905090810190601f1680156126a55780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b60008073ffffffffffffffffffffffffffffffffffffffff166126d6610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506127ae8383838461342c565b92915050565b6000808314156127c75760009050612834565b60008284029050828482816127d857fe5b041461282f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613bb96021913960400191505060405180910390fd5b809150505b92915050565b60008082116128b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b60008284816128bc57fe5b0490508091505092915050565b6000806001541415612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6c656e677468206e6f742073657400000000000000000000000000000000000081525060200191505060405180910390fd5b6129584260015461389d90919063ffffffff16565b905061296381613925565b90565b61296e6119d4565b6129e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f6e6c79207768656e206f70657261746f72206163746976650000000000000081525060200191505060405180910390fd5b6000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600080604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff16612acf610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612b59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548214612c0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111612c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f207374616b6520746f20616464000000000000000000000000000000000081525060200191505060405180910390fd5b6000612c98828461389d90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ce6610de4565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8530856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b505050506040513d6020811015612dca57600080fd5b8101908080519060200190929190505050612e4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7fef7c8dfef14cbefdf829b8f066b068b677992411137321d64b3ed4538c2b363785858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b600082821115612f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637c8d56b883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b505050506040513d602081101561305757600080fd5b81019080805190602001909291905050506130da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6d72206275726e46726f6d206661696c65640000000000000000000000000081525060200191505060405180910390fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff166130fe610de4565b73ffffffffffffffffffffffffffffffffffffffff161415613188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461323c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b600081116132b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f206275726e0000000000000000000000000000000081525060200191505060405180910390fd5b8181111561330b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bda6022913960400191505060405180910390fd5b60006133208284612efb90919063ffffffff16565b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336f82613966565b7ff470d7f6c239014b63db190652ebe51433a828b65e06d9972143c34c2e2ca3bc848383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff1661344c610de4565b73ffffffffffffffffffffffffffffffffffffffff1614156134d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461358a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111613600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f2074616b650000000000000000000000000000000081525060200191505060405180910390fd5b81811115613659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613b736022913960400191505060405180910390fd5b600061366e8284612efb90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136bc610de4565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561374257600080fd5b505af1158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b81019080805190602001909291905050506137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7f79cb01d8e263c1d344176f9a596b5a6aa14a7df350a227e2e7df836a087b566185858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b60008082840190508381101561391b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b806000819055507f337b880688eb06df8adb77036a6c8def1da2b520bc901c04b3a5a23f9ae13039816040518082815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b505050506040513d6020811015613a0557600080fd5b8101908080519060200190929190505050613a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6d72206275726e206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613acc57805160ff1916838001178555613afa565b82800160010185558215613afa579182015b82811115613af9578251825591602001919060010190613ade565b5b509050613b079190613b0b565b5090565b613b2d91905b80821115613b29576000816000905550600101613b11565b5090565b9056fe726174696f547970652063616e6e6f7420626520526174696f547970652e496e66737461746963206d657461646174612063616e6e6f74206265206368616e67656463616e6e6f742074616b65206d6f7265207468616e2063757272656e745374616b656f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7763616e6e6f74206275726e206d6f7265207468616e2063757272656e745374616b656d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72726174696f547970652063616e6e6f7420626520526174696f547970652e4e614ea265627a7a7230582081339156344ab7a116f94fe356eb98a1070ac57c2963485ddd6589b77f506fe164736f6c634300050a0032", - "sourceMap": "658:4349:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;658:4349:2;;;;;;;", - "deployedSourceMap": "658:4349:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;658:4349:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2959:464;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2959:464:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2959:464:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2959:464:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2959:464:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2959:464:2;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;494:232:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1077:87:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1790:300:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1790:300:2;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1790:300:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1790:300:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1790:300:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1790:300:2;;;;;;;;;;;;;;;:::i;:::-;;4252:241;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4252:241:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;878:882;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;878:882:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;878:882:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;878:882:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;878:882:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;878:882:2;;;;;;;;;;;;;;;:::i;:::-;;1467:139:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1467:139:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3825:421:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3825:421:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2032:720:27;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2032:720:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2758:743;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2758:743:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3429:390:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;319:99:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1250:115:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1250:115:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4743:122:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4743:122:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4871:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4871:134:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1772:231:27;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1772:231:27;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;525:194:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;711:199:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3954:109:33;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3954:109:33;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4499:215:2;;;:::i;:::-;;1371:90:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2525:428:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2525:428:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;831:321:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;632:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2096:423:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2096:423:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1298:213:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1145:99:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;732:111:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;732:111:34;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2959:464:2;3047:12;3106:26;3121:10;3106:14;:26::i;:::-;:67;;;;3136:37;3162:10;3136:25;:37::i;:::-;3106:67;3098:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:18;:16;:18::i;:::-;3275:19;3267:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:56;3376:4;3382:5;:12;;;;;;;;;;;;3396:10;3408:7;3360:15;:56::i;:::-;3353:63;;2959:464;;;;;:::o;494:232:34:-;537:15;676:8;;;;;;;;;;;667:37;;;713:4;667:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:52:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;667:52:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;667:52:34;;;;;;;;;;;;;;;;657:62;;494:232;:::o;1077:87:23:-;1118:13;1151:6;;;;;;;;;;;1143:14;;1077:87;:::o;1790:300:2:-;1902:20;1911:10;1902:8;:20::i;:::-;:61;;;;1926:37;1952:10;1926:25;:37::i;:::-;1902:61;1894:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2036:47;2066:16;2036:29;:47::i;:::-;1790:300;:::o;4252:241::-;4348:37;4374:10;4348:25;:37::i;:::-;4340:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4450:36;4477:8;4450:26;:36::i;:::-;4252:241;:::o;878:882::-;200:10:34;189:8;;:21;;;;;;;;;;;;;;;;;;300:15;360:7;348:20;336:32;;399:1;387:8;:13;;;379:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1221:6:2;1206:5;:12;;;:21;;;;;;;;;;;;;;;;;;1258:12;1237:5;:18;;;:33;;;;;;;;;;;;;;;;;;1329:1;1309:22;;:8;:22;;;1305:126;;1347:31;1369:8;1347:21;:31::i;:::-;1392:28;:26;:28::i;:::-;1305:126;1479:24;1497:5;1479:17;:24::i;:::-;1544:44;1563:6;1571:5;1578:9;1544:18;:44::i;:::-;1631:37;1652:15;1631:20;:37::i;:::-;1710:43;1738:14;1710:27;:43::i;:::-;878:882;;;;;;;;;:::o;1467:139:30:-;1530:7;1557:18;1568:6;1557:10;:18::i;:::-;:41;;;;;1579:19;:17;:19::i;:::-;1557:41;1549:50;;1467:139;;;:::o;3825:421:2:-;3883:14;3944:20;3953:10;3944:8;:20::i;:::-;:61;;;;3968:37;3994:10;3968:25;:37::i;:::-;3944:61;3936:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4097:26;:24;:26::i;:::-;4089:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4192:47;4215:5;:12;;;;;;;;;;;;4229:9;4192:22;:47::i;:::-;4183:56;;3825:421;;;:::o;2032:720:27:-;2125:12;2375:14;2362:27;;;;;;;;:9;:27;;;;;;;;;2358:73;;;2410:21;2425:5;2410:10;:14;;:21;;;;:::i;:::-;2403:28;;;;2358:73;2458:14;2445:27;;;;;;;;:9;:27;;;;;;;;;2441:73;;;2493:21;2508:5;2493:10;:14;;:21;;;;:::i;:::-;2486:28;;;;2441:73;2541:14;2528:27;;;;;;;;:9;:27;;;;;;;;;2524:62;;;2576:10;2569:17;;;;2524:62;2613:13;2600:26;;;;;;;;:9;:26;;;;;;;;;2596:52;;;2647:1;2640:8;;;;2596:52;2675:13;2662:26;;;;;;;;:9;:26;;;;;;;;;2658:87;;;2702:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2658:87;2032:720;;;;;;:::o;2758:743::-;2851:18;3107:14;3094:27;;;;;;;;:9;:27;;;;;;;;;3090:67;;;3142:15;3151:5;3142:4;:8;;:15;;;;:::i;:::-;3135:22;;;;3090:67;3184:14;3171:27;;;;;;;;:9;:27;;;;;;;;;3167:67;;;3219:15;3228:5;3219:4;:8;;:15;;;;:::i;:::-;3212:22;;;;3167:67;3261:14;3248:27;;;;;;;;:9;:27;;;;;;;;;3244:56;;;3296:4;3289:11;;;;3244:56;3327:13;3314:26;;;;;;;;:9;:26;;;;;;;;;3310:87;;;3354:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3310:87;3424:13;3411:26;;;;;;;;:9;:26;;;;;;;;;3407:87;;;3451:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3407:87;2758:743;;;;;;:::o;3429:390:2:-;3471:16;3534:20;3543:10;3534:8;:20::i;:::-;:61;;;;3558:37;3584:10;3558:25;:37::i;:::-;3534:61;3526:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3719:1;3693:22;:20;:22::i;:::-;:27;3685:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:18;:16;:18::i;:::-;3783:29;;3429:390;:::o;319:99:25:-;363:16;402:9;;391:20;;319:99;:::o;1250:115:30:-;1307:7;1344:13;:11;:13::i;:::-;1334:23;;:6;:23;;;1326:32;;1250:115;;;:::o;4743:122:2:-;4798:13;4845:5;:12;;;;;;;;;;;;4835:22;;:6;:22;;;4823:35;;4743:122;;;:::o;4871:134::-;4932:13;4979:5;:18;;;;;;;;;;;;4969:28;;:6;:28;;;4957:41;;4871:134;;;:::o;1772:231:27:-;1827:13;1842:19;1920:11;:19;1932:6;1920:19;;;;;;;;;;;;;;;:25;;;1912:33;;1967:11;:19;1979:6;1967:19;;;;;;;;;;;;;;;:29;;;;;;;;;;;;1955:41;;1772:231;;;:::o;525:194:25:-;573:11;613:1;600:9;;:14;596:117;;;639:5;630:14;;596:117;;;692:9;;685:3;:16;;675:27;;596:117;525:194;:::o;711:199:28:-;755:27;784:29;842:15;825:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;886:17;867:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:199;;:::o;3954:109:33:-;4009:13;4042:6;:14;4049:6;4042:14;;;;;;;;;;;;;;;;4034:22;;3954:109;;;:::o;4499:215:2:-;4578:37;4604:10;4578:25;:37::i;:::-;4570:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4680:27;:25;:27::i;:::-;4499:215::o;1371:90:30:-;1421:7;1447;;;;;;;;;;;1440:14;;1371:90;:::o;2525:428:2:-;2636:26;2651:10;2636:14;:26::i;:::-;:67;;;;2666:37;2692:10;2666:25;:37::i;:::-;2636:67;2628:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2806:18;:16;:18::i;:::-;2805:19;2797:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2876:70;2894:5;:12;;;;;;;;;;;;2908:10;2920:12;2934:11;2876:17;:70::i;:::-;2525:428;;:::o;831:321:24:-;870:11;1007:1;996:7;;:12;:43;;;;1038:1;1012:22;:20;:22::i;:::-;:27;996:43;992:154;;;1064:5;1055:14;;992:154;;;1109:26;:24;:26::i;:::-;1100:35;;992:154;831:321;:::o;632:91::-;674:14;709:7;;700:16;;632:91;:::o;2096:423:2:-;2214:20;2223:10;2214:8;:20::i;:::-;:61;;;;2238:37;2264:10;2238:25;:37::i;:::-;2214:61;2206:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2372:18;:16;:18::i;:::-;2371:19;2363:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:70;2460:5;:12;;;;;;;;;;;;2474:10;2486:12;2500:11;2442:17;:70::i;:::-;2096:423;;:::o;1298:213:24:-;1344:12;1379:22;:20;:22::i;:::-;1372:3;:29;1368:137;;1424:1;1417:8;;1368:137;;;1463:31;1490:3;1463:22;:20;:22::i;:::-;:26;;:31;;;;:::i;:::-;1456:38;;1368:137;1298:213;:::o;1145:99:30:-;1189:16;1228:9;;;;;;;;;;;1217:20;;1145:99;:::o;732:111:34:-;788:7;823:12;:10;:12::i;:::-;813:22;;:6;:22;;;807:29;;732:111;;;:::o;767:976:27:-;877:12;939:1;909:32;;:18;:16;:18::i;:::-;:32;;;;901:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1009:13;1025:11;:19;1037:6;1025:19;;;;;;;;;;;;;;;:25;;;1009:41;;1060:19;1082:11;:19;1094:6;1082:19;;;;;;;;;;;;;;;:29;;;;;;;;;;;;1060:51;;1143:13;1130:26;;;;;;;;:9;:26;;;;;;;;;;1122:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:37;1310:5;1317:10;1329:9;1302:7;:37::i;:::-;1295:44;;1403:33;1421:8;1431:4;1403:17;:33::i;:::-;1481:20;1504:24;1521:6;1504:16;:24::i;:::-;1481:47;;1594:52;1613:6;1621:12;1635:10;1594:18;:52::i;:::-;1684;1692:8;1702:6;1710:10;1722:4;1728:7;1684:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1684:52:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;767:976;;;;;;;;;:::o;507:175:28:-;607:16;587:17;:36;;;;;;;;;;;;:::i;:::-;;638:37;658:16;638:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;638:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:175;:::o;413:93:30:-;477:22;490:8;477:12;:22::i;:::-;413:93;:::o;192:215::-;272:8;259:21;;:9;;;;;;;;;;;:21;;;;251:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:8;319:9;;:20;;;;;;;;;;;;;;;;;;354:46;370:8;380:19;:17;:19::i;:::-;354:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:215;:::o;735:188::-;792:19;:17;:19::i;:::-;791:20;783:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;855:7;;:14;;;;;;;;;;;;;;;;;;884:32;900:9;;;;;;;;;;;911:4;884:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:188::o;730:160:33:-;806:24;824:5;806:17;:24::i;:::-;868:15;877:5;868:15;;;;;;;;;;;;;;;;;;;;;;730:160;:::o;477:284:27:-;626:5;598:11;:19;610:6;598:19;;;;;;;;;;;;;;;:25;;:33;;;;673:9;641:11;:19;653:6;641:19;;;;;;;;;;;;;;;:29;;;:41;;;;;;;;;;;;;;;;;;;;;;;;720:34;729:6;737:5;744:9;720:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:284;;;:::o;299:110:24:-;364:6;354:7;:16;;;;385:17;395:6;385:17;;;;;;;;;;;;;;;;;;299:110;:::o;255:246:28:-;365:1;339:15;:22;;;;;;;;;;;;;;;;:27;331:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;414:15;:32;;;;;;;;;;;;:::i;:::-;;461:33;479:14;461:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;461:33:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;255:246;:::o;2601:261:33:-;2693:13;658:1;628:32;;:18;:16;:18::i;:::-;:32;;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2760:6;:14;2767:6;2760:14;;;;;;;;;;;;;;;;2752:22;;2812:43;2823:6;2831:9;2842:5;2849;2812:10;:43::i;:::-;2601:261;;;;:::o;232:458:19:-;290:7;535:1;530;:6;526:45;;;559:1;552:8;;;;526:45;581:9;597:1;593;:5;581:17;;625:1;620;616;:5;;;;;;:10;608:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:1;675:8;;;232:458;;;;;:::o;820:326::-;878:7;975:1;971;:5;963:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1017:9;1033:1;1029;:5;;;;;;1017:17;;1138:1;1131:8;;;820:326;;;;:::o;415:188:24:-;451:16;498:1;487:7;;:12;;479:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;539:16;551:3;539:7;;:11;;:16;;;;:::i;:::-;528:27;;565:31;587:8;565:21;:31::i;:::-;415:188;:::o;512:217:30:-;567:19;:17;:19::i;:::-;559:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;646:1;626:9;;:22;;;;;;;;;;;;;;;;;;668:5;658:7;;:15;;;;;;;;;;;;;;;;;;688:34;712:1;716:5;688:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;512:217::o;896:773:33:-;658:1;628:32;;:18;:16;:18::i;:::-;:32;;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1112:6;:14;1119:6;1112:14;;;;;;;;;;;;;;;;1096:12;:30;1088:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1228:1;1214:11;:15;1206:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1298:16;1317:29;1334:11;1317:12;:16;;:29;;;;:::i;:::-;1298:48;;1410:8;1393:6;:14;1400:6;1393:14;;;;;;;;;;;;;;;:25;;;;1481:18;:16;:18::i;:::-;1474:39;;;1514:6;1530:4;1537:11;1474:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1474:75:33;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1474:75:33;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1474:75:33;;;;;;;;;;;;;;;;1466:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1613:49;1624:6;1632;1640:11;1653:8;1613:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:1;896:773;;;;:::o;1279:179:19:-;1337:7;1369:1;1364;:6;;1356:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1415:9;1431:1;1427;:5;1415:17;;1450:1;1443:8;;;1279:179;;;;:::o;924:147:23:-;1004:6;;;;;;;;;;;999:28;;;1028:4;1034:5;999:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:41:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;999:41:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;999:41:23;;;;;;;;;;;;;;;;991:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:147;;:::o;2868:820:33:-;658:1;628:32;;:18;:16;:18::i;:::-;:32;;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3070:6;:14;3077:6;3070:14;;;;;;;;;;;;;;;;3054:12;:30;3046:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3188:1;3173:12;:16;3165:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3308:12;3292;:28;;3284:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3408:16;3427:30;3444:12;3427;:16;;:30;;;;:::i;:::-;3408:49;;3521:8;3504:6;:14;3511:6;3504:14;;;;;;;;;;;;;;;:25;;;;3573:27;3587:12;3573:13;:27::i;:::-;3638:43;3650:6;3658:12;3672:8;3638:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:1;2868:820;;;:::o;348:97:23:-;433:5;424:6;;:14;;;;;;;;;;;;;;;;;;348:97;:::o;1675:920:33:-;658:1;628:32;;:18;:16;:18::i;:::-;:32;;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:6;:14;1903:6;1896:14;;;;;;;;;;;;;;;;1880:12;:30;1872:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2014:1;1999:12;:16;1991:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2134:12;2118;:28;;2110:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2234:16;2253:30;2270:12;2253;:16;;:30;;;;:::i;:::-;2234:49;;2347:8;2330:6;:14;2337:6;2330:14;;;;;;;;;;;;;;;:25;;;;2418:18;:16;:18::i;:::-;2411:35;;;2447:9;2458:12;2411:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2411:60:33;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2411:60:33;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2411:60:33;;;;;;;;;;;;;;;;2403:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2535:53;2546:6;2554:9;2565:12;2579:8;2535:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:1;1675:920;;;;:::o;1541:176:19:-;1599:7;1618:9;1634:1;1630;:5;1618:17;;1658:1;1653;:6;;1645:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1709:1;1702:8;;;1541:176;;;;:::o;168:122:25:-;239:8;227:9;:20;;;;262:21;274:8;262:21;;;;;;;;;;;;;;;;;;168:122;:::o;568:108:23:-;630:6;;;;;;;;;;;625:17;;;643:5;625:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;625:24:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;625:24:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;625:24:23;;;;;;;;;;;;;;;;617:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;568:108;:::o;658:4349:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../helpers/openzeppelin-solidity/math/SafeMath.sol\";\nimport \"../helpers/openzeppelin-solidity/token/ERC20/IERC20.sol\";\nimport \"../modules/Countdown.sol\";\nimport \"../modules/Griefing.sol\";\nimport \"../modules/Metadata.sol\";\nimport \"../modules/Operated.sol\";\nimport \"../modules/Template.sol\";\n\n/* Immediately engage with specific buyer\n * - Stake can be increased at any time.\n * - Request to end agreement and recover stake requires cooldown period to complete.\n * - Counterparty can greif the staker at predefined ratio.\n *\n * NOTE:\n * - This top level contract should only perform access control and state transitions\n *\n */\ncontract OneWayGriefing is Countdown, Griefing, Metadata, Operated, Template {\n\n using SafeMath for uint256;\n\n Data private _data;\n struct Data {\n address staker;\n address counterparty;\n }\n\n function initialize(\n address token,\n address operator,\n address staker,\n address counterparty,\n uint256 ratio,\n Griefing.RatioType ratioType,\n uint256 countdownLength,\n bytes memory staticMetadata\n ) public initializeTemplate() {\n // set storage values\n _data.staker = staker;\n _data.counterparty = counterparty;\n\n // set operator\n if (operator != address(0)) {\n Operated._setOperator(operator);\n Operated._activateOperator();\n }\n\n // set token used for staking\n Staking._setToken(token);\n\n // set griefing ratio\n Griefing._setRatio(staker, ratio, ratioType);\n\n // set countdown length\n Countdown._setLength(countdownLength);\n\n // set static metadata\n Metadata._setStaticMetadata(staticMetadata);\n }\n\n // state functions\n\n function setVariableMetadata(bytes memory variableMetadata) public {\n // restrict access\n require(isStaker(msg.sender) || Operated.isActiveOperator(msg.sender), \"only staker or active operator\");\n\n // update metadata\n Metadata._setVariableMetadata(variableMetadata);\n }\n\n function increaseStake(uint256 currentStake, uint256 amountToAdd) public {\n // restrict access\n require(isStaker(msg.sender) || Operated.isActiveOperator(msg.sender), \"only staker or active operator\");\n\n // require agreement is not ended\n require(!Countdown.isOver(), \"agreement ended\");\n\n // add stake\n Staking._addStake(_data.staker, msg.sender, currentStake, amountToAdd);\n }\n\n function reward(uint256 currentStake, uint256 amountToAdd) public {\n // restrict access\n require(isCounterparty(msg.sender) || Operated.isActiveOperator(msg.sender), \"only counterparty or active operator\");\n\n // require agreement is not ended\n require(!Countdown.isOver(), \"agreement ended\");\n\n // add stake\n Staking._addStake(_data.staker, msg.sender, currentStake, amountToAdd);\n }\n\n function punish(address from, uint256 punishment, bytes memory message) public returns (uint256 cost) {\n // restrict access\n require(isCounterparty(msg.sender) || Operated.isActiveOperator(msg.sender), \"only counterparty or active operator\");\n\n // require agreement is not ended\n require(!Countdown.isOver(), \"agreement ended\");\n\n // execute griefing\n cost = Griefing._grief(from, _data.staker, punishment, message);\n }\n\n function startCountdown() public returns (uint256 deadline) {\n // restrict access\n require(isStaker(msg.sender) || Operated.isActiveOperator(msg.sender), \"only staker or active operator\");\n\n // require countdown is not started\n require(Deadline.getDeadline() == 0, \"deadline already set\");\n\n // start countdown\n deadline = Countdown._start();\n }\n\n function retrieveStake(address recipient) public returns (uint256 amount) {\n // restrict access\n require(isStaker(msg.sender) || Operated.isActiveOperator(msg.sender), \"only staker or active operator\");\n\n // require deadline is passed\n require(Deadline.isAfterDeadline(),\"deadline not passed\");\n\n // retrieve stake\n amount = Staking._takeFullStake(_data.staker, recipient);\n }\n\n function transferOperator(address operator) public {\n // restrict access\n require(Operated.isActiveOperator(msg.sender), \"only active operator\");\n\n // transfer operator\n Operated._transferOperator(operator);\n }\n\n function renouceOperator() public {\n // restrict access\n require(Operated.isActiveOperator(msg.sender), \"only active operator\");\n\n // transfer operator\n Operated._renouceOperator();\n }\n\n // view functions\n\n function isStaker(address caller) public view returns (bool validity) {\n validity = (caller == _data.staker);\n }\n\n function isCounterparty(address caller) public view returns (bool validity) {\n validity = (caller == _data.counterparty);\n }\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing.sol", - "exportedSymbols": { - "OneWayGriefing": [ - 2006 - ] - }, - "id": 2007, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1603, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/openzeppelin-solidity/math/SafeMath.sol", - "file": "../helpers/openzeppelin-solidity/math/SafeMath.sol", - "id": 1604, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 4967, - "src": "25:60:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/openzeppelin-solidity/token/ERC20/IERC20.sol", - "file": "../helpers/openzeppelin-solidity/token/ERC20/IERC20.sol", - "id": 1605, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 5535, - "src": "86:65:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Countdown.sol", - "file": "../modules/Countdown.sol", - "id": 1606, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 5717, - "src": "152:34:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Griefing.sol", - "file": "../modules/Griefing.sol", - "id": 1607, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6346, - "src": "187:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 1608, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6413, - "src": "221:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 1609, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6630, - "src": "255:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 1610, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 7681, - "src": "289:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1611, - "name": "Countdown", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5716, - "src": "685:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Countdown_$5716", - "typeString": "contract Countdown" - } - }, - "id": 1612, - "nodeType": "InheritanceSpecifier", - "src": "685:9:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1613, - "name": "Griefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6345, - "src": "696:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Griefing_$6345", - "typeString": "contract Griefing" - } - }, - "id": 1614, - "nodeType": "InheritanceSpecifier", - "src": "696:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1615, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "706:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 1616, - "nodeType": "InheritanceSpecifier", - "src": "706:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1617, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "716:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 1618, - "nodeType": "InheritanceSpecifier", - "src": "716:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1619, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "726:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 1620, - "nodeType": "InheritanceSpecifier", - "src": "726:8:2" - } - ], - "contractDependencies": [ - 5595, - 5716, - 5772, - 6345, - 6412, - 6629, - 7621, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2006, - "linearizedBaseContracts": [ - 2006, - 7680, - 6629, - 6412, - 6345, - 7621, - 5595, - 5716, - 5772 - ], - "name": "OneWayGriefing", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1623, - "libraryName": { - "contractScope": null, - "id": 1621, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4966, - "src": "748:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4966", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "742:27:2", - "typeName": { - "id": 1622, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "761:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1625, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2006, - "src": "775:18:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data" - }, - "typeName": { - "contractScope": null, - "id": 1624, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1630, - "src": "775:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage_ptr", - "typeString": "struct OneWayGriefing.Data" - } - }, - "value": null, - "visibility": "private" - }, - { - "canonicalName": "OneWayGriefing.Data", - "id": 1630, - "members": [ - { - "constant": false, - "id": 1627, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 1630, - "src": "821:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "821:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1629, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 1630, - "src": "845:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "845:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Data", - "nodeType": "StructDefinition", - "scope": 2006, - "src": "799:73:2", - "visibility": "public" - }, - { - "body": { - "id": 1707, - "nodeType": "Block", - "src": "1166:594:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "1206:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1653, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "1206:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "1221:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1206:21:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1656, - "nodeType": "ExpressionStatement", - "src": "1206:21:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1657, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "1237:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "counterparty", - "nodeType": "MemberAccess", - "referencedDeclaration": 1629, - "src": "1237:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1660, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "1258:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1237:33:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1662, - "nodeType": "ExpressionStatement", - "src": "1237:33:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1663, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "1309:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1329:1:2", - "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": 1664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1321:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1321:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1309:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1680, - "nodeType": "IfStatement", - "src": "1305:126:2", - "trueBody": { - "id": 1679, - "nodeType": "Block", - "src": "1333:98:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1671, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "1369:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1668, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1347:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "1347:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1347:31:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "1347:31:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1674, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1392:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "1392:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1392:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "1392:28:2" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "1497:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1681, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "1479:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7363, - "src": "1479:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1479:24:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "ExpressionStatement", - "src": "1479:24:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1690, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "1563:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1691, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "1571:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1692, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "1578:9:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - ], - "expression": { - "argumentTypes": null, - "id": 1687, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "1544:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 1689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setRatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 6123, - "src": "1544:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$returns$__$", - "typeString": "function (address,uint256,enum Griefing.RatioType)" - } - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1544:44:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1694, - "nodeType": "ExpressionStatement", - "src": "1544:44:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "1652:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1695, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "1631:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 5624, - "src": "1631:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1631:37:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1700, - "nodeType": "ExpressionStatement", - "src": "1631:37:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1704, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "1738:14:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1701, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1710:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 1703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "1710:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 1705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:43:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1706, - "nodeType": "ExpressionStatement", - "src": "1710:43:2" - } - ] - }, - "documentation": null, - "id": 1708, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 1649, - "modifierName": { - "argumentTypes": null, - "id": 1648, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "1145:18:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1145:20:2" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1632, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "907:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1631, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "907:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1634, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "930:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1633, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "930:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1636, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "956:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1635, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "956:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1638, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "980:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "980:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1640, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1010:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1639, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1010:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1642, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1033:28:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 1641, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1033:18:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1644, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1071:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1071:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1646, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1104:27:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1645, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1104:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "897:240:2" - }, - "returnParameters": { - "id": 1650, - "nodeType": "ParameterList", - "parameters": [], - "src": "1166:0:2" - }, - "scope": 2006, - "src": "878:882:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1733, - "nodeType": "Block", - "src": "1857:233:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1715, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1911:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1911:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1714, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "1902:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1902:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1720, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1952:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1952:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1718, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1926:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1926:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1926:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1902:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1965:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1713, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1894:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1894:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1726, - "nodeType": "ExpressionStatement", - "src": "1894:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1730, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "2066:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1727, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "2036:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "2036:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 1731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2036:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1732, - "nodeType": "ExpressionStatement", - "src": "2036:47:2" - } - ] - }, - "documentation": null, - "id": 1734, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1710, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 1734, - "src": "1819:29:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1709, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1819:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1818:31:2" - }, - "returnParameters": { - "id": 1712, - "nodeType": "ParameterList", - "parameters": [], - "src": "1857:0:2" - }, - "scope": 2006, - "src": "1790:300:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1774, - "nodeType": "Block", - "src": "2169:350:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1743, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2223:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2223:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1742, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "2214:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2214:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1748, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2264:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2264:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2238:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2238:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2238:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2214:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2277:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1741, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2206:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2206:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1754, - "nodeType": "ExpressionStatement", - "src": "2206:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2371:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1756, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "2372:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "2372:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2372:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2392:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1755, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2363:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2363:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "2363:47:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1766, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "2460:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "2460:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1768, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2474:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2474:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "currentStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "2486:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1771, - "name": "amountToAdd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "2500:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1763, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "2442:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_addStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7429, - "src": "2442:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2442:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1773, - "nodeType": "ExpressionStatement", - "src": "2442:70:2" - } - ] - }, - "documentation": null, - "id": 1775, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1739, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1736, - "name": "currentStake", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "2119:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1735, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2119:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1738, - "name": "amountToAdd", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "2141:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2141:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2118:43:2" - }, - "returnParameters": { - "id": 1740, - "nodeType": "ParameterList", - "parameters": [], - "src": "2169:0:2" - }, - "scope": 2006, - "src": "2096:423:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1815, - "nodeType": "Block", - "src": "2591:362:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1784, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2651:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2651:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1783, - "name": "isCounterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2005, - "src": "2636:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2636:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1789, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2692:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2692:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1787, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2666:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2666:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2636:67:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72", - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2705:38:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - }, - "value": "only counterparty or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - } - ], - "id": 1782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2628:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1795, - "nodeType": "ExpressionStatement", - "src": "2628:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2805:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1797, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "2806:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "2806:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2806:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2826:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1796, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2797:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2797:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1803, - "nodeType": "ExpressionStatement", - "src": "2797:47:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1807, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "2894:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1808, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "2894:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1809, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2908:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2908:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1811, - "name": "currentStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1777, - "src": "2920:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1812, - "name": "amountToAdd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "2934:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1804, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "2876:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_addStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7429, - "src": "2876:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 1813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2876:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1814, - "nodeType": "ExpressionStatement", - "src": "2876:70:2" - } - ] - }, - "documentation": null, - "id": 1816, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1777, - "name": "currentStake", - "nodeType": "VariableDeclaration", - "scope": 1816, - "src": "2541:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1776, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1779, - "name": "amountToAdd", - "nodeType": "VariableDeclaration", - "scope": 1816, - "src": "2563:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1778, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2563:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2540:43:2" - }, - "returnParameters": { - "id": 1781, - "nodeType": "ParameterList", - "parameters": [], - "src": "2591:0:2" - }, - "scope": 2006, - "src": "2525:428:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1860, - "nodeType": "Block", - "src": "3061:362:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1829, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3121:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3121:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1828, - "name": "isCounterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2005, - "src": "3106:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3106:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1834, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3162:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3162:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1832, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3136:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3136:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3136:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3106:67:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72", - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3175:38:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - }, - "value": "only counterparty or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - } - ], - "id": 1827, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3098:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3098:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1840, - "nodeType": "ExpressionStatement", - "src": "3098:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3275:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1842, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "3276:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "3276:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3276:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3296:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1841, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3267:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3267:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1848, - "nodeType": "ExpressionStatement", - "src": "3267:47:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1849, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "3353:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1818, - "src": "3376:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1853, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "3382:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1854, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "3382:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1855, - "name": "punishment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "3396:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1856, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "3408:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1850, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "3360:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 1851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_grief", - "nodeType": "MemberAccess", - "referencedDeclaration": 6208, - "src": "3360:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,address,uint256,bytes memory) returns (uint256)" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3360:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3353:63:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1859, - "nodeType": "ExpressionStatement", - "src": "3353:63:2" - } - ] - }, - "documentation": null, - "id": 1861, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "punish", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1818, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "2975:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1817, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2975:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1820, - "name": "punishment", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "2989:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2989:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1822, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "3009:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1821, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3009:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2974:56:2" - }, - "returnParameters": { - "id": 1826, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1825, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "3047:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3047:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3046:14:2" - }, - "scope": 2006, - "src": "2959:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1895, - "nodeType": "Block", - "src": "3489:330:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3543:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3543:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1867, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "3534:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3534:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1873, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3584:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3584:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1871, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3558:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3558:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3558:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3534:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3597:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1866, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3526:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3526:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1879, - "nodeType": "ExpressionStatement", - "src": "3526:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1881, - "name": "Deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5772, - "src": "3693:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Deadline_$5772_$", - "typeString": "type(contract Deadline)" - } - }, - "id": 1882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 5748, - "src": "3693:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3693:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3719:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3693:27:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "646561646c696e6520616c726561647920736574", - "id": 1886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3722:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e251cf37b2e12fd04de90f35751eea0b9792a1611eb1f01a4e79fb7f6797acc6", - "typeString": "literal_string \"deadline already set\"" - }, - "value": "deadline already set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e251cf37b2e12fd04de90f35751eea0b9792a1611eb1f01a4e79fb7f6797acc6", - "typeString": "literal_string \"deadline already set\"" - } - ], - "id": 1880, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3685:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3685:60:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1888, - "nodeType": "ExpressionStatement", - "src": "3685:60:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1889, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1864, - "src": "3783:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "3794:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_start", - "nodeType": "MemberAccess", - "referencedDeclaration": 5650, - "src": "3794:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 1892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3794:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3783:29:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1894, - "nodeType": "ExpressionStatement", - "src": "3783:29:2" - } - ] - }, - "documentation": null, - "id": 1896, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "startCountdown", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1862, - "nodeType": "ParameterList", - "parameters": [], - "src": "3452:2:2" - }, - "returnParameters": { - "id": 1865, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1864, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "3471:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3471:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3470:18:2" - }, - "scope": 2006, - "src": "3429:390:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "3899:347:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1905, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3953:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3953:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1904, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "3944:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3944:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3994:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3994:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1908, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3968:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3968:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3968:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3944:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4007:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3936:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3936:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1916, - "nodeType": "ExpressionStatement", - "src": "3936:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1918, - "name": "Deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5772, - "src": "4097:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Deadline_$5772_$", - "typeString": "type(contract Deadline)" - } - }, - "id": 1919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isAfterDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 5771, - "src": "4097:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4097:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "646561646c696e65206e6f7420706173736564", - "id": 1921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4124:21:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0e3c3ed466b4494ab1c7e64434ab6a1a9840cdcc664320d0be16ffd1314382b5", - "typeString": "literal_string \"deadline not passed\"" - }, - "value": "deadline not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0e3c3ed466b4494ab1c7e64434ab6a1a9840cdcc664320d0be16ffd1314382b5", - "typeString": "literal_string \"deadline not passed\"" - } - ], - "id": 1917, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4089:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4089:57:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1923, - "nodeType": "ExpressionStatement", - "src": "4089:57:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1924, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "4183:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1927, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4215:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "4215:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1929, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "4229:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1925, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "4192:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_takeFullStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7524, - "src": "4192:22:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) returns (uint256)" - } - }, - "id": 1930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4192:47:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4183:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "4183:56:2" - } - ] - }, - "documentation": null, - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "retrieveStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1898, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "3848:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3847:19:2" - }, - "returnParameters": { - "id": 1902, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1901, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "3883:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3883:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3882:16:2" - }, - "scope": 2006, - "src": "3825:421:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1954, - "nodeType": "Block", - "src": "4303:190:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1942, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "4374:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4374:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1940, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4348:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "4348:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4348:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72", - "id": 1945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4387:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - }, - "value": "only active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - } - ], - "id": 1939, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4340:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4340:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1947, - "nodeType": "ExpressionStatement", - "src": "4340:70:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1951, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4477:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1948, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4450:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6514, - "src": "4450:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4450:36:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1953, - "nodeType": "ExpressionStatement", - "src": "4450:36:2" - } - ] - }, - "documentation": null, - "id": 1955, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferOperator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 1955, - "src": "4278:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4277:18:2" - }, - "returnParameters": { - "id": 1938, - "nodeType": "ParameterList", - "parameters": [], - "src": "4303:0:2" - }, - "scope": 2006, - "src": "4252:241:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1972, - "nodeType": "Block", - "src": "4533:181:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1961, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "4604:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4604:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1959, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4578:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "4578:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4578:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72", - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4617:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - }, - "value": "only active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - } - ], - "id": 1958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4570:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4570:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1966, - "nodeType": "ExpressionStatement", - "src": "4570:70:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1967, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4680:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_renouceOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6541, - "src": "4680:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4680:27:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1971, - "nodeType": "ExpressionStatement", - "src": "4680:27:2" - } - ] - }, - "documentation": null, - "id": 1973, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "renouceOperator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1956, - "nodeType": "ParameterList", - "parameters": [], - "src": "4523:2:2" - }, - "returnParameters": { - "id": 1957, - "nodeType": "ParameterList", - "parameters": [], - "src": "4533:0:2" - }, - "scope": 2006, - "src": "4499:215:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1988, - "nodeType": "Block", - "src": "4813:52:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1980, - "name": "validity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "4823:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1981, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1975, - "src": "4835:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1982, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4845:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "4845:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4835:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1985, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4834:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4823:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1987, - "nodeType": "ExpressionStatement", - "src": "4823:35:2" - } - ] - }, - "documentation": null, - "id": 1989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isStaker", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1975, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "4761:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1974, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:16:2" - }, - "returnParameters": { - "id": 1979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1978, - "name": "validity", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "4798:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1977, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4798:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4797:15:2" - }, - "scope": 2006, - "src": "4743:122:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2004, - "nodeType": "Block", - "src": "4947:58:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1996, - "name": "validity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "4957:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1997, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1991, - "src": "4969:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1998, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4979:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "counterparty", - "nodeType": "MemberAccess", - "referencedDeclaration": 1629, - "src": "4979:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4969:28:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 2001, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4968:30:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4957:41:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2003, - "nodeType": "ExpressionStatement", - "src": "4957:41:2" - } - ] - }, - "documentation": null, - "id": 2005, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCounterparty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1991, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 2005, - "src": "4895:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4895:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4894:16:2" - }, - "returnParameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1994, - "name": "validity", - "nodeType": "VariableDeclaration", - "scope": 2005, - "src": "4932:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1993, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4932:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4931:15:2" - }, - "scope": 2006, - "src": "4871:134:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2007, - "src": "658:4349:2" - } - ], - "src": "0:5008:2" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing.sol", - "exportedSymbols": { - "OneWayGriefing": [ - 2006 - ] - }, - "id": 2007, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1603, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/openzeppelin-solidity/math/SafeMath.sol", - "file": "../helpers/openzeppelin-solidity/math/SafeMath.sol", - "id": 1604, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 4967, - "src": "25:60:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/helpers/openzeppelin-solidity/token/ERC20/IERC20.sol", - "file": "../helpers/openzeppelin-solidity/token/ERC20/IERC20.sol", - "id": 1605, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 5535, - "src": "86:65:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Countdown.sol", - "file": "../modules/Countdown.sol", - "id": 1606, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 5717, - "src": "152:34:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Griefing.sol", - "file": "../modules/Griefing.sol", - "id": 1607, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6346, - "src": "187:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 1608, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6413, - "src": "221:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 1609, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 6630, - "src": "255:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 1610, - "nodeType": "ImportDirective", - "scope": 2007, - "sourceUnit": 7681, - "src": "289:33:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1611, - "name": "Countdown", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5716, - "src": "685:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Countdown_$5716", - "typeString": "contract Countdown" - } - }, - "id": 1612, - "nodeType": "InheritanceSpecifier", - "src": "685:9:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1613, - "name": "Griefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6345, - "src": "696:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Griefing_$6345", - "typeString": "contract Griefing" - } - }, - "id": 1614, - "nodeType": "InheritanceSpecifier", - "src": "696:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1615, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "706:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 1616, - "nodeType": "InheritanceSpecifier", - "src": "706:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1617, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "716:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 1618, - "nodeType": "InheritanceSpecifier", - "src": "716:8:2" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1619, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "726:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 1620, - "nodeType": "InheritanceSpecifier", - "src": "726:8:2" - } - ], - "contractDependencies": [ - 5595, - 5716, - 5772, - 6345, - 6412, - 6629, - 7621, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2006, - "linearizedBaseContracts": [ - 2006, - 7680, - 6629, - 6412, - 6345, - 7621, - 5595, - 5716, - 5772 - ], - "name": "OneWayGriefing", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1623, - "libraryName": { - "contractScope": null, - "id": 1621, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4966, - "src": "748:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$4966", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "742:27:2", - "typeName": { - "id": 1622, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "761:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1625, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2006, - "src": "775:18:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data" - }, - "typeName": { - "contractScope": null, - "id": 1624, - "name": "Data", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1630, - "src": "775:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage_ptr", - "typeString": "struct OneWayGriefing.Data" - } - }, - "value": null, - "visibility": "private" - }, - { - "canonicalName": "OneWayGriefing.Data", - "id": 1630, - "members": [ - { - "constant": false, - "id": 1627, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 1630, - "src": "821:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1626, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "821:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1629, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 1630, - "src": "845:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1628, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "845:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Data", - "nodeType": "StructDefinition", - "scope": 2006, - "src": "799:73:2", - "visibility": "public" - }, - { - "body": { - "id": 1707, - "nodeType": "Block", - "src": "1166:594:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "1206:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1653, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "1206:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "1221:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1206:21:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1656, - "nodeType": "ExpressionStatement", - "src": "1206:21:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1657, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "1237:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "counterparty", - "nodeType": "MemberAccess", - "referencedDeclaration": 1629, - "src": "1237:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1660, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "1258:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1237:33:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1662, - "nodeType": "ExpressionStatement", - "src": "1237:33:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1663, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "1309:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1329:1:2", - "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": 1664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1321:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1321:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1309:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1680, - "nodeType": "IfStatement", - "src": "1305:126:2", - "trueBody": { - "id": 1679, - "nodeType": "Block", - "src": "1333:98:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1671, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "1369:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1668, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1347:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "1347:21:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1347:31:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "1347:31:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1674, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1392:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "1392:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1392:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1678, - "nodeType": "ExpressionStatement", - "src": "1392:28:2" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "1497:5:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1681, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "1479:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7363, - "src": "1479:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1479:24:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1686, - "nodeType": "ExpressionStatement", - "src": "1479:24:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1690, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1636, - "src": "1563:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1691, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "1571:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1692, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "1578:9:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - ], - "expression": { - "argumentTypes": null, - "id": 1687, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "1544:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 1689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setRatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 6123, - "src": "1544:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$returns$__$", - "typeString": "function (address,uint256,enum Griefing.RatioType)" - } - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1544:44:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1694, - "nodeType": "ExpressionStatement", - "src": "1544:44:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "1652:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1695, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "1631:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 5624, - "src": "1631:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1631:37:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1700, - "nodeType": "ExpressionStatement", - "src": "1631:37:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1704, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1646, - "src": "1738:14:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1701, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1710:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 1703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "1710:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 1705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:43:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1706, - "nodeType": "ExpressionStatement", - "src": "1710:43:2" - } - ] - }, - "documentation": null, - "id": 1708, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 1649, - "modifierName": { - "argumentTypes": null, - "id": 1648, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "1145:18:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1145:20:2" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1632, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "907:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1631, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "907:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1634, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "930:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1633, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "930:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1636, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "956:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1635, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "956:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1638, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "980:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "980:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1640, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1010:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1639, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1010:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1642, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1033:28:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 1641, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1033:18:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1644, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1071:23:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1643, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1071:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1646, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 1708, - "src": "1104:27:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1645, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1104:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "897:240:2" - }, - "returnParameters": { - "id": 1650, - "nodeType": "ParameterList", - "parameters": [], - "src": "1166:0:2" - }, - "scope": 2006, - "src": "878:882:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1733, - "nodeType": "Block", - "src": "1857:233:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1715, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1911:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1911:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1714, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "1902:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1902:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1720, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1952:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1952:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1718, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1926:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1926:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1926:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1902:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1965:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1713, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1894:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1894:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1726, - "nodeType": "ExpressionStatement", - "src": "1894:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1730, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "2066:16:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1727, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "2036:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 1729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "2036:29:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 1731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2036:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1732, - "nodeType": "ExpressionStatement", - "src": "2036:47:2" - } - ] - }, - "documentation": null, - "id": 1734, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1710, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 1734, - "src": "1819:29:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1709, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1819:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1818:31:2" - }, - "returnParameters": { - "id": 1712, - "nodeType": "ParameterList", - "parameters": [], - "src": "1857:0:2" - }, - "scope": 2006, - "src": "1790:300:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1774, - "nodeType": "Block", - "src": "2169:350:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1743, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2223:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1744, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2223:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1742, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "2214:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2214:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1748, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2264:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2264:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2238:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2238:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2238:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2214:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2277:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1741, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2206:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2206:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1754, - "nodeType": "ExpressionStatement", - "src": "2206:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2371:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1756, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "2372:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1757, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "2372:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2372:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2392:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1755, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2363:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2363:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "2363:47:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1766, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "2460:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1767, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "2460:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1768, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2474:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2474:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "currentStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1736, - "src": "2486:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1771, - "name": "amountToAdd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1738, - "src": "2500:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1763, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "2442:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_addStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7429, - "src": "2442:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 1772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2442:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1773, - "nodeType": "ExpressionStatement", - "src": "2442:70:2" - } - ] - }, - "documentation": null, - "id": 1775, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1739, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1736, - "name": "currentStake", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "2119:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1735, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2119:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1738, - "name": "amountToAdd", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "2141:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2141:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2118:43:2" - }, - "returnParameters": { - "id": 1740, - "nodeType": "ParameterList", - "parameters": [], - "src": "2169:0:2" - }, - "scope": 2006, - "src": "2096:423:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1815, - "nodeType": "Block", - "src": "2591:362:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1784, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2651:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2651:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1783, - "name": "isCounterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2005, - "src": "2636:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2636:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1789, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2692:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2692:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1787, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "2666:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2666:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2636:67:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72", - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2705:38:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - }, - "value": "only counterparty or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - } - ], - "id": 1782, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2628:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1795, - "nodeType": "ExpressionStatement", - "src": "2628:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "2805:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1797, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "2806:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "2806:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2806:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2826:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1796, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "2797:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2797:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1803, - "nodeType": "ExpressionStatement", - "src": "2797:47:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1807, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "2894:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1808, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "2894:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1809, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "2908:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2908:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1811, - "name": "currentStake", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1777, - "src": "2920:12:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1812, - "name": "amountToAdd", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1779, - "src": "2934:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1804, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "2876:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_addStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7429, - "src": "2876:17:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 1813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2876:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1814, - "nodeType": "ExpressionStatement", - "src": "2876:70:2" - } - ] - }, - "documentation": null, - "id": 1816, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "reward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1780, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1777, - "name": "currentStake", - "nodeType": "VariableDeclaration", - "scope": 1816, - "src": "2541:20:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1776, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1779, - "name": "amountToAdd", - "nodeType": "VariableDeclaration", - "scope": 1816, - "src": "2563:19:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1778, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2563:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2540:43:2" - }, - "returnParameters": { - "id": 1781, - "nodeType": "ParameterList", - "parameters": [], - "src": "2591:0:2" - }, - "scope": 2006, - "src": "2525:428:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1860, - "nodeType": "Block", - "src": "3061:362:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1829, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3121:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3121:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1828, - "name": "isCounterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2005, - "src": "3106:14:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3106:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1834, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3162:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3162:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1832, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3136:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3136:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3136:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3106:67:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72", - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3175:38:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - }, - "value": "only counterparty or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_418ffde0ff166a20c7185ca38346db2037acaa9659120d42bbbd6e705bd4e095", - "typeString": "literal_string \"only counterparty or active operator\"" - } - ], - "id": 1827, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3098:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3098:116:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1840, - "nodeType": "ExpressionStatement", - "src": "3098:116:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3275:19:2", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1842, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "3276:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isOver", - "nodeType": "MemberAccess", - "referencedDeclaration": 5688, - "src": "3276:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3276:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61677265656d656e7420656e646564", - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3296:17:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - }, - "value": "agreement ended" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_98ea63126b3b0665726829f957297f446bab78082fc46e7f86e78dcfded86744", - "typeString": "literal_string \"agreement ended\"" - } - ], - "id": 1841, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3267:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3267:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1848, - "nodeType": "ExpressionStatement", - "src": "3267:47:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1849, - "name": "cost", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "3353:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1852, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1818, - "src": "3376:4:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1853, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "3382:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1854, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "3382:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1855, - "name": "punishment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1820, - "src": "3396:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1856, - "name": "message", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "3408:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1850, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "3360:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 1851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_grief", - "nodeType": "MemberAccess", - "referencedDeclaration": 6208, - "src": "3360:15:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,address,uint256,bytes memory) returns (uint256)" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3360:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3353:63:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1859, - "nodeType": "ExpressionStatement", - "src": "3353:63:2" - } - ] - }, - "documentation": null, - "id": 1861, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "punish", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1823, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1818, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "2975:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1817, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2975:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1820, - "name": "punishment", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "2989:18:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2989:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1822, - "name": "message", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "3009:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1821, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3009:5:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2974:56:2" - }, - "returnParameters": { - "id": 1826, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1825, - "name": "cost", - "nodeType": "VariableDeclaration", - "scope": 1861, - "src": "3047:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3047:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3046:14:2" - }, - "scope": 2006, - "src": "2959:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1895, - "nodeType": "Block", - "src": "3489:330:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3543:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3543:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1867, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "3534:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3534:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1873, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3584:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3584:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1871, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3558:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1872, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3558:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3558:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3534:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3597:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1866, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3526:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3526:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1879, - "nodeType": "ExpressionStatement", - "src": "3526:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1881, - "name": "Deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5772, - "src": "3693:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Deadline_$5772_$", - "typeString": "type(contract Deadline)" - } - }, - "id": 1882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 5748, - "src": "3693:20:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 1883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3693:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3719:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3693:27:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "646561646c696e6520616c726561647920736574", - "id": 1886, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3722:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e251cf37b2e12fd04de90f35751eea0b9792a1611eb1f01a4e79fb7f6797acc6", - "typeString": "literal_string \"deadline already set\"" - }, - "value": "deadline already set" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e251cf37b2e12fd04de90f35751eea0b9792a1611eb1f01a4e79fb7f6797acc6", - "typeString": "literal_string \"deadline already set\"" - } - ], - "id": 1880, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3685:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3685:60:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1888, - "nodeType": "ExpressionStatement", - "src": "3685:60:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1889, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1864, - "src": "3783:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "Countdown", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5716, - "src": "3794:9:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Countdown_$5716_$", - "typeString": "type(contract Countdown)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_start", - "nodeType": "MemberAccess", - "referencedDeclaration": 5650, - "src": "3794:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 1892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3794:18:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3783:29:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1894, - "nodeType": "ExpressionStatement", - "src": "3783:29:2" - } - ] - }, - "documentation": null, - "id": 1896, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "startCountdown", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1862, - "nodeType": "ParameterList", - "parameters": [], - "src": "3452:2:2" - }, - "returnParameters": { - "id": 1865, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1864, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 1896, - "src": "3471:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3471:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3470:18:2" - }, - "scope": 2006, - "src": "3429:390:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "3899:347:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1905, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3953:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3953:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 1904, - "name": "isStaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1989, - "src": "3944:8:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3944:20:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1910, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "3994:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3994:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1908, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "3968:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "3968:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3968:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3944:61:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c79207374616b6572206f7220616374697665206f70657261746f72", - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4007:32:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - }, - "value": "only staker or active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_55e307e437e8da02e99f318f82fb39f7693393d3b0386347c2f65e0fda598cae", - "typeString": "literal_string \"only staker or active operator\"" - } - ], - "id": 1903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "3936:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3936:104:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1916, - "nodeType": "ExpressionStatement", - "src": "3936:104:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1918, - "name": "Deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5772, - "src": "4097:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Deadline_$5772_$", - "typeString": "type(contract Deadline)" - } - }, - "id": 1919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isAfterDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 5771, - "src": "4097:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4097:26:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "646561646c696e65206e6f7420706173736564", - "id": 1921, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4124:21:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0e3c3ed466b4494ab1c7e64434ab6a1a9840cdcc664320d0be16ffd1314382b5", - "typeString": "literal_string \"deadline not passed\"" - }, - "value": "deadline not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0e3c3ed466b4494ab1c7e64434ab6a1a9840cdcc664320d0be16ffd1314382b5", - "typeString": "literal_string \"deadline not passed\"" - } - ], - "id": 1917, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4089:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4089:57:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1923, - "nodeType": "ExpressionStatement", - "src": "4089:57:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1924, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1901, - "src": "4183:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1927, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4215:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "4215:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1929, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1898, - "src": "4229:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1925, - "name": "Staking", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7621, - "src": "4192:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Staking_$7621_$", - "typeString": "type(contract Staking)" - } - }, - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_takeFullStake", - "nodeType": "MemberAccess", - "referencedDeclaration": 7524, - "src": "4192:22:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) returns (uint256)" - } - }, - "id": 1930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4192:47:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4183:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "4183:56:2" - } - ] - }, - "documentation": null, - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "retrieveStake", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1899, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1898, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "3848:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1897, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3848:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3847:19:2" - }, - "returnParameters": { - "id": 1902, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1901, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "3883:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3883:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3882:16:2" - }, - "scope": 2006, - "src": "3825:421:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1954, - "nodeType": "Block", - "src": "4303:190:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1942, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "4374:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4374:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1940, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4348:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "4348:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4348:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72", - "id": 1945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4387:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - }, - "value": "only active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - } - ], - "id": 1939, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4340:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4340:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1947, - "nodeType": "ExpressionStatement", - "src": "4340:70:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1951, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "4477:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1948, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4450:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_transferOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6514, - "src": "4450:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4450:36:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1953, - "nodeType": "ExpressionStatement", - "src": "4450:36:2" - } - ] - }, - "documentation": null, - "id": 1955, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferOperator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 1955, - "src": "4278:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4277:18:2" - }, - "returnParameters": { - "id": 1938, - "nodeType": "ParameterList", - "parameters": [], - "src": "4303:0:2" - }, - "scope": 2006, - "src": "4252:241:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1972, - "nodeType": "Block", - "src": "4533:181:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1961, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "4604:3:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4604:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 1959, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4578:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "4578:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4578:37:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72", - "id": 1964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4617:22:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - }, - "value": "only active operator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ce03f3638b9d27849767fb16e7a73cfdf8d0f813292363c3c438c5383992abdf", - "typeString": "literal_string \"only active operator\"" - } - ], - "id": 1958, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "4570:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4570:70:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1966, - "nodeType": "ExpressionStatement", - "src": "4570:70:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1967, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "4680:8:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 1969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_renouceOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6541, - "src": "4680:25:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4680:27:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1971, - "nodeType": "ExpressionStatement", - "src": "4680:27:2" - } - ] - }, - "documentation": null, - "id": 1973, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "renouceOperator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1956, - "nodeType": "ParameterList", - "parameters": [], - "src": "4523:2:2" - }, - "returnParameters": { - "id": 1957, - "nodeType": "ParameterList", - "parameters": [], - "src": "4533:0:2" - }, - "scope": 2006, - "src": "4499:215:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1988, - "nodeType": "Block", - "src": "4813:52:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1980, - "name": "validity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1978, - "src": "4823:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1981, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1975, - "src": "4835:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1982, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4845:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "staker", - "nodeType": "MemberAccess", - "referencedDeclaration": 1627, - "src": "4845:12:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4835:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 1985, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4834:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4823:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1987, - "nodeType": "ExpressionStatement", - "src": "4823:35:2" - } - ] - }, - "documentation": null, - "id": 1989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isStaker", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1976, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1975, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "4761:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1974, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4761:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4760:16:2" - }, - "returnParameters": { - "id": 1979, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1978, - "name": "validity", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "4798:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1977, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4798:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4797:15:2" - }, - "scope": 2006, - "src": "4743:122:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2004, - "nodeType": "Block", - "src": "4947:58:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1996, - "name": "validity", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "4957:8:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1997, - "name": "caller", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1991, - "src": "4969:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1998, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1625, - "src": "4979:5:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Data_$1630_storage", - "typeString": "struct OneWayGriefing.Data storage ref" - } - }, - "id": 1999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "counterparty", - "nodeType": "MemberAccess", - "referencedDeclaration": 1629, - "src": "4979:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4969:28:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 2001, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4968:30:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4957:41:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2003, - "nodeType": "ExpressionStatement", - "src": "4957:41:2" - } - ] - }, - "documentation": null, - "id": 2005, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCounterparty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1991, - "name": "caller", - "nodeType": "VariableDeclaration", - "scope": 2005, - "src": "4895:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4895:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4894:16:2" - }, - "returnParameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1994, - "name": "validity", - "nodeType": "VariableDeclaration", - "scope": 2005, - "src": "4932:13:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1993, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4932:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4931:15:2" - }, - "scope": 2006, - "src": "4871:134:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2007, - "src": "658:4349:2" - } - ], - "src": "0:5008:2" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.679Z" -} \ No newline at end of file diff --git a/build/OneWayGriefing_Factory.json b/build/OneWayGriefing_Factory.json deleted file mode 100644 index 91c6a710..00000000 --- a/build/OneWayGriefing_Factory.json +++ /dev/null @@ -1,5487 +0,0 @@ -{ - "contractName": "OneWayGriefing_Factory", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getTemplate", - "outputs": [ - { - "name": "template", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "instance", - "type": "address" - } - ], - "name": "getInstanceCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceRegistry", - "outputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitdataABI", - "outputs": [ - { - "name": "initdataABI", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "staker", - "type": "address" - }, - { - "indexed": true, - "name": "counterparty", - "type": "address" - }, - { - "indexed": true, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "ratio", - "type": "uint256" - }, - { - "indexed": false, - "name": "ratioType", - "type": "uint8" - }, - { - "indexed": false, - "name": "countdownLength", - "type": "uint256" - }, - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "ExplicitInitData", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "callData", - "type": "bytes" - } - ], - "name": "InstanceCreated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "callData", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "initdata", - "type": "bytes" - } - ], - "name": "createEncoded", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "operator", - "type": "address" - }, - { - "name": "staker", - "type": "address" - }, - { - "name": "counterparty", - "type": "address" - }, - { - "name": "ratio", - "type": "uint256" - }, - { - "name": "ratioType", - "type": "uint8" - }, - { - "name": "countdownLength", - "type": "uint256" - }, - { - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "createExplicit", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162005c0038038062005c00833981810160405260208110156200003757600080fd5b810190808051906020019092919050505060006040516200005890620002f0565b604051809103906000f08015801562000075573d6000803e3d6000fd5b50905060006040518060400160405280600981526020017f41677265656d656e74000000000000000000000000000000000000000000000081525080519060200120905060606040518060600160405280603d815260200162005bc3603d91399050620000f084848484620000fa60201b6200164f1760201c565b50505050620003ad565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806003908051906020019062000194929190620002fe565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001dc57600080fd5b505afa158015620001f1573d6000803e3d6000fd5b505050506040513d60208110156200020857600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614620002cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b613c9b8062001f2883390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200034157805160ff191683800117855562000372565b8280016001018555821562000372579182015b828111156200037157825182559160200191906001019062000354565b5b50905062000381919062000385565b5090565b620003aa91905b80821115620003a65760008160009055506001016200038c565b5090565b90565b611b6b80620003bd6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e1146104c5578063ae34325c14610548578063b71f2e7214610566578063cf5ba53f146105f3578063d35fdd79146106ee578063ebd348de1461074d576100b4565b806318c2f4cf146100b9578063321c48f214610115578063461ffcbe1461015f5780636bf71982146102fc5780636f8d11e614610380578063a5e139041461047b575b600080fd5b6100c16107bb565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61011d6107d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ba600480360361010081101561017657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019064010000000081111561023457600080fd5b82018360208201111561024657600080fd5b8035906020019184600183028401116401000000008311171561026857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033e6004803603602081101561031257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b0d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104396004803603602081101561039657600080fd5b81019080803590602001906401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460018302840111640100000000831117156103e757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b76565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610483610c62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cd610c8c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561050d5780820151818401526020810190506104f2565b50505050905090810190601f16801561053a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610550610d2e565b6040518082815260200191505060405180910390f35b61059c6004803603604081101561057c57600080fd5b810190808035906020019092919080359060200190929190505050610d3a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105df5780820151818401526020810190506105c4565b505050509050019250505060405180910390f35b6106ac6004803603602081101561060957600080fd5b810190808035906020019064010000000081111561062657600080fd5b82018360208201111561063857600080fd5b8035906020019184600183028401116401000000008311171561065a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610eeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f6610efd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561073957808201518184015260208101905061071e565b505050509050019250505060405180910390f35b6107796004803603602081101561076357600080fd5b8101908080359060200190929190505050610f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060608173ffffffffffffffffffffffffffffffffffffffff16633121d2e7905060e01b8b8b8b8b8b8b8b8b604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184600481111561090b57fe5b60ff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561095557808201518184015260208101905061093a565b50505050905090810190601f1680156109825780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506109f681611045565b92508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fa75a9e87c1a935b115363faab238af03d2784cfa15088fd8b63ca8d8422d824d8a8a8a8a60405180858152602001846004811115610a7857fe5b60ff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ac2578082015181840152602081019050610aa7565b50505050905090810190601f168015610aef5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4505098975050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600080600080600080600080606089806020019051610100811015610b9a57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051640100000000811115610bf857600080fd5b82810190506020810184811115610c0e57600080fd5b8151856001820283011164010000000082111715610c2b57600080fd5b505092919050505097509750975097509750975097509750610c5388888888888888886107fc565b98505050505050505050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d245780601f10610cf957610100808354040283529160200191610d24565b820191906000526020600020905b815481529060010190602001808311610d0757829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611b126025913960400191505060405180910390fd5b600080549050821115610e0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610e425781602001602082028038833980820191505090505b50905060008490505b83811015610ee05760008181548110610e6057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286830381518110610e9957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610e4b565b508091505092915050565b6000610ef682611045565b9050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610f8157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f37575b5050505050905090565b600080805490508210611006576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b6000828154811061101357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006110586110526107d2565b836112fe565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611146610c62565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561121757600080fd5b505af115801561122b573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156112bf5780820151818401526020810190506112a4565b50505050905090810190601f1680156112ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b600060606040518060200161131290611642565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561139d578082015181840152602081019050611382565b50505050905090810190601f1680156113ca5780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b6020831061141557805182526020820191506020810190506020830392506113f2565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106114665780518252602082019150602081019050602083039250611443565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290506114a6816114af565b91505092915050565b6000806114bb836114e2565b50905082602001835182818334f59350836114da573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b60011561163a573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b9050600081141561162d5761163a565b81806001019250506114f9565b505050915091565b61022d806118e583390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906116e792919061183f565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d602081101561175857600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188057805160ff19168380011785556118ae565b828001600101855582156118ae579182015b828111156118ad578251825591602001919060010190611892565b5b5090506118bb91906118bf565b5090565b6118e191905b808211156118dd5760008160009055506001016118c5565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a72305820abff9c1db150e6229889e2df56e9bf71dfacaffd1fd068e1ec44a294210b394664736f6c634300050a0032608060405234801561001057600080fd5b50613c7b806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806373f500af116100f9578063a4fa8d5711610097578063bec10cde11610071578063bec10cde14610ae2578063e3cfef6014610b1a578063e7f43c6814610b38578063efd4606514610b82576101c4565b8063a4fa8d5714610a6a578063b4bd9e2714610aa2578063be1c766b14610ac4576101c4565b80637a5b4f59116100d35780637a5b4f59146108f75780637a766460146109e6578063913b945014610a3e578063923b176214610a48576101c4565b806373f500af1461080c578063754b2707146108685780637878f257146108d5576101c4565b806341ce2878116101665780635e5365c1116101405780635e5365c1146107185780635f8d96de146107365780636d70f7ae146107545780636f1e8533146107b0576101c4565b806341ce28781461060e578063465b414e146106665780635baeb806146106bf576101c4565b806327305e83116101a257806327305e831461035657806329605e77146104115780633121d2e7146104555780633367cca5146105b2576101c4565b8063060e468f146101c95780630ee2cb10146102c257806321df0da71461030c575b600080fd5b6102ac600480360360608110156101df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561022657600080fd5b82018360208201111561023857600080fd5b8035906020019184600183028401116401000000008311171561025a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610bde565b6040518082815260200191505060405180910390f35b6102ca610d03565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610314610de4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61040f6004803603602081101561036c57600080fd5b810190808035906020019064010000000081111561038957600080fd5b82018360208201111561039b57600080fd5b803590602001918460018302840111640100000000831117156103bd57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e0e565b005b6104536004803603602081101561042757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea5565b005b6105b0600480360361010081101561046c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019064010000000081111561052a57600080fd5b82018360208201111561053c57600080fd5b8035906020019184600183028401116401000000008311171561055e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610f2c565b005b6105f4600480360360208110156105c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d1565b604051808215151515815260200191505060405180910390f35b6106506004803603602081101561062457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110f3565b6040518082815260200191505060405180910390f35b6106a96004803603606081101561067c57600080fd5b810190808035906020019092919080359060200190929190803560ff169060200190929190505050611230565b6040518082815260200191505060405180910390f35b610702600480360360608110156106d557600080fd5b810190808035906020019092919080359060200190929190803560ff16906020019092919050505061136a565b6040518082815260200191505060405180910390f35b6107206114ec565b6040518082815260200191505060405180910390f35b61073e611603565b6040518082815260200191505060405180910390f35b6107966004803603602081101561076a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061160c565b604051808215151515815260200191505060405180910390f35b6107f2600480360360208110156107c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061164b565b604051808215151515815260200191505060405180910390f35b61084e6004803603602081101561082257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116a8565b604051808215151515815260200191505060405180910390f35b6108aa6004803603602081101561087e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611705565b604051808381526020018260048111156108c057fe5b60ff1681526020019250505060405180910390f35b6108dd6117a4565b604051808215151515815260200191505060405180910390f35b6108ff6117c5565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b83811015610943578082015181840152602081019050610928565b50505050905090810190601f1680156109705780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156109a957808201518184015260208101905061098e565b50505050905090810190601f1680156109d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b610a28600480360360208110156109fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611906565b6040518082815260200191505060405180910390f35b610a4661194f565b005b610a506119d4565b604051808215151515815260200191505060405180910390f35b610aa060048036036040811015610a8057600080fd5b8101908080359060200190929190803590602001909291905050506119eb565b005b610aaa611b09565b604051808215151515815260200191505060405180910390f35b610acc611b3e565b6040518082815260200191505060405180910390f35b610b1860048036036040811015610af857600080fd5b810190808035906020019092919080359060200190929190505050611b48565b005b610b22611c83565b6040518082815260200191505060405180910390f35b610b40611cbc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610bc460048036036020811015610b9857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ce6565b604051808215151515815260200191505060405180910390f35b6000610be9336116a8565b80610bf95750610bf8336110d1565b5b610c4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b610c56611b09565b15610cc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b610cfa84600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585611d25565b90509392505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610da457600080fd5b505afa158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b8101908080519060200190929190505050905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e173361164b565b80610e275750610e26336110d1565b5b610e99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b610ea281612046565b50565b610eae336110d1565b610f20576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b610f29816120fc565b50565b33600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610fd2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613bfc602a913960400191505060405180910390fd5b86600960000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555085600960010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146110a05761109788612108565b61109f612286565b5b6110a9896123b0565b6110b487868661241f565b6110bd8361254f565b6110c682612590565b505050505050505050565b60006110dc8261160c565b80156110ec57506110eb6119d4565b5b9050919050565b60006110fe3361164b565b8061110e575061110d336110d1565b5b611180576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6111886117a4565b6111fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f646561646c696e65206e6f74207061737365640000000000000000000000000081525060200191505060405180910390fd5b611229600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836126b5565b9050919050565b60006001600481111561123f57fe5b82600481111561124b57fe5b141561126b5761126484846127b490919063ffffffff16565b9050611363565b6002600481111561127857fe5b82600481111561128457fe5b14156112a45761129d848461283a90919063ffffffff16565b9050611363565b600360048111156112b157fe5b8260048111156112bd57fe5b14156112cb57829050611363565b6004808111156112d757fe5b8260048111156112e357fe5b14156112f25760009050611363565b600060048111156112ff57fe5b82600481111561130b57fe5b1415611362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006001600481111561137957fe5b82600481111561138557fe5b14156113a55761139e848461283a90919063ffffffff16565b90506114e5565b600260048111156113b257fe5b8260048111156113be57fe5b14156113de576113d784846127b490919063ffffffff16565b90506114e5565b600360048111156113eb57fe5b8260048111156113f757fe5b1415611405578290506114e5565b60048081111561141157fe5b82600481111561141d57fe5b1415611474576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b316021913960400191505060405180910390fd5b6000600481111561148157fe5b82600481111561148d57fe5b14156114e4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613c266021913960400191505060405180910390fd5b5b9392505050565b60006114f73361164b565b806115075750611506336110d1565b5b611579576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b6000611583611603565b146115f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f646561646c696e6520616c72656164792073657400000000000000000000000081525060200191505060405180910390fd5b6115fe6128c9565b905090565b60008054905090565b6000611616611cbc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600960010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050915091565b60008060005414156117b957600090506117c2565b60005442101590505b90565b60608060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561185e5780601f106118335761010080835404028352916020019161185e565b820191906000526020600020905b81548152906001019060200180831161184157829003601f168201915b5050505050915060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118fb5780601f106118d0576101008083540402835291602001916118fb565b820191906000526020600020905b8154815290600101906020018083116118de57829003601f168201915b505050505090509091565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611958336110d1565b6119ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6f6e6c7920616374697665206f70657261746f7200000000000000000000000081525060200191505060405180910390fd5b6119d2612966565b565b6000600760149054906101000a900460ff16905090565b6119f4336116a8565b80611a045750611a03336110d1565b5b611a59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613b956024913960400191505060405180910390fd5b611a61611b09565b15611ad4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611b05600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000806001541480611b2257506000611b20611603565b145b15611b305760009050611b3b565b611b386117a4565b90505b90565b6000600154905090565b611b513361164b565b80611b615750611b60336110d1565b5b611bd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6f6e6c79207374616b6572206f7220616374697665206f70657261746f72000081525060200191505060405180910390fd5b611bdb611b09565b15611c4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f61677265656d656e7420656e646564000000000000000000000000000000000081525060200191505060405180910390fd5b611c7f600960000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338484612aaf565b5050565b6000611c8d611603565b4210611c9c5760009050611cb9565b611cb642611ca8611603565b612efb90919063ffffffff16565b90505b90565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000611cf0610d03565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff16611d46610de4565b73ffffffffffffffffffffffffffffffffffffffff161415611dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f746f6b656e206e6f74207365740000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015490506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16905060006004811115611e7857fe5b816004811115611e8457fe5b1415611ef8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f6e6f2070756e6973686d656e7420616c6c6f776564000000000000000000000081525060200191505060405180910390fd5b611f03828683611230565b9250611f0f8784612f84565b6000611f1a87611906565b9050611f278782886130de565b7fca93c648a4546f2ae486b9140f0082ced75a2664a663c8882b8b3545cddfeeb18888888789604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611ffd578082015181840152602081019050611fe2565b50505050905090810190601f16801561202a5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a1505050949350505050565b806006908051906020019061205c929190613a8b565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b838110156120bf5780820151818401526020810190506120a4565b50505050905090810190601f1680156120ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61210581612108565b50565b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156121cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816122376119d4565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61228e6119d4565b15612301576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b6123b9816133e8565b7fa07c91c183e42229e705a9795a1c06d76528b673788b849597364528c96eefb781604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b81600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908360048111156124c457fe5b02179055507fc964ed8af672f908dc7ba57f61d45a87a7e179cecf5198e7b7d53c920d898f06838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182600481111561253557fe5b60ff168152602001935050505060405180910390a1505050565b806001819055507f7caceb1091bbaa84d09ab116a1fd72387eaab8a33d70fc39168b9b75686ee32c816040518082815260200191505060405180910390a150565b60006005805460018160011615610100020316600290049050146125ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613b526021913960400191505060405180910390fd5b8060059080519060200190612615929190613a8b565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561267857808201518184015260208101905061265d565b50505050905090810190601f1680156126a55780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b60008073ffffffffffffffffffffffffffffffffffffffff166126d6610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612760576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506127ae8383838461342c565b92915050565b6000808314156127c75760009050612834565b60008284029050828482816127d857fe5b041461282f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613bb96021913960400191505060405180910390fd5b809150505b92915050565b60008082116128b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b60008284816128bc57fe5b0490508091505092915050565b6000806001541415612943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f6c656e677468206e6f742073657400000000000000000000000000000000000081525060200191505060405180910390fd5b6129584260015461389d90919063ffffffff16565b905061296381613925565b90565b61296e6119d4565b6129e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f6e6c79207768656e206f70657261746f72206163746976650000000000000081525060200191505060405180910390fd5b6000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600080604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff16612acf610de4565b73ffffffffffffffffffffffffffffffffffffffff161415612b59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548214612c0d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111612c83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f207374616b6520746f20616464000000000000000000000000000000000081525060200191505060405180910390fd5b6000612c98828461389d90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ce6610de4565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd8530856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612da057600080fd5b505af1158015612db4573d6000803e3d6000fd5b505050506040513d6020811015612dca57600080fd5b8101908080519060200190929190505050612e4d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7fef7c8dfef14cbefdf829b8f066b068b677992411137321d64b3ed4538c2b363785858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b600082821115612f73576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637c8d56b883836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561302d57600080fd5b505af1158015613041573d6000803e3d6000fd5b505050506040513d602081101561305757600080fd5b81019080805190602001909291905050506130da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6e6d72206275726e46726f6d206661696c65640000000000000000000000000081525060200191505060405180910390fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff166130fe610de4565b73ffffffffffffffffffffffffffffffffffffffff161415613188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461323c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b600081116132b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f206275726e0000000000000000000000000000000081525060200191505060405180910390fd5b8181111561330b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bda6022913960400191505060405180910390fd5b60006133208284612efb90919063ffffffff16565b905080600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061336f82613966565b7ff470d7f6c239014b63db190652ebe51433a828b65e06d9972143c34c2e2ca3bc848383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff1661344c610de4565b73ffffffffffffffffffffffffffffffffffffffff1614156134d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f746f6b656e206e6f74207365742079657400000000000000000000000000000081525060200191505060405180910390fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821461358a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63757272656e74207374616b6520696e636f727265637400000000000000000081525060200191505060405180910390fd5b60008111613600576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f207374616b6520746f2074616b650000000000000000000000000000000081525060200191505060405180910390fd5b81811115613659576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613b736022913960400191505060405180910390fd5b600061366e8284612efb90919063ffffffff16565b905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136bc610de4565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561374257600080fd5b505af1158015613756573d6000803e3d6000fd5b505050506040513d602081101561376c57600080fd5b81019080805190602001909291905050506137ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f746f6b656e207472616e73666572206661696c6564000000000000000000000081525060200191505060405180910390fd5b7f79cb01d8e263c1d344176f9a596b5a6aa14a7df350a227e2e7df836a087b566185858484604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a15050505050565b60008082840190508381101561391b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b806000819055507f337b880688eb06df8adb77036a6c8def1da2b520bc901c04b3a5a23f9ae13039816040518082815260200191505060405180910390a150565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a0712d68826040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156139db57600080fd5b505af11580156139ef573d6000803e3d6000fd5b505050506040513d6020811015613a0557600080fd5b8101908080519060200190929190505050613a88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6d72206275726e206661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613acc57805160ff1916838001178555613afa565b82800160010185558215613afa579182015b82811115613af9578251825591602001919060010190613ade565b5b509050613b079190613b0b565b5090565b613b2d91905b80821115613b29576000816000905550600101613b11565b5090565b9056fe726174696f547970652063616e6e6f7420626520526174696f547970652e496e66737461746963206d657461646174612063616e6e6f74206265206368616e67656463616e6e6f742074616b65206d6f7265207468616e2063757272656e745374616b656f6e6c7920636f756e7465727061727479206f7220616374697665206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7763616e6e6f74206275726e206d6f7265207468616e2063757272656e745374616b656d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72726174696f547970652063616e6e6f7420626520526174696f547970652e4e614ea265627a7a7230582081339156344ab7a116f94fe356eb98a1070ac57c2963485ddd6589b77f506fe164736f6c634300050a003228616464726573732c616464726573732c616464726573732c616464726573732c75696e743235362c75696e74382c75696e743235362c627974657329", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e1146104c5578063ae34325c14610548578063b71f2e7214610566578063cf5ba53f146105f3578063d35fdd79146106ee578063ebd348de1461074d576100b4565b806318c2f4cf146100b9578063321c48f214610115578063461ffcbe1461015f5780636bf71982146102fc5780636f8d11e614610380578063a5e139041461047b575b600080fd5b6100c16107bb565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b61011d6107d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ba600480360361010081101561017657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803560ff169060200190929190803590602001909291908035906020019064010000000081111561023457600080fd5b82018360208201111561024657600080fd5b8035906020019184600183028401116401000000008311171561026857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107fc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033e6004803603602081101561031257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b0d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104396004803603602081101561039657600080fd5b81019080803590602001906401000000008111156103b357600080fd5b8201836020820111156103c557600080fd5b803590602001918460018302840111640100000000831117156103e757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b76565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610483610c62565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104cd610c8c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561050d5780820151818401526020810190506104f2565b50505050905090810190601f16801561053a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610550610d2e565b6040518082815260200191505060405180910390f35b61059c6004803603604081101561057c57600080fd5b810190808035906020019092919080359060200190929190505050610d3a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105df5780820151818401526020810190506105c4565b505050509050019250505060405180910390f35b6106ac6004803603602081101561060957600080fd5b810190808035906020019064010000000081111561062657600080fd5b82018360208201111561063857600080fd5b8035906020019184600183028401116401000000008311171561065a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610eeb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106f6610efd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561073957808201518184015260208101905061071e565b505050509050019250505060405180910390f35b6107796004803603602081101561076357600080fd5b8101908080359060200190929190505050610f8b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060608173ffffffffffffffffffffffffffffffffffffffff16633121d2e7905060e01b8b8b8b8b8b8b8b8b604051602401808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184600481111561090b57fe5b60ff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561095557808201518184015260208101905061093a565b50505050905090810190601f1680156109825780820380516001836020036101000a031916815260200191505b509950505050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506109f681611045565b92508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fa75a9e87c1a935b115363faab238af03d2784cfa15088fd8b63ca8d8422d824d8a8a8a8a60405180858152602001846004811115610a7857fe5b60ff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610ac2578082015181840152602081019050610aa7565b50505050905090810190601f168015610aef5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a4505098975050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600080600080600080600080606089806020019051610100811015610b9a57600080fd5b81019080805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051640100000000811115610bf857600080fd5b82810190506020810184811115610c0e57600080fd5b8151856001820283011164010000000082111715610c2b57600080fd5b505092919050505097509750975097509750975097509750610c5388888888888888886107fc565b98505050505050505050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d245780601f10610cf957610100808354040283529160200191610d24565b820191906000526020600020905b815481529060010190602001808311610d0757829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611b126025913960400191505060405180910390fd5b600080549050821115610e0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610e425781602001602082028038833980820191505090505b50905060008490505b83811015610ee05760008181548110610e6057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286830381518110610e9957fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610e4b565b508091505092915050565b6000610ef682611045565b9050919050565b60606000805480602002602001604051908101604052809291908181526020018280548015610f8157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f37575b5050505050905090565b600080805490508210611006576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b6000828154811061101357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006110586110526107d2565b836112fe565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611146610c62565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b15801561121757600080fd5b505af115801561122b573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b838110156112bf5780820151818401526020810190506112a4565b50505050905090810190601f1680156112ec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b600060606040518060200161131290611642565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561139d578082015181840152602081019050611382565b50505050905090810190601f1680156113ca5780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b6020831061141557805182526020820191506020810190506020830392506113f2565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106114665780518252602082019150602081019050602083039250611443565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290506114a6816114af565b91505092915050565b6000806114bb836114e2565b50905082602001835182818334f59350836114da573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b60011561163a573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b9050600081141561162d5761163a565b81806001019250506114f9565b505050915091565b61022d806118e583390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906116e792919061183f565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b15801561172e57600080fd5b505afa158015611742573d6000803e3d6000fd5b505050506040513d602081101561175857600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461181b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061188057805160ff19168380011785556118ae565b828001600101855582156118ae579182015b828111156118ad578251825591602001919060010190611892565b5b5090506118bb91906118bf565b5090565b6118e191905b808211156118dd5760008160009055506001016118c5565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a72305820abff9c1db150e6229889e2df56e9bf71dfacaffd1fd068e1ec44a294210b394664736f6c634300050a0032", - "sourceMap": "91:2735:3:-;;;141:509;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:509:3;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;141:509:3;;;;;;;;;;;;;;;;232:24;267:20;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;267:20:3;232:56;;327:19;366:18;;;;;;;;;;;;;;;;;356:29;;;;;;327:59;;423:25;:91;;;;;;;;;;;;;;;;;;;561:82;581:16;599;617:12;631:11;561:19;;;;;:82;;:::i;:::-;141:509;;;;91:2735;;545:574:26;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;91:2735:3:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "91:2735:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;91:2735:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1900:114:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2280:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1688:1135:3;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1688:1135:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1688:1135:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1688:1135:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1688:1135:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1688:1135:3;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1757:137:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1757:137:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1016:666:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1016:666:3;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1016:666:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1016:666:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1016:666:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1016:666:3;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2143:131:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2020:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2020:117:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2872:633;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2872:633:26;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2872:633:26;;;;;;;;;;;;;;;;;857:153:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;857:153:3;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;857:153:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;857:153:3;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;857:153:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;857:153:3;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2697:112:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2697:112:26;;;;;;;;;;;;;;;;;2505:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2505:186:26;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1900:114;1948:19;1994:13;;;;;;;;;;;1979:28;;1900:114;:::o;2280:107::-;2324:16;2363:17;;;;;;;;;;;2352:28;;2280:107;:::o;1688:1135:3:-;1977:16;2043:23;2156:21;2216:8;:19;;;:28;;;;2270:5;2308:8;2349:6;2388:12;2433:5;2471:9;2513:15;2561:14;2180:425;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2180:425:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2180:425:3;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2180:425:3;2156:449;;2654:25;2670:8;2654:15;:25::i;:::-;2643:36;;2756:8;2717:99;;2742:12;2717:99;;2734:6;2717:99;;;2766:5;2773:9;2784:15;2801:14;2717:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2717:99:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:1135;;;;;;;;;;;;:::o;1757:137:26:-;1824:15;1861:16;:26;1878:8;1861:26;;;;;;;;;;;;;;;;;;;;;;;;;1851:36;;1757:137;;;:::o;1016:666:3:-;1078:16;1147:13;1174:16;1204:14;1232:20;1266:13;1293:28;1344:23;1381:27;1432:8;1421:96;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1421:96:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1421:96:3;;;;;;1133:384;;;;;;;;;;;;;;;;1571:104;1586:5;1593:8;1603:6;1611:12;1625:5;1632:9;1643:15;1660:14;1571;:104::i;:::-;1560:115;;1016:666;;;;;;;;;;;:::o;2143:131:26:-;2195:24;2250:17;;;;;;;;;;;2231:36;;2143:131;:::o;2020:117::-;2067:25;2118:12;2104:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:117;:::o;2393:106::-;2442:13;2475:10;:17;;;;2467:25;;2393:106;:::o;2872:633::-;2962:26;3021:8;3008:10;:21;3000:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:10;:17;;;;3089:8;:29;;3081:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:22;3252:10;3241:8;:21;3227:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3227:36:26;;;;3202:61;;3329:9;3341:10;3329:22;;3324:110;3357:8;3353:1;:12;3324:110;;;3410:10;3421:1;3410:13;;;;;;;;;;;;;;;;;;;;;;;;;3386:5;3396:10;3392:1;:14;3386:21;;;;;;;;;;;;;:37;;;;;;;;;;;3367:3;;;;;;;3324:110;;;;3493:5;3481:17;;2872:633;;;;;:::o;857:153:3:-;912:16;978:25;994:8;978:15;:25::i;:::-;967:36;;857:153;;;:::o;2697:112:26:-;2742:26;2792:10;2780:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2697:112;:::o;2505:186::-;2562:16;2606:10;:17;;;;2598:5;:25;2590:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:10;2678:5;2667:17;;;;;;;;;;;;;;;;;;;;;;;;;2656:28;;2505:186;;;:::o;1150:601::-;1208:16;1327:39;1342:13;:11;:13::i;:::-;1357:8;1327:14;:39::i;:::-;1316:50;;1417:10;1433:8;1417:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1417:25:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:10;1484:16;:26;1501:8;1484:26;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;1596:21;:19;:21::i;:::-;1586:41;;;1628:8;1638:10;1657:1;1586:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1586:74:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1586:74:26;;;;1723:10;1697:47;;1713:8;1697:47;;;1735:8;1697:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1697:47:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:601;;;:::o;1848:448:12:-;1954:23;2065:21;2113:24;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;2113:24:12;2156:13;2171:22;2145:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2145:49:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2145::12;;;2089:111;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2089:111:12;;;2065:135;;2268:23;2282:8;2268:13;:23::i;:::-;2250:41;;1848:448;;;;;:::o;3763:1009::-;3834:23;3947:12;3965:27;3983:8;3965:17;:27::i;:::-;3946:46;;;4046:8;4040:4;4036:19;4117:8;4111:15;4487:4;4410:12;4332;4251:9;4188:371;4169:390;;4657:15;4647:2;;4705:14;4702:1;4699;4684:36;4739:14;4736:1;4729:25;4647:2;4008:760;;;;;;:::o;4970:1612::-;5050:12;5064:14;5157:20;5190:8;5180:19;;;;;;5157:42;;5278:13;5294:1;5278:17;;5360:16;5383:1195;5390:4;5383:1195;;;5499:10;5511:5;5482:35;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5482:35:12;;;5472:46;;;;;;5465:53;;5914:4;5907:12;;5984:4;6052;6119:12;5829:367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5829:367:12;;;5752:458;;;;;;5673:549;;5527:713;;6360:6;6348:19;6336:31;;6466:1;6454:8;:13;6450:43;;;6479:5;;6450:43;6564:7;;;;;;;5383:1195;;;4970:1612;;;;;;:::o;91:2735:3:-;;;;;;;;:::o;545:574:26:-;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/Factory.sol\";\nimport \"./OneWayGriefing.sol\";\n\n\ncontract OneWayGriefing_Factory is Factory {\n\n constructor(address instanceRegistry) public {\n // deploy template contract\n address templateContract = address(new OneWayGriefing());\n // set instance type\n bytes4 instanceType = bytes4(keccak256(bytes('Agreement')));\n // set initdataABI\n string memory initdataABI = '(address,address,address,address,uint256,uint8,uint256,bytes)';\n // initialize factory params\n Factory._initialize(instanceRegistry, templateContract, instanceType, initdataABI);\n }\n\n event ExplicitInitData(address indexed staker, address indexed counterparty, address indexed operator, uint256 ratio, Griefing.RatioType ratioType, uint256 countdownLength, bytes staticMetadata);\n\n function create(bytes memory callData) public returns (address instance) {\n // deploy instance\n instance = Factory._create(callData);\n }\n\n function createEncoded(bytes memory initdata) public returns (address instance) {\n // decode initdata\n (\n address token,\n address operator,\n address staker,\n address counterparty,\n uint256 ratio,\n Griefing.RatioType ratioType, // uint8\n uint256 countdownLength,\n bytes memory staticMetadata\n ) = abi.decode(initdata, (address,address,address,address,uint256,Griefing.RatioType,uint256,bytes));\n\n // call explicit create\n instance = createExplicit(token, operator, staker, counterparty, ratio, ratioType, countdownLength, staticMetadata);\n }\n\n function createExplicit(\n address token,\n address operator,\n address staker,\n address counterparty,\n uint256 ratio,\n Griefing.RatioType ratioType, // uint8\n uint256 countdownLength,\n bytes memory staticMetadata\n ) public returns (address instance) {\n // declare template in memory\n OneWayGriefing template;\n\n // construct the data payload used when initializing the new contract.\n bytes memory callData = abi.encodeWithSelector(\n template.initialize.selector, // selector\n token, // token\n operator, // operator\n staker, // staker\n counterparty, // counterparty\n ratio, // ratio\n ratioType, // ratioType\n countdownLength, // countdownLength\n staticMetadata // staticMetadata\n );\n\n // deploy instance\n instance = Factory._create(callData);\n\n // emit event\n emit ExplicitInitData(staker, counterparty, operator, ratio, ratioType, countdownLength, staticMetadata);\n }\n\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing_Factory.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing_Factory.sol", - "exportedSymbols": { - "OneWayGriefing_Factory": [ - 2192 - ] - }, - "id": 2193, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2008, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 2009, - "nodeType": "ImportDirective", - "scope": 2193, - "sourceUnit": 6054, - "src": "25:32:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing.sol", - "file": "./OneWayGriefing.sol", - "id": 2010, - "nodeType": "ImportDirective", - "scope": 2193, - "sourceUnit": 2007, - "src": "58:30:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2011, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "126:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 2012, - "nodeType": "InheritanceSpecifier", - "src": "126:7:3" - } - ], - "contractDependencies": [ - 2006, - 4049, - 6053 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2192, - "linearizedBaseContracts": [ - 2192, - 6053, - 4049 - ], - "name": "OneWayGriefing_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2048, - "nodeType": "Block", - "src": "186:464:3", - "statements": [ - { - "assignments": [ - 2018 - ], - "declarations": [ - { - "constant": false, - "id": 2018, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "232:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "232:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2024, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "267:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_OneWayGriefing_$2006_$", - "typeString": "function () returns (contract OneWayGriefing)" - }, - "typeName": { - "contractScope": null, - "id": 2020, - "name": "OneWayGriefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2006, - "src": "271:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - } - }, - "id": 2022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "267:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - ], - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "259:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "259:29:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "232:56:3" - }, - { - "assignments": [ - 2026 - ], - "declarations": [ - { - "constant": false, - "id": 2026, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "327:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2025, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "327:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2034, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "41677265656d656e74", - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "372:11:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - }, - "value": "Agreement" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - } - ], - "id": 2029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "366:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 2031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "366:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2028, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "356:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "356:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "349:6:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "349:37:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "327:59:3" - }, - { - "assignments": [ - 2036 - ], - "declarations": [ - { - "constant": false, - "id": 2036, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "423:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2035, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "423:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2038, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c616464726573732c616464726573732c616464726573732c75696e743235362c75696e74382c75696e743235362c627974657329", - "id": 2037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "451:63:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e1a0bb772b9ca049f42446d5db41c2dc65b2f0f3979ff2edba5280e9bba8c031", - "typeString": "literal_string \"(address,address,address,address,uint256,uint8,uint256,bytes)\"" - }, - "value": "(address,address,address,address,uint256,uint8,uint256,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "423:91:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2042, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2014, - "src": "581:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2043, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2018, - "src": "599:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2044, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "617:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 2045, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "631:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2039, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "561:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "561:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 2046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "561:82:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2047, - "nodeType": "ExpressionStatement", - "src": "561:82:3" - } - ] - }, - "documentation": null, - "id": 2049, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2014, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 2049, - "src": "153:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "153:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "152:26:3" - }, - "returnParameters": { - "id": 2016, - "nodeType": "ParameterList", - "parameters": [], - "src": "186:0:3" - }, - "scope": 2192, - "src": "141:509:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2065, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 2064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2051, - "indexed": true, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "679:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "679:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2053, - "indexed": true, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "703:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2055, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "733:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2057, - "indexed": false, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "759:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2056, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2059, - "indexed": false, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "774:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2058, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "774:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2061, - "indexed": false, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "804:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "804:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2063, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "829:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "678:172:3" - }, - "src": "656:195:3" - }, - { - "body": { - "id": 2079, - "nodeType": "Block", - "src": "930:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2072, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "967:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2075, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "994:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2073, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "978:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "978:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 2076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "978:25:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "967:36:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2078, - "nodeType": "ExpressionStatement", - "src": "967:36:3" - } - ] - }, - "documentation": null, - "id": 2080, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2067, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "873:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2066, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "873:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "872:23:3" - }, - "returnParameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "912:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "912:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "911:18:3" - }, - "scope": 2192, - "src": "857:153:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2131, - "nodeType": "Block", - "src": "1096:586:3", - "statements": [ - { - "assignments": [ - 2088, - 2090, - 2092, - 2094, - 2096, - 2098, - 2100, - 2102 - ], - "declarations": [ - { - "constant": false, - "id": 2088, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1147:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1147:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2090, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1174:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2089, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1174:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2092, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1204:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1204:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2094, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1232:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1232:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2096, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1266:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2098, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1293:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2097, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1293:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2100, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1344:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1344:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2102, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1381:27:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2101, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1381:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2105, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2082, - "src": "1432:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1443:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1451:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1459:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1467:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1475:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2111, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "1483:8:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "RatioType", - "nodeType": "MemberAccess", - "referencedDeclaration": 6064, - "src": "1483:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RatioType_$6064_$", - "typeString": "type(enum Griefing.RatioType)" - } - }, - { - "argumentTypes": null, - "id": 2113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1502:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - { - "argumentTypes": null, - "id": 2114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1510:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 2115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1442:74:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_enum$_RatioType_$6064_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(address),type(address),type(uint256),type(enum Griefing.RatioType),type(uint256),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_enum$_RatioType_$6064_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(address),type(address),type(uint256),type(enum Griefing.RatioType),type(uint256),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 2103, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1421:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1421:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1421:96:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_address_payable_$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_$", - "typeString": "tuple(address payable,address payable,address payable,address payable,uint256,enum Griefing.RatioType,uint256,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1133:384:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2118, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2085, - "src": "1560:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2120, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "1586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2121, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2090, - "src": "1593:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2122, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "1603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2123, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "1611:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2124, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "1625:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2125, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "1632:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2126, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "1643:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2127, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1660:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2119, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "1571:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory) returns (address)" - } - }, - "id": 2128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1571:104:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1560:115:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2130, - "nodeType": "ExpressionStatement", - "src": "1560:115:3" - } - ] - }, - "documentation": null, - "id": 2132, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2082, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 2132, - "src": "1039:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2081, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1039:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1038:23:3" - }, - "returnParameters": { - "id": 2086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2085, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2132, - "src": "1078:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1078:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1077:18:3" - }, - "scope": 2192, - "src": "1016:666:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "1995:828:3", - "statements": [ - { - "assignments": [ - 2154 - ], - "declarations": [ - { - "constant": false, - "id": 2154, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "2043:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - }, - "typeName": { - "contractScope": null, - "id": 2153, - "name": "OneWayGriefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2006, - "src": "2043:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2043:23:3" - }, - { - "assignments": [ - 2157 - ], - "declarations": [ - { - "constant": false, - "id": 2157, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "2156:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2156, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2156:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2172, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2160, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2154, - "src": "2216:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 1708, - "src": "2216:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory) external" - } - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2216:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 2163, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "2270:5:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2164, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2308:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2165, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2349:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2166, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "2388:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2167, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2433:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2168, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2144, - "src": "2471:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2169, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "2513:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2170, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2561:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2158, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "2180:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2180:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 2171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2180:425:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2156:449:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2173, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "2643:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2176, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "2670:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2174, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "2654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "2654:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 2177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2654:25:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2643:36:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2179, - "nodeType": "ExpressionStatement", - "src": "2643:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2181, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2734:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2182, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "2742:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2183, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2756:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2184, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2766:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2185, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2144, - "src": "2773:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2186, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "2784:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2801:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2180, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "2717:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2717:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2189, - "nodeType": "EmitStatement", - "src": "2712:104:3" - } - ] - }, - "documentation": null, - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2134, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1721:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1721:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2136, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1744:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1744:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2138, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1770:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1770:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2140, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1794:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1824:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1824:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2144, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1847:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2143, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1847:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2146, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1894:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1894:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2148, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1927:27:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1927:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1711:249:3" - }, - "returnParameters": { - "id": 2152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2151, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1977:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1977:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1976:18:3" - }, - "scope": 2192, - "src": "1688:1135:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2193, - "src": "91:2735:3" - } - ], - "src": "0:2827:3" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing_Factory.sol", - "exportedSymbols": { - "OneWayGriefing_Factory": [ - 2192 - ] - }, - "id": 2193, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2008, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 2009, - "nodeType": "ImportDirective", - "scope": 2193, - "sourceUnit": 6054, - "src": "25:32:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/agreements/OneWayGriefing.sol", - "file": "./OneWayGriefing.sol", - "id": 2010, - "nodeType": "ImportDirective", - "scope": 2193, - "sourceUnit": 2007, - "src": "58:30:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2011, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "126:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 2012, - "nodeType": "InheritanceSpecifier", - "src": "126:7:3" - } - ], - "contractDependencies": [ - 2006, - 4049, - 6053 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2192, - "linearizedBaseContracts": [ - 2192, - 6053, - 4049 - ], - "name": "OneWayGriefing_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2048, - "nodeType": "Block", - "src": "186:464:3", - "statements": [ - { - "assignments": [ - 2018 - ], - "declarations": [ - { - "constant": false, - "id": 2018, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "232:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "232:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2024, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "267:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_OneWayGriefing_$2006_$", - "typeString": "function () returns (contract OneWayGriefing)" - }, - "typeName": { - "contractScope": null, - "id": 2020, - "name": "OneWayGriefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2006, - "src": "271:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - } - }, - "id": 2022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "267:20:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - ], - "id": 2019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "259:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "259:29:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "232:56:3" - }, - { - "assignments": [ - 2026 - ], - "declarations": [ - { - "constant": false, - "id": 2026, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "327:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 2025, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "327:6:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2034, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "41677265656d656e74", - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "372:11:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - }, - "value": "Agreement" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_58700d6eb0ceb31a131b85e7f5bb82f475d57b1cb5e97d359a52e46933bf4000", - "typeString": "literal_string \"Agreement\"" - } - ], - "id": 2029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "366:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 2031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "366:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2028, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "356:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "356:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2027, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "349:6:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 2033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "349:37:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "327:59:3" - }, - { - "assignments": [ - 2036 - ], - "declarations": [ - { - "constant": false, - "id": 2036, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 2048, - "src": "423:25:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2035, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "423:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2038, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c616464726573732c616464726573732c616464726573732c75696e743235362c75696e74382c75696e743235362c627974657329", - "id": 2037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "451:63:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e1a0bb772b9ca049f42446d5db41c2dc65b2f0f3979ff2edba5280e9bba8c031", - "typeString": "literal_string \"(address,address,address,address,uint256,uint8,uint256,bytes)\"" - }, - "value": "(address,address,address,address,uint256,uint8,uint256,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "423:91:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2042, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2014, - "src": "581:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2043, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2018, - "src": "599:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2044, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2026, - "src": "617:12:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 2045, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "631:11:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2039, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "561:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "561:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 2046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "561:82:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2047, - "nodeType": "ExpressionStatement", - "src": "561:82:3" - } - ] - }, - "documentation": null, - "id": 2049, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2014, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 2049, - "src": "153:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2013, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "153:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "152:26:3" - }, - "returnParameters": { - "id": 2016, - "nodeType": "ParameterList", - "parameters": [], - "src": "186:0:3" - }, - "scope": 2192, - "src": "141:509:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2065, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 2064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2051, - "indexed": true, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "679:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "679:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2053, - "indexed": true, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "703:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2055, - "indexed": true, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "733:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2054, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2057, - "indexed": false, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "759:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2056, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "759:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2059, - "indexed": false, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "774:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2058, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "774:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2061, - "indexed": false, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "804:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2060, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "804:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2063, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2065, - "src": "829:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "678:172:3" - }, - "src": "656:195:3" - }, - { - "body": { - "id": 2079, - "nodeType": "Block", - "src": "930:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2072, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "967:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2075, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2067, - "src": "994:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2073, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "978:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "978:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 2076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "978:25:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "967:36:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2078, - "nodeType": "ExpressionStatement", - "src": "967:36:3" - } - ] - }, - "documentation": null, - "id": 2080, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2067, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "873:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2066, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "873:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "872:23:3" - }, - "returnParameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2080, - "src": "912:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "912:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "911:18:3" - }, - "scope": 2192, - "src": "857:153:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2131, - "nodeType": "Block", - "src": "1096:586:3", - "statements": [ - { - "assignments": [ - 2088, - 2090, - 2092, - 2094, - 2096, - 2098, - 2100, - 2102 - ], - "declarations": [ - { - "constant": false, - "id": 2088, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1147:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1147:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2090, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1174:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2089, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1174:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2092, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1204:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1204:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2094, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1232:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1232:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2096, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1266:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2098, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1293:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2097, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1293:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2100, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1344:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1344:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2102, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2131, - "src": "1381:27:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2101, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1381:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2117, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2105, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2082, - "src": "1432:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1443:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2107, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1451:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1459:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1467:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1475:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2111, - "name": "Griefing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6345, - "src": "1483:8:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Griefing_$6345_$", - "typeString": "type(contract Griefing)" - } - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "RatioType", - "nodeType": "MemberAccess", - "referencedDeclaration": 6064, - "src": "1483:18:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_RatioType_$6064_$", - "typeString": "type(enum Griefing.RatioType)" - } - }, - { - "argumentTypes": null, - "id": 2113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1502:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - { - "argumentTypes": null, - "id": 2114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1510:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 2115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1442:74:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_enum$_RatioType_$6064_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(address),type(address),type(uint256),type(enum Griefing.RatioType),type(uint256),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_enum$_RatioType_$6064_$_$_t_type$_t_uint256_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(address),type(address),type(address),type(uint256),type(enum Griefing.RatioType),type(uint256),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 2103, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1421:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1421:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1421:96:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_address_payable_$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_$", - "typeString": "tuple(address payable,address payable,address payable,address payable,uint256,enum Griefing.RatioType,uint256,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1133:384:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2118, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2085, - "src": "1560:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2120, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2088, - "src": "1586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2121, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2090, - "src": "1593:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2122, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "1603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2123, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "1611:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2124, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "1625:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2125, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "1632:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2126, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "1643:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2127, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1660:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2119, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "1571:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory) returns (address)" - } - }, - "id": 2128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1571:104:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1560:115:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2130, - "nodeType": "ExpressionStatement", - "src": "1560:115:3" - } - ] - }, - "documentation": null, - "id": 2132, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2082, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 2132, - "src": "1039:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2081, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1039:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1038:23:3" - }, - "returnParameters": { - "id": 2086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2085, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2132, - "src": "1078:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1078:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1077:18:3" - }, - "scope": 2192, - "src": "1016:666:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "1995:828:3", - "statements": [ - { - "assignments": [ - 2154 - ], - "declarations": [ - { - "constant": false, - "id": 2154, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "2043:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - }, - "typeName": { - "contractScope": null, - "id": 2153, - "name": "OneWayGriefing", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2006, - "src": "2043:14:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2155, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2043:23:3" - }, - { - "assignments": [ - 2157 - ], - "declarations": [ - { - "constant": false, - "id": 2157, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 2190, - "src": "2156:21:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2156, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2156:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2172, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2160, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2154, - "src": "2216:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OneWayGriefing_$2006", - "typeString": "contract OneWayGriefing" - } - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 1708, - "src": "2216:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory) external" - } - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2216:28:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 2163, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "2270:5:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2164, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2308:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2165, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2349:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2166, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "2388:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2167, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2433:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2168, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2144, - "src": "2471:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2169, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "2513:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2170, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2561:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2158, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "2180:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2159, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2180:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 2171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2180:425:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2156:449:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2173, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "2643:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2176, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "2670:8:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2174, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "2654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "2654:15:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 2177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2654:25:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2643:36:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2179, - "nodeType": "ExpressionStatement", - "src": "2643:36:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2181, - "name": "staker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2734:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2182, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2140, - "src": "2742:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2183, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2756:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2184, - "name": "ratio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2766:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2185, - "name": "ratioType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2144, - "src": "2773:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - { - "argumentTypes": null, - "id": 2186, - "name": "countdownLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2146, - "src": "2784:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2801:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2180, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2065, - "src": "2717:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_enum$_RatioType_$6064_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,address,uint256,enum Griefing.RatioType,uint256,bytes memory)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2717:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2189, - "nodeType": "EmitStatement", - "src": "2712:104:3" - } - ] - }, - "documentation": null, - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2134, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1721:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2133, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1721:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2136, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1744:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2135, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1744:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2138, - "name": "staker", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1770:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2137, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1770:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2140, - "name": "counterparty", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1794:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2139, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2142, - "name": "ratio", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1824:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2141, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1824:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2144, - "name": "ratioType", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1847:28:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - }, - "typeName": { - "contractScope": null, - "id": 2143, - "name": "Griefing.RatioType", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6064, - "src": "1847:18:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_RatioType_$6064", - "typeString": "enum Griefing.RatioType" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2146, - "name": "countdownLength", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1894:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1894:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2148, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1927:27:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2147, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1927:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1711:249:3" - }, - "returnParameters": { - "id": 2152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2151, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "1977:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1977:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1976:18:3" - }, - "scope": 2192, - "src": "1688:1135:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2193, - "src": "91:2735:3" - } - ], - "src": "0:2827:3" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.597Z" -} \ No newline at end of file diff --git a/build/Post.json b/build/Post.json deleted file mode 100644 index ca24c846..00000000 --- a/build/Post.json +++ /dev/null @@ -1,3008 +0,0 @@ -{ - "contractName": "Post", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProofHash", - "outputs": [ - { - "name": "proofHash", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getMetadata", - "outputs": [ - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOperator", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isCreator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "proofHash", - "type": "bytes" - }, - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - }, - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "Created", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "StaticMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "VariableMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "status", - "type": "bool" - } - ], - "name": "OperatorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "name": "proofHash", - "type": "bytes" - } - ], - "name": "ProofHashSet", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "proofHash", - "type": "bytes" - }, - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "setVariableMetadata", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5061151c806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637a5b4f59116100665780637a5b4f59146102e3578063923b1762146103d2578063ca6a18c9146103f4578063e7f43c68146105fd578063efd46065146106475761009e565b80630ee2cb10146100a357806327305e83146100ed5780633367cca5146101a857806355e03373146102045780636d70f7ae14610287575b600080fd5b6100ab6106a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a66004803603602081101561010357600080fd5b810190808035906020019064010000000081111561012057600080fd5b82018360208201111561013257600080fd5b8035906020019184600183028401116401000000008311171561015457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610784565b005b6101ea600480360360208110156101be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061081b565b604051808215151515815260200191505060405180910390f35b61020c61083d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024c578082015181840152602081019050610231565b50505050905090810190601f1680156102795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c96004803603602081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061089d565b604051808215151515815260200191505060405180910390f35b6102eb6108dc565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561032f578082015181840152602081019050610314565b50505050905090810190601f16801561035c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6103da610a1d565b604051808215151515815260200191505060405180910390f35b6105fb6004803603608081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104de57600080fd5b8201836020820111156104f057600080fd5b8035906020019184600183028401116401000000008311171561051257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561057557600080fd5b82018360208201111561058757600080fd5b803590602001918460018302840111640100000000831117156105a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a34565b005b610605610cec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106896004803603602081101561065d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d16565b604051808215151515815260200191505060405180910390f35b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b8101908080519060200190929190505050905090565b61078d33610d16565b8061079d575061079c3361081b565b5b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b61081881610d55565b50565b60006108268261089d565b80156108365750610835610a1d565b5b9050919050565b60606108986000604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900460ff1660ff1660ff1681525050610e0b565b905090565b60006108a7610cec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b5050505050915060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b505050505090509091565b6000600260149054906101000a900460ff16905090565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806114be602a913960400191505060405180910390fd5b610ae384610e5c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b2957610b2085610f88565b610b28611106565b5b610b3283611230565b610b3b82610d55565b7fbddaaf7b282a81102d0a8d60ff92a6183f68ada98c4f4362a5a1c31798c8464185858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610c40578082015181840152602081019050610c25565b50505050905090810190601f168015610c6d5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610ca6578082015181840152602081019050610c8b565b50505050905090810190601f168015610cd35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d206106a3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b8060049080519060200190610d6b9291906113cd565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dce578082015181840152602081019050610db3565b50505050905090810190601f168015610dfb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6060816020015182604001518360000151604051602001808460ff1660ff1681526020018360ff1660ff16815260200182815260200193505050506040516020818303038152906040529050919050565b610e6581611355565b600080820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055509050507f7407ed1a5db68d1f1b75b603b6a31410f20a906472eac47876a4573a5fb43f923382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f4a578082015181840152602081019050610f2f565b50505050905090810190601f168015610f775780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816110b7610a1d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61110e610a1d565b15611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600060038054600181600116156101000203166002900490501461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061149d6021913960400191505060405180910390fd5b80600390805190602001906112b59291906113cd565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b838110156113185780820151818401526020810190506112fd565b50505050905090810190601f1680156113455780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61135d61144d565b600080600084806020019051606081101561137757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060405180606001604052808281526020018460ff1681526020018360ff168152509350505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061140e57805160ff191683800117855561143c565b8280016001018555821561143c579182015b8281111561143b578251825591602001919060010190611420565b5b5090506114499190611477565b5090565b604051806060016040528060008019168152602001600060ff168152602001600060ff1681525090565b61149991905b8082111561149557600081600090555060010161147d565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e6765646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582074a97df80549c028a6f381ee5728af431c2c00bb3fe59527790009dc97f48ac564736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80637a5b4f59116100665780637a5b4f59146102e3578063923b1762146103d2578063ca6a18c9146103f4578063e7f43c68146105fd578063efd46065146106475761009e565b80630ee2cb10146100a357806327305e83146100ed5780633367cca5146101a857806355e03373146102045780636d70f7ae14610287575b600080fd5b6100ab6106a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a66004803603602081101561010357600080fd5b810190808035906020019064010000000081111561012057600080fd5b82018360208201111561013257600080fd5b8035906020019184600183028401116401000000008311171561015457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610784565b005b6101ea600480360360208110156101be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061081b565b604051808215151515815260200191505060405180910390f35b61020c61083d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024c578082015181840152602081019050610231565b50505050905090810190601f1680156102795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c96004803603602081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061089d565b604051808215151515815260200191505060405180910390f35b6102eb6108dc565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561032f578082015181840152602081019050610314565b50505050905090810190601f16801561035c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6103da610a1d565b604051808215151515815260200191505060405180910390f35b6105fb6004803603608081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104de57600080fd5b8201836020820111156104f057600080fd5b8035906020019184600183028401116401000000008311171561051257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561057557600080fd5b82018360208201111561058757600080fd5b803590602001918460018302840111640100000000831117156105a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a34565b005b610605610cec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106896004803603602081101561065d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d16565b604051808215151515815260200191505060405180910390f35b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b8101908080519060200190929190505050905090565b61078d33610d16565b8061079d575061079c3361081b565b5b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b61081881610d55565b50565b60006108268261089d565b80156108365750610835610a1d565b5b9050919050565b60606108986000604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900460ff1660ff1660ff1681525050610e0b565b905090565b60006108a7610cec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b5050505050915060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b505050505090509091565b6000600260149054906101000a900460ff16905090565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806114be602a913960400191505060405180910390fd5b610ae384610e5c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b2957610b2085610f88565b610b28611106565b5b610b3283611230565b610b3b82610d55565b7fbddaaf7b282a81102d0a8d60ff92a6183f68ada98c4f4362a5a1c31798c8464185858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610c40578082015181840152602081019050610c25565b50505050905090810190601f168015610c6d5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610ca6578082015181840152602081019050610c8b565b50505050905090810190601f168015610cd35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d206106a3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b8060049080519060200190610d6b9291906113cd565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dce578082015181840152602081019050610db3565b50505050905090810190601f168015610dfb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6060816020015182604001518360000151604051602001808460ff1660ff1681526020018360ff1660ff16815260200182815260200193505050506040516020818303038152906040529050919050565b610e6581611355565b600080820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055509050507f7407ed1a5db68d1f1b75b603b6a31410f20a906472eac47876a4573a5fb43f923382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f4a578082015181840152602081019050610f2f565b50505050905090810190601f168015610f775780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816110b7610a1d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61110e610a1d565b15611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600060038054600181600116156101000203166002900490501461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061149d6021913960400191505060405180910390fd5b80600390805190602001906112b59291906113cd565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b838110156113185780820151818401526020810190506112fd565b50505050905090810190601f1680156113455780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61135d61144d565b600080600084806020019051606081101561137757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060405180606001604052808281526020018460ff1681526020018360ff168152509350505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061140e57805160ff191683800117855561143c565b8280016001018555821561143c579182015b8281111561143b578251825591602001919060010190611420565b5b5090506114499190611477565b5090565b604051806060016040528060008019168152602001600060ff168152602001600060ff1681525090565b61149991905b8082111561149557600081600090555060010161147d565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e6765646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582074a97df80549c028a6f381ee5728af431c2c00bb3fe59527790009dc97f48ac564736f6c634300050a0032", - "sourceMap": "164:1241:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;164:1241:40;;;;;;;", - "deployedSourceMap": "164:1241:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;164:1241:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:232:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1067:335:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1067:335:40;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1067:335:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:335:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:335:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1067:335:40;;;;;;;;;;;;;;;:::i;:::-;;1467:139:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1467:139:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;431:144:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;431:144:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:115:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1250:115:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;711:199:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1371:90:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;329:708:40;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;329:708:40;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;:::i;:::-;;1145:99:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;732:111:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;732:111:34;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;494:232;537:15;676:8;;;;;;;;;;;667:37;;;713:4;667:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:52:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;667:52:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;667:52:34;;;;;;;;;;;;;;;;657:62;;494:232;:::o;1067:335:40:-;1195:30;1214:10;1195:18;:30::i;:::-;:71;;;;1229:37;1255:10;1229:25;:37::i;:::-;1195:71;1187:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:47;1378:16;1348:29;:47::i;:::-;1067:335;:::o;1467:139:30:-;1530:7;1557:18;1568:6;1557:10;:18::i;:::-;:41;;;;;1579:19;:17;:19::i;:::-;1557:41;1549:50;;1467:139;;;:::o;431:144:31:-;476:22;522:46;557:10;522:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;:46::i;:::-;510:58;;431:144;:::o;1250:115:30:-;1307:7;1344:13;:11;:13::i;:::-;1334:23;;:6;:23;;;1326:32;;1250:115;;;:::o;711:199:28:-;755:27;784:29;842:15;825:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;886:17;867:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:199;;:::o;1371:90:30:-;1421:7;1447;;;;;;;;;;;1440:14;;1371:90;:::o;329:708:40:-;200:10:34;189:8;;:21;;;;;;;;;;;;;;;;;;300:15;360:7;348:20;336:32;;399:1;387:8;:13;;;379:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;560:34:40;584:9;560:23;:34::i;:::-;653:1;633:22;;:8;:22;;;629:126;;671:31;693:8;671:21;:31::i;:::-;716:28;:26;:28::i;:::-;629:126;796:43;824:14;796:27;:43::i;:::-;883:47;913:16;883:29;:47::i;:::-;968:62;976:8;986:9;997:14;1013:16;968:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:708;;;;;:::o;1145:99:30:-;1189:16;1228:9;;;;;;;;;;;1217:20;;1145:99;:::o;732:111:34:-;788:7;823:12;:10;:12::i;:::-;813:22;;:6;:22;;;807:29;;732:111;;;:::o;507:175:28:-;607:16;587:17;:36;;;;;;;;;;;;:::i;:::-;;638:37;658:16;638:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;638:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:175;:::o;623:188:29:-;701:12;743:9;:22;;;767:9;:20;;;789:9;:14;;;732:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;732:72:29;;;725:79;;623:188;;;:::o;223:179:31:-;302:43;335:9;302:32;:43::i;:::-;289:10;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;360:35;373:10;385:9;360:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;360:35:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;223:179;:::o;192:215:30:-;272:8;259:21;;:9;;;;;;;;;;;:21;;;;251:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:8;319:9;;:20;;;;;;;;;;;;;;;;;;354:46;370:8;380:19;:17;:19::i;:::-;354:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:215;:::o;735:188::-;792:19;:17;:19::i;:::-;791:20;783:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;855:7;;:14;;;;;;;;;;;;;;;;;;884:32;900:9;;;;;;;;;;;911:4;884:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:188::o;255:246:28:-;365:1;339:15;:22;;;;;;;;;;;;;;;;:27;331:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;414:15;:32;;;;;;;;;;;;:::i;:::-;;461:33;479:14;461:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;461:33:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;255:246;:::o;1044:258:29:-;1113:16;;:::i;:::-;1142:18;1162:16;1180:12;1207:6;1196:41;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1196:41:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:96;;;;;;1254:41;;;;;;;;1264:4;1254:41;;;;1270:12;1254:41;;;;;;1284:10;1254:41;;;;;1247:48;;;;;1044:258;;;:::o;164:1241:40:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/ProofHash.sol\";\nimport \"../modules/Metadata.sol\";\nimport \"../modules/Operated.sol\";\nimport \"../modules/Template.sol\";\n\n\ncontract Post is ProofHash, Operated, Metadata, Template {\n\n event Created(address operator, bytes proofHash, bytes staticMetadata, bytes variableMetadata);\n\n function initialize(\n address operator,\n bytes memory proofHash,\n bytes memory staticMetadata,\n bytes memory variableMetadata\n ) public initializeTemplate() {\n // set storage variables\n ProofHash._setProofHash(proofHash);\n\n // set operator\n if (operator != address(0)) {\n Operated._setOperator(operator);\n Operated._activateOperator();\n }\n\n // set static metadata\n Metadata._setStaticMetadata(staticMetadata);\n\n // set variable metadata\n Metadata._setVariableMetadata(variableMetadata);\n\n // emit event\n emit Created(operator, proofHash, staticMetadata, variableMetadata);\n }\n\n // state functions\n\n function setVariableMetadata(bytes memory variableMetadata) public {\n // only active operator or creator\n require(Template.isCreator(msg.sender) || Operated.isActiveOperator(msg.sender), \"only active operator or creator\");\n\n // set metadata in storage\n Metadata._setVariableMetadata(variableMetadata);\n }\n\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "exportedSymbols": { - "Post": [ - 8438 - ] - }, - "id": 8439, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8331, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:40" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/ProofHash.sol", - "file": "../modules/ProofHash.sol", - "id": 8332, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6676, - "src": "25:34:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 8333, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6413, - "src": "60:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 8334, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6630, - "src": "94:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 8335, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 7681, - "src": "128:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8336, - "name": "ProofHash", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6675, - "src": "181:9:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProofHash_$6675", - "typeString": "contract ProofHash" - } - }, - "id": 8337, - "nodeType": "InheritanceSpecifier", - "src": "181:9:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8338, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "192:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 8339, - "nodeType": "InheritanceSpecifier", - "src": "192:8:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8340, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "202:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 8341, - "nodeType": "InheritanceSpecifier", - "src": "202:8:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8342, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "212:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 8343, - "nodeType": "InheritanceSpecifier", - "src": "212:8:40" - } - ], - "contractDependencies": [ - 6412, - 6469, - 6629, - 6675, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8438, - "linearizedBaseContracts": [ - 8438, - 7680, - 6412, - 6629, - 6675, - 6469 - ], - "name": "Post", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 8353, - "name": "Created", - "nodeType": "EventDefinition", - "parameters": { - "id": 8352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8345, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "242:16:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "242:7:40", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8347, - "indexed": false, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "260:15:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8346, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "260:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8349, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "277:20:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8348, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "277:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8351, - "indexed": false, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "299:22:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8350, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "299:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "241:81:40" - }, - "src": "228:95:40" - }, - { - "body": { - "id": 8409, - "nodeType": "Block", - "src": "517:520:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8369, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "584:9:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8366, - "name": "ProofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6675, - "src": "560:9:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ProofHash_$6675_$", - "typeString": "type(contract ProofHash)" - } - }, - "id": 8368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setProofHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 6661, - "src": "560:23:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "560:34:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8371, - "nodeType": "ExpressionStatement", - "src": "560:34:40" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8372, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "633:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "653:1:40", - "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": 8373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "645:7:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "645:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "633:22:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8389, - "nodeType": "IfStatement", - "src": "629:126:40", - "trueBody": { - "id": 8388, - "nodeType": "Block", - "src": "657:98:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8380, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "693:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8377, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "671:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "671:21:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "671:31:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8382, - "nodeType": "ExpressionStatement", - "src": "671:31:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8383, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "716:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "716:26:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "716:28:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8387, - "nodeType": "ExpressionStatement", - "src": "716:28:40" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8393, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "824:14:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8390, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "796:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "796:27:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "796:43:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8395, - "nodeType": "ExpressionStatement", - "src": "796:43:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8399, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8361, - "src": "913:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8396, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "883:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "883:29:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "883:47:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8401, - "nodeType": "ExpressionStatement", - "src": "883:47:40" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8403, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "976:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8404, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "986:9:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8405, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "997:14:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8406, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8361, - "src": "1013:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8402, - "name": "Created", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8353, - "src": "968:7:40", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory)" - } - }, - "id": 8407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "968:62:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8408, - "nodeType": "EmitStatement", - "src": "963:67:40" - } - ] - }, - "documentation": null, - "id": 8410, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 8364, - "modifierName": { - "argumentTypes": null, - "id": 8363, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "496:18:40", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "496:20:40" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8355, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "358:16:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:40", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8357, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "384:22:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8356, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "384:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8359, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "416:27:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8358, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "416:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8361, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "453:29:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8360, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "453:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "348:140:40" - }, - "returnParameters": { - "id": 8365, - "nodeType": "ParameterList", - "parameters": [], - "src": "517:0:40" - }, - "scope": 8438, - "src": "329:708:40", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8436, - "nodeType": "Block", - "src": "1134:268:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8418, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1214:3:40", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1214:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8416, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1195:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1195:18:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1195:30:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8423, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1255:3:40", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1255:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8421, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1229:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1229:25:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1229:37:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1195:71:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1268:33:40", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8415, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1187:7:40", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1187:115:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8429, - "nodeType": "ExpressionStatement", - "src": "1187:115:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8433, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8412, - "src": "1378:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8430, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1348:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "1348:29:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1348:47:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8435, - "nodeType": "ExpressionStatement", - "src": "1348:47:40" - } - ] - }, - "documentation": null, - "id": 8437, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8412, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8437, - "src": "1096:29:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8411, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1096:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1095:31:40" - }, - "returnParameters": { - "id": 8414, - "nodeType": "ParameterList", - "parameters": [], - "src": "1134:0:40" - }, - "scope": 8438, - "src": "1067:335:40", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8439, - "src": "164:1241:40" - } - ], - "src": "0:1406:40" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "exportedSymbols": { - "Post": [ - 8438 - ] - }, - "id": 8439, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8331, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:40" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/ProofHash.sol", - "file": "../modules/ProofHash.sol", - "id": 8332, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6676, - "src": "25:34:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Metadata.sol", - "file": "../modules/Metadata.sol", - "id": 8333, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6413, - "src": "60:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Operated.sol", - "file": "../modules/Operated.sol", - "id": 8334, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 6630, - "src": "94:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Template.sol", - "file": "../modules/Template.sol", - "id": 8335, - "nodeType": "ImportDirective", - "scope": 8439, - "sourceUnit": 7681, - "src": "128:33:40", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8336, - "name": "ProofHash", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6675, - "src": "181:9:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProofHash_$6675", - "typeString": "contract ProofHash" - } - }, - "id": 8337, - "nodeType": "InheritanceSpecifier", - "src": "181:9:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8338, - "name": "Operated", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6629, - "src": "192:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Operated_$6629", - "typeString": "contract Operated" - } - }, - "id": 8339, - "nodeType": "InheritanceSpecifier", - "src": "192:8:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8340, - "name": "Metadata", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6412, - "src": "202:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Metadata_$6412", - "typeString": "contract Metadata" - } - }, - "id": 8341, - "nodeType": "InheritanceSpecifier", - "src": "202:8:40" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8342, - "name": "Template", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7680, - "src": "212:8:40", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Template_$7680", - "typeString": "contract Template" - } - }, - "id": 8343, - "nodeType": "InheritanceSpecifier", - "src": "212:8:40" - } - ], - "contractDependencies": [ - 6412, - 6469, - 6629, - 6675, - 7680 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8438, - "linearizedBaseContracts": [ - 8438, - 7680, - 6412, - 6629, - 6675, - 6469 - ], - "name": "Post", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 8353, - "name": "Created", - "nodeType": "EventDefinition", - "parameters": { - "id": 8352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8345, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "242:16:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "242:7:40", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8347, - "indexed": false, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "260:15:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8346, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "260:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8349, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "277:20:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8348, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "277:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8351, - "indexed": false, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8353, - "src": "299:22:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8350, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "299:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "241:81:40" - }, - "src": "228:95:40" - }, - { - "body": { - "id": 8409, - "nodeType": "Block", - "src": "517:520:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8369, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "584:9:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8366, - "name": "ProofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6675, - "src": "560:9:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ProofHash_$6675_$", - "typeString": "type(contract ProofHash)" - } - }, - "id": 8368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setProofHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 6661, - "src": "560:23:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "560:34:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8371, - "nodeType": "ExpressionStatement", - "src": "560:34:40" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8376, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8372, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "633:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8374, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "653:1:40", - "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": 8373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "645:7:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8375, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "645:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "633:22:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8389, - "nodeType": "IfStatement", - "src": "629:126:40", - "trueBody": { - "id": 8388, - "nodeType": "Block", - "src": "657:98:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8380, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "693:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 8377, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "671:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6504, - "src": "671:21:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 8381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "671:31:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8382, - "nodeType": "ExpressionStatement", - "src": "671:31:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 8383, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "716:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_activateOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6561, - "src": "716:26:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 8386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "716:28:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8387, - "nodeType": "ExpressionStatement", - "src": "716:28:40" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8393, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "824:14:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8390, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "796:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setStaticMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "796:27:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "796:43:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8395, - "nodeType": "ExpressionStatement", - "src": "796:43:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8399, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8361, - "src": "913:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8396, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "883:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "883:29:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "883:47:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8401, - "nodeType": "ExpressionStatement", - "src": "883:47:40" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8403, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8355, - "src": "976:8:40", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8404, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "986:9:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8405, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "997:14:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8406, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8361, - "src": "1013:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8402, - "name": "Created", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8353, - "src": "968:7:40", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory)" - } - }, - "id": 8407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "968:62:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8408, - "nodeType": "EmitStatement", - "src": "963:67:40" - } - ] - }, - "documentation": null, - "id": 8410, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 8364, - "modifierName": { - "argumentTypes": null, - "id": 8363, - "name": "initializeTemplate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7646, - "src": "496:18:40", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "496:20:40" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8362, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8355, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "358:16:40", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "358:7:40", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8357, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "384:22:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8356, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "384:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8359, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "416:27:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8358, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "416:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8361, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8410, - "src": "453:29:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8360, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "453:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "348:140:40" - }, - "returnParameters": { - "id": 8365, - "nodeType": "ParameterList", - "parameters": [], - "src": "517:0:40" - }, - "scope": 8438, - "src": "329:708:40", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8436, - "nodeType": "Block", - "src": "1134:268:40", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8418, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1214:3:40", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1214:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8416, - "name": "Template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7680, - "src": "1195:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Template_$7680_$", - "typeString": "type(contract Template)" - } - }, - "id": 8417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCreator", - "nodeType": "MemberAccess", - "referencedDeclaration": 7679, - "src": "1195:18:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1195:30:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8423, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11064, - "src": "1255:3:40", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1255:10:40", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 8421, - "name": "Operated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6629, - "src": "1229:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Operated_$6629_$", - "typeString": "type(contract Operated)" - } - }, - "id": 8422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveOperator", - "nodeType": "MemberAccess", - "referencedDeclaration": 6628, - "src": "1229:25:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 8425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1229:37:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1195:71:40", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6f6e6c7920616374697665206f70657261746f72206f722063726561746f72", - "id": 8427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1268:33:40", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - }, - "value": "only active operator or creator" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a21ac40b74a97d71057d90a2d953ad72daa11decf04763e0ec8298e38f085c00", - "typeString": "literal_string \"only active operator or creator\"" - } - ], - "id": 8415, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 11067, - 11068 - ], - "referencedDeclaration": 11068, - "src": "1187:7:40", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1187:115:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8429, - "nodeType": "ExpressionStatement", - "src": "1187:115:40" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8433, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8412, - "src": "1378:16:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8430, - "name": "Metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6412, - "src": "1348:8:40", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Metadata_$6412_$", - "typeString": "type(contract Metadata)" - } - }, - "id": 8432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_setVariableMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": 6395, - "src": "1348:29:40", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory)" - } - }, - "id": 8434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1348:47:40", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8435, - "nodeType": "ExpressionStatement", - "src": "1348:47:40" - } - ] - }, - "documentation": null, - "id": 8437, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVariableMetadata", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8412, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8437, - "src": "1096:29:40", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8411, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1096:5:40", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1095:31:40" - }, - "returnParameters": { - "id": 8414, - "nodeType": "ParameterList", - "parameters": [], - "src": "1134:0:40" - }, - "scope": 8438, - "src": "1067:335:40", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8439, - "src": "164:1241:40" - } - ], - "src": "0:1406:40" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.487Z" -} \ No newline at end of file diff --git a/build/Post_Factory.json b/build/Post_Factory.json deleted file mode 100644 index 7e1152df..00000000 --- a/build/Post_Factory.json +++ /dev/null @@ -1,4320 +0,0 @@ -{ - "contractName": "Post_Factory", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getTemplate", - "outputs": [ - { - "name": "template", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "instance", - "type": "address" - } - ], - "name": "getInstanceCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceRegistry", - "outputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitdataABI", - "outputs": [ - { - "name": "initdataABI", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "proofHash", - "type": "bytes" - }, - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - }, - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "ExplicitInitData", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "callData", - "type": "bytes" - } - ], - "name": "InstanceCreated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "callData", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "initdata", - "type": "bytes" - } - ], - "name": "createEncoded", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "proofHash", - "type": "bytes" - }, - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "createExplicit", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b506040516200362e3803806200362e833981810160405260208110156200003757600080fd5b8101908080519060200190929190505050600060405162000058906200030c565b604051809103906000f08015801562000075573d6000803e3d6000fd5b50905060006040518060400160405280600481526020017f506f73740000000000000000000000000000000000000000000000000000000081525080519060200120905060606040518060400160405280601b81526020017f28616464726573732c62797465732c62797465732c627974657329000000000081525090506200010c848484846200011660201b620017fd1760201c565b50505050620003c9565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060039080519060200190620001b09291906200031a565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f857600080fd5b505afa1580156200020d573d6000803e3d6000fd5b505050506040513d60208110156200022457600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614620002e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b61153c80620020f283390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200035d57805160ff19168380011785556200038e565b828001600101855582156200038e579182015b828111156200038d57825182559160200191906001019062000370565b5b5090506200039d9190620003a1565b5090565b620003c691905b80821115620003c2576000816000905550600101620003a8565b5090565b90565b611d1980620003d96000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e114610571578063ae34325c146105f4578063b71f2e7214610612578063cf5ba53f1461069f578063d35fdd791461079a578063ebd348de146107f9576100b4565b80631361552e146100b957806318c2f4cf14610302578063321c48f21461035e5780636bf71982146103a85780636f8d11e61461042c578063a5e1390414610527575b600080fd5b6102c0600480360360808110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561010c57600080fd5b82018360208201111561011e57600080fd5b8035906020019184600183028401116401000000008311171561014057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101a357600080fd5b8201836020820111156101b557600080fd5b803590602001918460018302840111640100000000831117156101d757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184600183028401116401000000008311171561026e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610867565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61030a610c2f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610366610c46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ea600480360360208110156103be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e56004803603602081101561044257600080fd5b810190808035906020019064010000000081111561045f57600080fd5b82018360208201111561047157600080fd5b8035906020019184600183028401116401000000008311171561049357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610cd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052f610e10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610579610e3a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b957808201518184015260208101905061059e565b50505050905090810190601f1680156105e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105fc610edc565b6040518082815260200191505060405180910390f35b6106486004803603604081101561062857600080fd5b810190808035906020019092919080359060200190929190505050610ee8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561068b578082015181840152602081019050610670565b505050509050019250505060405180910390f35b610758600480360360208110156106b557600080fd5b81019080803590602001906401000000008111156106d257600080fd5b8201836020820111156106e457600080fd5b8035906020019184600183028401116401000000008311171561070657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611099565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107a26110ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107e55780820151818401526020810190506107ca565b505050509050019250505060405180910390f35b6108256004803603602081101561080f57600080fd5b8101908080359060200190929190505050611139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060608173ffffffffffffffffffffffffffffffffffffffff1663ca6a18c9905060e01b87878787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561090e5780820151818401526020810190506108f3565b50505050905090810190601f16801561093b5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610974578082015181840152602081019050610959565b50505050905090810190601f1680156109a15780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b50975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610a79816111f3565b92507f3bee4023a38d9b593332daa07d4eed822721c3959ef23b236aa8a375a35dd29e87878787604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610b1a578082015181840152602081019050610aff565b50505050905090810190601f168015610b475780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610b80578082015181840152602081019050610b65565b50505050905090810190601f168015610bad5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610be6578082015181840152602081019050610bcb565b50505050905090810190601f168015610c135780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050949350505050565b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806060806060858060200190516080811015610cf657600080fd5b81019080805190602001909291908051640100000000811115610d1857600080fd5b82810190506020810184811115610d2e57600080fd5b8151856001820283011164010000000082111715610d4b57600080fd5b50509291906020018051640100000000811115610d6757600080fd5b82810190506020810184811115610d7d57600080fd5b8151856001820283011164010000000082111715610d9a57600080fd5b50509291906020018051640100000000811115610db657600080fd5b82810190506020810184811115610dcc57600080fd5b8151856001820283011164010000000082111715610de957600080fd5b50509291905050509350935093509350610e0584848484610867565b945050505050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed25780601f10610ea757610100808354040283529160200191610ed2565b820191906000526020600020905b815481529060010190602001808311610eb557829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611cc06025913960400191505060405180910390fd5b600080549050821115610fbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610ff05781602001602082028038833980820191505090505b50905060008490505b8381101561108e576000818154811061100e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061104757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff9565b508091505092915050565b60006110a4826111f3565b9050919050565b6060600080548060200260200160405190810160405280929190818152602001828054801561112f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116110e5575b5050505050905090565b6000808054905082106111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b600082815481106111c157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611206611200610c46565b836114ac565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f4610e10565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561146d578082015181840152602081019050611452565b50505050905090810190601f16801561149a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b60006060604051806020016114c0906117f0565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561154b578082015181840152602081019050611530565b50505050905090810190601f1680156115785780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b602083106115c357805182526020820191506020810190506020830392506115a0565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061161457805182526020820191506020810190506020830392506115f1565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290506116548161165d565b91505092915050565b60008061166983611690565b50905082602001835182818334f5935083611688573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b6001156117e8573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b905060008114156117db576117e8565b81806001019250506116a7565b505050915091565b61022d80611a9383390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906118959291906119ed565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118dc57600080fd5b505afa1580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a2e57805160ff1916838001178555611a5c565b82800160010185558215611a5c579182015b82811115611a5b578251825591602001919060010190611a40565b5b509050611a699190611a6d565b5090565b611a8f91905b80821115611a8b576000816000905550600101611a73565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a72305820cea46dbda4e59bfa4e49d204dea4ade7cd61647fc826fb176f2b812ece5cefb764736f6c634300050a0032608060405234801561001057600080fd5b5061151c806100206000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80637a5b4f59116100665780637a5b4f59146102e3578063923b1762146103d2578063ca6a18c9146103f4578063e7f43c68146105fd578063efd46065146106475761009e565b80630ee2cb10146100a357806327305e83146100ed5780633367cca5146101a857806355e03373146102045780636d70f7ae14610287575b600080fd5b6100ab6106a3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101a66004803603602081101561010357600080fd5b810190808035906020019064010000000081111561012057600080fd5b82018360208201111561013257600080fd5b8035906020019184600183028401116401000000008311171561015457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610784565b005b6101ea600480360360208110156101be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061081b565b604051808215151515815260200191505060405180910390f35b61020c61083d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024c578082015181840152602081019050610231565b50505050905090810190601f1680156102795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c96004803603602081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061089d565b604051808215151515815260200191505060405180910390f35b6102eb6108dc565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561032f578082015181840152602081019050610314565b50505050905090810190601f16801561035c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6103da610a1d565b604051808215151515815260200191505060405180910390f35b6105fb6004803603608081101561040a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561044757600080fd5b82018360208201111561045957600080fd5b8035906020019184600183028401116401000000008311171561047b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104de57600080fd5b8201836020820111156104f057600080fd5b8035906020019184600183028401116401000000008311171561051257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561057557600080fd5b82018360208201111561058757600080fd5b803590602001918460018302840111640100000000831117156105a957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a34565b005b610605610cec565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106896004803603602081101561065d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d16565b604051808215151515815260200191505060405180910390f35b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561074457600080fd5b505afa158015610758573d6000803e3d6000fd5b505050506040513d602081101561076e57600080fd5b8101908080519060200190929190505050905090565b61078d33610d16565b8061079d575061079c3361081b565b5b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b61081881610d55565b50565b60006108268261089d565b80156108365750610835610a1d565b5b9050919050565b60606108986000604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900460ff1660ff1660ff1681525050610e0b565b905090565b60006108a7610cec565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60608060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109755780601f1061094a57610100808354040283529160200191610975565b820191906000526020600020905b81548152906001019060200180831161095857829003601f168201915b5050505050915060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b505050505090509091565b6000600260149054906101000a900460ff16905090565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806114be602a913960400191505060405180910390fd5b610ae384610e5c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b2957610b2085610f88565b610b28611106565b5b610b3283611230565b610b3b82610d55565b7fbddaaf7b282a81102d0a8d60ff92a6183f68ada98c4f4362a5a1c31798c8464185858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610bda578082015181840152602081019050610bbf565b50505050905090810190601f168015610c075780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610c40578082015181840152602081019050610c25565b50505050905090810190601f168015610c6d5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610ca6578082015181840152602081019050610c8b565b50505050905090810190601f168015610cd35780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d206106a3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b8060049080519060200190610d6b9291906113cd565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dce578082015181840152602081019050610db3565b50505050905090810190601f168015610dfb5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6060816020015182604001518360000151604051602001808460ff1660ff1681526020018360ff1660ff16815260200182815260200193505050506040516020818303038152906040529050919050565b610e6581611355565b600080820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055509050507f7407ed1a5db68d1f1b75b603b6a31410f20a906472eac47876a4573a5fb43f923382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610f4a578082015181840152602081019050610f2f565b50505050905090810190601f168015610f775780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561104c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d816110b7610a1d565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b61110e610a1d565b15611181576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b600060038054600181600116156101000203166002900490501461129f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061149d6021913960400191505060405180910390fd5b80600390805190602001906112b59291906113cd565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b838110156113185780820151818401526020810190506112fd565b50505050905090810190601f1680156113455780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b61135d61144d565b600080600084806020019051606081101561137757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060405180606001604052808281526020018460ff1681526020018360ff168152509350505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061140e57805160ff191683800117855561143c565b8280016001018555821561143c579182015b8281111561143b578251825591602001919060010190611420565b5b5090506114499190611477565b5090565b604051806060016040528060008019168152602001600060ff168152602001600060ff1681525090565b61149991905b8082111561149557600081600090555060010161147d565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e6765646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582074a97df80549c028a6f381ee5728af431c2c00bb3fe59527790009dc97f48ac564736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a61352e111610071578063a61352e114610571578063ae34325c146105f4578063b71f2e7214610612578063cf5ba53f1461069f578063d35fdd791461079a578063ebd348de146107f9576100b4565b80631361552e146100b957806318c2f4cf14610302578063321c48f21461035e5780636bf71982146103a85780636f8d11e61461042c578063a5e1390414610527575b600080fd5b6102c0600480360360808110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561010c57600080fd5b82018360208201111561011e57600080fd5b8035906020019184600183028401116401000000008311171561014057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101a357600080fd5b8201836020820111156101b557600080fd5b803590602001918460018302840111640100000000831117156101d757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023a57600080fd5b82018360208201111561024c57600080fd5b8035906020019184600183028401116401000000008311171561026e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610867565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61030a610c2f565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610366610c46565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103ea600480360360208110156103be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e56004803603602081101561044257600080fd5b810190808035906020019064010000000081111561045f57600080fd5b82018360208201111561047157600080fd5b8035906020019184600183028401116401000000008311171561049357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610cd9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61052f610e10565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610579610e3a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b957808201518184015260208101905061059e565b50505050905090810190601f1680156105e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105fc610edc565b6040518082815260200191505060405180910390f35b6106486004803603604081101561062857600080fd5b810190808035906020019092919080359060200190929190505050610ee8565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561068b578082015181840152602081019050610670565b505050509050019250505060405180910390f35b610758600480360360208110156106b557600080fd5b81019080803590602001906401000000008111156106d257600080fd5b8201836020820111156106e457600080fd5b8035906020019184600183028401116401000000008311171561070657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611099565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6107a26110ab565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107e55780820151818401526020810190506107ca565b505050509050019250505060405180910390f35b6108256004803603602081101561080f57600080fd5b8101908080359060200190929190505050611139565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060608173ffffffffffffffffffffffffffffffffffffffff1663ca6a18c9905060e01b87878787604051602401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101561090e5780820151818401526020810190506108f3565b50505050905090810190601f16801561093b5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610974578082015181840152602081019050610959565b50505050905090810190601f1680156109a15780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b50975050505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050610a79816111f3565b92507f3bee4023a38d9b593332daa07d4eed822721c3959ef23b236aa8a375a35dd29e87878787604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610b1a578082015181840152602081019050610aff565b50505050905090810190601f168015610b475780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610b80578082015181840152602081019050610b65565b50505050905090810190601f168015610bad5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610be6578082015181840152602081019050610bcb565b50505050905090810190601f168015610c135780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050949350505050565b6000600460149054906101000a900460e01b905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806060806060858060200190516080811015610cf657600080fd5b81019080805190602001909291908051640100000000811115610d1857600080fd5b82810190506020810184811115610d2e57600080fd5b8151856001820283011164010000000082111715610d4b57600080fd5b50509291906020018051640100000000811115610d6757600080fd5b82810190506020810184811115610d7d57600080fd5b8151856001820283011164010000000082111715610d9a57600080fd5b50509291906020018051640100000000811115610db657600080fd5b82810190506020810184811115610dcc57600080fd5b8151856001820283011164010000000082111715610de957600080fd5b50509291905050509350935093509350610e0584848484610867565b945050505050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ed25780601f10610ea757610100808354040283529160200191610ed2565b820191906000526020600020905b815481529060010190602001808311610eb557829003601f168201915b5050505050905090565b60008080549050905090565b6060818310610f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611cc06025913960400191505060405180910390fd5b600080549050821115610fbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f656e6420696e646578206f7574206f662072616e67650000000000000000000081525060200191505060405180910390fd5b6060838303604051908082528060200260200182016040528015610ff05781602001602082028038833980820191505090505b50905060008490505b8381101561108e576000818154811061100e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828683038151811061104757fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff9565b508091505092915050565b60006110a4826111f3565b9050919050565b6060600080548060200260200160405190810160405280929190818152602001828054801561112f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116110e5575b5050505050905090565b6000808054905082106111b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f696e646578206f7574206f662072616e6765000000000000000000000000000081525060200191505060405180910390fd5b600082815481106111c157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000611206611200610c46565b836114ac565b905060008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505033600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112f4610e10565b73ffffffffffffffffffffffffffffffffffffffff1663bba83f64823360006040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018267ffffffffffffffff1669ffffffffffffffffffff1681526020019350505050600060405180830381600087803b1580156113c557600080fd5b505af11580156113d9573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fab60131c1462939275d0fd3738e07ab853e22af6296cf75e71bbdf3a497791a2846040518080602001828103825283818151815260200191508051906020019080838360005b8381101561146d578082015181840152602081019050611452565b50505050905090810190601f16801561149a5780820380516001836020036101000a031916815260200191505b509250505060405180910390a3919050565b60006060604051806020016114c0906117f0565b6020820181038252601f19601f820116604052508484604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561154b578082015181840152602081019050611530565b50505050905090810190601f1680156115785780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040526040516020018083805190602001908083835b602083106115c357805182526020820191506020810190506020830392506115a0565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061161457805182526020820191506020810190506020830392506115f1565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405290506116548161165d565b91505092915050565b60008061166983611690565b50905082602001835182818334f5935083611688573d6000803e3d6000fd5b505050919050565b600080600083805190602001209050600080905060005b6001156117e8573382604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018281526020019250505060405160208183030381529060405280519060200120945060ff60f81b30868560405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060001c9350833b905060008114156117db576117e8565b81806001019250506116a7565b505050915091565b61022d80611a9383390190565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600390805190602001906118959291906119ed565b508373ffffffffffffffffffffffffffffffffffffffff166318c2f4cf6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118dc57600080fd5b505afa1580156118f0573d6000803e3d6000fd5b505050506040513d602081101561190657600080fd5b81019080805190602001909291905050507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f696e636f727265637420696e7374616e6365207479706500000000000000000081525060200191505060405180910390fd5b81600460146101000a81548163ffffffff021916908360e01c021790555050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a2e57805160ff1916838001178555611a5c565b82800160010185558215611a5c579182015b82811115611a5b578251825591602001919060010190611a40565b5b509050611a699190611a6d565b5090565b611a8f91905b80821115611a8b576000816000905550600101611a73565b5090565b9056fe608060405260405161022d38038061022d8339818101604052604081101561002657600080fd5b8101908080519060200190929190805164010000000081111561004857600080fd5b8281019050602081018481111561005e57600080fd5b815185600182028301116401000000008211171561007b57600080fd5b505092919050505060008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b602083106100d057805182526020820191506020810190506020830392506100ad565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610130576040519150601f19603f3d011682016040523d82523d6000602084013e610135565b606091505b5050905080610148573d6000803e3d6000fd5b606069363d3d373d3d3d363d7360b01b846e5af43d82803e903d91602b57fd5bf360881b604051602001808475ffffffffffffffffffffffffffffffffffffffffffff191675ffffffffffffffffffffffffffffffffffffffffffff19168152600a018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018270ffffffffffffffffffffffffffffffffff191670ffffffffffffffffffffffffffffffffff19168152600f0193505050506040516020818303038152906040529050602d81602001f3fe7374617274496e646578206d757374206265206c657373207468616e20656e64496e646578a265627a7a72305820cea46dbda4e59bfa4e49d204dea4ade7cd61647fc826fb176f2b812ece5cefb764736f6c634300050a0032", - "sourceMap": "81:1995:41:-;;;121:460;8:9:-1;5:2;;;30:1;27;20:12;5:2;121:460:41;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;121:460:41;;;;;;;;;;;;;;;;212:24;247:10;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;247:10:41;212:46;;297:19;336:13;;;;;;;;;;;;;;;;;326:24;;;;;;297:54;;388:25;:57;;;;;;;;;;;;;;;;;;;492:82;512:16;530;548:12;562:11;492:19;;;;;:82;;:::i;:::-;121:460;;;;81:1995;;545:574:26;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;81:1995:41:-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "81:1995:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;81:1995:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:752;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1321:752:41;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1321:752:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1321:752:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1321:752:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1321:752:41;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1321:752:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1321:752:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1321:752:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1321:752:41;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1321:752:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1321:752:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1321:752:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1321:752:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1900:114:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;2280:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1757:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1757:137:26;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;856:459:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;856:459:41;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;856:459:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;856:459:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;856:459:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;856:459:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2143:131:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2020:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2020:117:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2393:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2872:633;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2872:633:26;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2872:633:26;;;;;;;;;;;;;;;;;697:153:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;697:153:41;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;697:153:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;697:153:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;697:153:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;697:153:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2697:112:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2697:112:26;;;;;;;;;;;;;;;;;2505:186;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2505:186:26;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1321:752:41;1501:16;1567:13;1670:21;1730:8;:19;;;:28;;;;1784:8;1806:9;1829:14;1857:16;1694:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1694:189:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1694:189:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1694:189:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1694:189:41;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;1694:189:41;1670:213;;1932:25;1948:8;1932:15;:25::i;:::-;1921:36;;1995:71;2012:8;2022:9;2033:14;2049:16;1995:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1995:71:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1995:71:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1995:71:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:752;;;;;;;;:::o;1900:114:26:-;1948:19;1994:13;;;;;;;;;;;1979:28;;1900:114;:::o;2280:107::-;2324:16;2363:17;;;;;;;;;;;2352:28;;2280:107;:::o;1757:137::-;1824:15;1861:16;:26;1878:8;1861:26;;;;;;;;;;;;;;;;;;;;;;;;;1851:36;;1757:137;;;:::o;856:459:41:-;918:16;987;1017:22;1053:27;1094:29;1147:8;1136:49;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1136:49:41;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1136:49:41;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1136:49:41;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;1136:49:41;;;;;;973:212;;;;;;;;1239:69;1254:8;1264:9;1275:14;1291:16;1239:14;:69::i;:::-;1228:80;;856:459;;;;;;;:::o;2143:131:26:-;2195:24;2250:17;;;;;;;;;;;2231:36;;2143:131;:::o;2020:117::-;2067:25;2118:12;2104:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:117;:::o;2393:106::-;2442:13;2475:10;:17;;;;2467:25;;2393:106;:::o;2872:633::-;2962:26;3021:8;3008:10;:21;3000:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:10;:17;;;;3089:8;:29;;3081:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3202:22;3252:10;3241:8;:21;3227:36;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;3227:36:26;;;;3202:61;;3329:9;3341:10;3329:22;;3324:110;3357:8;3353:1;:12;3324:110;;;3410:10;3421:1;3410:13;;;;;;;;;;;;;;;;;;;;;;;;;3386:5;3396:10;3392:1;:14;3386:21;;;;;;;;;;;;;:37;;;;;;;;;;;3367:3;;;;;;;3324:110;;;;3493:5;3481:17;;2872:633;;;;;:::o;697:153:41:-;752:16;818:25;834:8;818:15;:25::i;:::-;807:36;;697:153;;;:::o;2697:112:26:-;2742:26;2792:10;2780:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2697:112;:::o;2505:186::-;2562:16;2606:10;:17;;;;2598:5;:25;2590:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2667:10;2678:5;2667:17;;;;;;;;;;;;;;;;;;;;;;;;;2656:28;;2505:186;;;:::o;1150:601::-;1208:16;1327:39;1342:13;:11;:13::i;:::-;1357:8;1327:14;:39::i;:::-;1316:50;;1417:10;1433:8;1417:25;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1417:25:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:10;1484:16;:26;1501:8;1484:26;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;1596:21;:19;:21::i;:::-;1586:41;;;1628:8;1638:10;1657:1;1586:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1586:74:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1586:74:26;;;;1723:10;1697:47;;1713:8;1697:47;;;1735:8;1697:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1697:47:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1150:601;;;:::o;1848:448:12:-;1954:23;2065:21;2113:24;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;87:2;83:7;78:2;73:3;69:12;65:26;61:2;54:38;2113:24:12;2156:13;2171:22;2145:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2145:49:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2145::12;;;2089:111;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2089:111:12;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2089:111:12;;;2065:135;;2268:23;2282:8;2268:13;:23::i;:::-;2250:41;;1848:448;;;;;:::o;3763:1009::-;3834:23;3947:12;3965:27;3983:8;3965:17;:27::i;:::-;3946:46;;;4046:8;4040:4;4036:19;4117:8;4111:15;4487:4;4410:12;4332;4251:9;4188:371;4169:390;;4657:15;4647:2;;4705:14;4702:1;4699;4684:36;4739:14;4736:1;4729:25;4647:2;4008:760;;;;;;:::o;4970:1612::-;5050:12;5064:14;5157:20;5190:8;5180:19;;;;;;5157:42;;5278:13;5294:1;5278:17;;5360:16;5383:1195;5390:4;5383:1195;;;5499:10;5511:5;5482:35;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5482:35:12;;;5472:46;;;;;;5465:53;;5914:4;5907:12;;5984:4;6052;6119:12;5829:367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5829:367:12;;;5752:458;;;;;;5673:549;;5527:713;;6360:6;6348:19;6336:31;;6466:1;6454:8;:13;6450:43;;;6479:5;;6450:43;6564:7;;;;;;;5383:1195;;;4970:1612;;;;;;:::o;81:1995:41:-;;;;;;;;:::o;545:574:26:-;738:16;718:17;;:36;;;;;;;;;;;;;;;;;;814:16;794:17;;:36;;;;;;;;;;;;;;;;;;882:11;867:12;:26;;;;;;;;;;;;:::i;:::-;;983:16;973:43;;;:45;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;973:45:26;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;973:45:26;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;973:45:26;;;;;;;;;;;;;;;;957:61;;;:12;:61;;;;949:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1100:12;1084:13;;:28;;;;;;;;;;;;;;;;;;545:574;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../modules/Factory.sol\";\nimport \"./Post.sol\";\n\n\ncontract Post_Factory is Factory {\n\n constructor(address instanceRegistry) public {\n // deploy template contract\n address templateContract = address(new Post());\n // set instance type\n bytes4 instanceType = bytes4(keccak256(bytes('Post')));\n // set initdataABI\n string memory initdataABI = '(address,bytes,bytes,bytes)';\n // initialize factory params\n Factory._initialize(instanceRegistry, templateContract, instanceType, initdataABI);\n }\n\n event ExplicitInitData(address operator, bytes proofHash, bytes staticMetadata, bytes variableMetadata);\n\n function create(bytes memory callData) public returns (address instance) {\n // deploy instance\n instance = Factory._create(callData);\n }\n\n function createEncoded(bytes memory initdata) public returns (address instance) {\n // decode initdata\n (\n address operator,\n bytes memory proofHash,\n bytes memory staticMetadata,\n bytes memory variableMetadata\n ) = abi.decode(initdata, (address,bytes,bytes,bytes));\n\n // call explicit create\n instance = createExplicit(operator, proofHash, staticMetadata, variableMetadata);\n }\n\n function createExplicit(\n address operator,\n bytes memory proofHash,\n bytes memory staticMetadata,\n bytes memory variableMetadata\n ) public returns (address instance) {\n // declare template in memory\n Post template;\n\n // construct the data payload used when initializing the new contract.\n bytes memory callData = abi.encodeWithSelector(\n template.initialize.selector, // selector\n operator,\n proofHash,\n staticMetadata,\n variableMetadata\n );\n\n // deploy instance\n instance = Factory._create(callData);\n\n // emit event\n emit ExplicitInitData(operator, proofHash, staticMetadata, variableMetadata);\n }\n\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post_Factory.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post_Factory.sol", - "exportedSymbols": { - "Post_Factory": [ - 8586 - ] - }, - "id": 8587, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8440, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:41" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 8441, - "nodeType": "ImportDirective", - "scope": 8587, - "sourceUnit": 6054, - "src": "25:32:41", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "file": "./Post.sol", - "id": 8442, - "nodeType": "ImportDirective", - "scope": 8587, - "sourceUnit": 8439, - "src": "58:20:41", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8443, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "106:7:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 8444, - "nodeType": "InheritanceSpecifier", - "src": "106:7:41" - } - ], - "contractDependencies": [ - 4049, - 6053, - 8438 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8586, - "linearizedBaseContracts": [ - 8586, - 6053, - 4049 - ], - "name": "Post_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8480, - "nodeType": "Block", - "src": "166:415:41", - "statements": [ - { - "assignments": [ - 8450 - ], - "declarations": [ - { - "constant": false, - "id": 8450, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "212:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "212:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8456, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "247:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Post_$8438_$", - "typeString": "function () returns (contract Post)" - }, - "typeName": { - "contractScope": null, - "id": 8452, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "251:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - } - }, - "id": 8454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "247:10:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - ], - "id": 8451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "239:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "239:19:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "212:46:41" - }, - { - "assignments": [ - 8458 - ], - "declarations": [ - { - "constant": false, - "id": 8458, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "297:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 8457, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "297:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8466, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:6:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - } - ], - "id": 8461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "336:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 8463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "336:13:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8460, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "326:9:41", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "326:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "319:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 8465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "319:32:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "297:54:41" - }, - { - "assignments": [ - 8468 - ], - "declarations": [ - { - "constant": false, - "id": 8468, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "388:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8467, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "388:6:41", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8470, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c62797465732c62797465732c627974657329", - "id": 8469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "416:29:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a0392fc52aa0b0fe84f4ebd5ec5bccd6e5f46213c7d0ca2830832cb6852c4bc", - "typeString": "literal_string \"(address,bytes,bytes,bytes)\"" - }, - "value": "(address,bytes,bytes,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "388:57:41" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8474, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8446, - "src": "512:16:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8475, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8450, - "src": "530:16:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8476, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8458, - "src": "548:12:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8477, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8468, - "src": "562:11:41", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8471, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "492:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "492:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 8478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "492:82:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8479, - "nodeType": "ExpressionStatement", - "src": "492:82:41" - } - ] - }, - "documentation": null, - "id": 8481, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8446, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 8481, - "src": "133:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:26:41" - }, - "returnParameters": { - "id": 8448, - "nodeType": "ParameterList", - "parameters": [], - "src": "166:0:41" - }, - "scope": 8586, - "src": "121:460:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 8491, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 8490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8483, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "610:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "610:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8485, - "indexed": false, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "628:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8484, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "628:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8487, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "645:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8486, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "645:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8489, - "indexed": false, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "667:22:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8488, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "667:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "609:81:41" - }, - "src": "587:104:41" - }, - { - "body": { - "id": 8505, - "nodeType": "Block", - "src": "770:80:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8498, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8496, - "src": "807:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8501, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8493, - "src": "834:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8499, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "818:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "818:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:25:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "807:36:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8504, - "nodeType": "ExpressionStatement", - "src": "807:36:41" - } - ] - }, - "documentation": null, - "id": 8506, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8493, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8506, - "src": "713:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8492, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "713:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "712:23:41" - }, - "returnParameters": { - "id": 8497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8496, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8506, - "src": "752:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8495, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "752:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "751:18:41" - }, - "scope": 8586, - "src": "697:153:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8540, - "nodeType": "Block", - "src": "936:379:41", - "statements": [ - { - "assignments": [ - 8514, - 8516, - 8518, - 8520 - ], - "declarations": [ - { - "constant": false, - "id": 8514, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "987:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "987:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8516, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1017:22:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8515, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1017:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8518, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1053:27:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8517, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1053:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8520, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1094:29:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8519, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1094:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8530, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8523, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8508, - "src": "1147:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1158:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1166:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - { - "argumentTypes": null, - "id": 8526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1172:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - { - "argumentTypes": null, - "id": 8527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1178:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 8528, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1157:27:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(bytes storage pointer),type(bytes storage pointer),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(bytes storage pointer),type(bytes storage pointer),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 8521, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1136:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1136:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 8529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1136:49:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_$_t_bytes_memory_$_t_bytes_memory_$", - "typeString": "tuple(address payable,bytes memory,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "973:212:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 8538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8531, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8511, - "src": "1228:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8533, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8514, - "src": "1254:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8534, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "1264:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8535, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8518, - "src": "1275:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8536, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8520, - "src": "1291:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8532, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8585, - "src": "1239:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory) returns (address)" - } - }, - "id": 8537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1239:69:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1228:80:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8539, - "nodeType": "ExpressionStatement", - "src": "1228:80:41" - } - ] - }, - "documentation": null, - "id": 8541, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8508, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 8541, - "src": "879:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8507, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "879:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "878:23:41" - }, - "returnParameters": { - "id": 8512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8511, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8541, - "src": "918:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "918:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "917:18:41" - }, - "scope": 8586, - "src": "856:459:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8584, - "nodeType": "Block", - "src": "1519:554:41", - "statements": [ - { - "assignments": [ - 8555 - ], - "declarations": [ - { - "constant": false, - "id": 8555, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 8584, - "src": "1567:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - }, - "typeName": { - "contractScope": null, - "id": 8554, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "1567:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8556, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1567:13:41" - }, - { - "assignments": [ - 8558 - ], - "declarations": [ - { - "constant": false, - "id": 8558, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8584, - "src": "1670:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8557, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1670:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8561, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8555, - "src": "1730:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 8410, - "src": "1730:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory) external" - } - }, - "id": 8563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1730:28:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8564, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "1784:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8565, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "1806:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8566, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8547, - "src": "1829:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8567, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8549, - "src": "1857:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8559, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1694:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1694:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1694:189:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1670:213:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 8575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8570, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8552, - "src": "1921:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8573, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8558, - "src": "1948:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8571, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "1932:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "1932:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1932:25:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1921:36:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8576, - "nodeType": "ExpressionStatement", - "src": "1921:36:41" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8578, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "2012:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8579, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "2022:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8580, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8547, - "src": "2033:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8581, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8549, - "src": "2049:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8577, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8491, - "src": "1995:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory)" - } - }, - "id": 8582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1995:71:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8583, - "nodeType": "EmitStatement", - "src": "1990:76:41" - } - ] - }, - "documentation": null, - "id": 8585, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8543, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1354:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8542, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1354:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8545, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1380:22:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8544, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1380:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8547, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1412:27:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8546, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1412:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8549, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1449:29:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8548, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1449:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1344:140:41" - }, - "returnParameters": { - "id": 8553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8552, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1501:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8551, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1500:18:41" - }, - "scope": 8586, - "src": "1321:752:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8587, - "src": "81:1995:41" - } - ], - "src": "0:2077:41" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post_Factory.sol", - "exportedSymbols": { - "Post_Factory": [ - 8586 - ] - }, - "id": 8587, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 8440, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:41" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/Factory.sol", - "file": "../modules/Factory.sol", - "id": 8441, - "nodeType": "ImportDirective", - "scope": 8587, - "sourceUnit": 6054, - "src": "25:32:41", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "file": "./Post.sol", - "id": 8442, - "nodeType": "ImportDirective", - "scope": 8587, - "sourceUnit": 8439, - "src": "58:20:41", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 8443, - "name": "Factory", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6053, - "src": "106:7:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Factory_$6053", - "typeString": "contract Factory" - } - }, - "id": 8444, - "nodeType": "InheritanceSpecifier", - "src": "106:7:41" - } - ], - "contractDependencies": [ - 4049, - 6053, - 8438 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 8586, - "linearizedBaseContracts": [ - 8586, - 6053, - 4049 - ], - "name": "Post_Factory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 8480, - "nodeType": "Block", - "src": "166:415:41", - "statements": [ - { - "assignments": [ - 8450 - ], - "declarations": [ - { - "constant": false, - "id": 8450, - "name": "templateContract", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "212:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8449, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "212:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8456, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "247:8:41", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Post_$8438_$", - "typeString": "function () returns (contract Post)" - }, - "typeName": { - "contractScope": null, - "id": 8452, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "251:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - } - }, - "id": 8454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "247:10:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - ], - "id": 8451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "239:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "239:19:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "212:46:41" - }, - { - "assignments": [ - 8458 - ], - "declarations": [ - { - "constant": false, - "id": 8458, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "297:19:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 8457, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "297:6:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8466, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "506f7374", - "id": 8462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:6:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - }, - "value": "Post" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_8933c4cd95e6eadfd99c1fa86bab35013d8e8b2b391ac74fe0d801ae102e1a5a", - "typeString": "literal_string \"Post\"" - } - ], - "id": 8461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "336:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - "id": 8463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "336:13:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8460, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11058, - "src": "326:9:41", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 8464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "326:24:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 8459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "319:6:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes4_$", - "typeString": "type(bytes4)" - }, - "typeName": "bytes4" - }, - "id": 8465, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "319:32:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "297:54:41" - }, - { - "assignments": [ - 8468 - ], - "declarations": [ - { - "constant": false, - "id": 8468, - "name": "initdataABI", - "nodeType": "VariableDeclaration", - "scope": 8480, - "src": "388:25:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8467, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "388:6:41", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8470, - "initialValue": { - "argumentTypes": null, - "hexValue": "28616464726573732c62797465732c62797465732c627974657329", - "id": 8469, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "416:29:41", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a0392fc52aa0b0fe84f4ebd5ec5bccd6e5f46213c7d0ca2830832cb6852c4bc", - "typeString": "literal_string \"(address,bytes,bytes,bytes)\"" - }, - "value": "(address,bytes,bytes,bytes)" - }, - "nodeType": "VariableDeclarationStatement", - "src": "388:57:41" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8474, - "name": "instanceRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8446, - "src": "512:16:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8475, - "name": "templateContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8450, - "src": "530:16:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8476, - "name": "instanceType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8458, - "src": "548:12:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8477, - "name": "initdataABI", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8468, - "src": "562:11:41", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8471, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "492:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 5840, - "src": "492:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes4_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,address,bytes4,string memory)" - } - }, - "id": 8478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "492:82:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8479, - "nodeType": "ExpressionStatement", - "src": "492:82:41" - } - ] - }, - "documentation": null, - "id": 8481, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8447, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8446, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 8481, - "src": "133:24:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8445, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:26:41" - }, - "returnParameters": { - "id": 8448, - "nodeType": "ParameterList", - "parameters": [], - "src": "166:0:41" - }, - "scope": 8586, - "src": "121:460:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 8491, - "name": "ExplicitInitData", - "nodeType": "EventDefinition", - "parameters": { - "id": 8490, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8483, - "indexed": false, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "610:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "610:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8485, - "indexed": false, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "628:15:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8484, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "628:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8487, - "indexed": false, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "645:20:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8486, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "645:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8489, - "indexed": false, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8491, - "src": "667:22:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8488, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "667:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "609:81:41" - }, - "src": "587:104:41" - }, - { - "body": { - "id": 8505, - "nodeType": "Block", - "src": "770:80:41", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8498, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8496, - "src": "807:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8501, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8493, - "src": "834:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8499, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "818:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "818:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:25:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "807:36:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8504, - "nodeType": "ExpressionStatement", - "src": "807:36:41" - } - ] - }, - "documentation": null, - "id": 8506, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8493, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8506, - "src": "713:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8492, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "713:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "712:23:41" - }, - "returnParameters": { - "id": 8497, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8496, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8506, - "src": "752:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8495, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "752:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "751:18:41" - }, - "scope": 8586, - "src": "697:153:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8540, - "nodeType": "Block", - "src": "936:379:41", - "statements": [ - { - "assignments": [ - 8514, - 8516, - 8518, - 8520 - ], - "declarations": [ - { - "constant": false, - "id": 8514, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "987:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "987:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8516, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1017:22:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8515, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1017:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8518, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1053:27:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8517, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1053:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8520, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8540, - "src": "1094:29:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8519, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1094:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8530, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8523, - "name": "initdata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8508, - "src": "1147:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1158:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - { - "argumentTypes": null, - "id": 8525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1166:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - { - "argumentTypes": null, - "id": 8526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1172:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - }, - { - "argumentTypes": null, - "id": 8527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1178:5:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": "bytes" - } - ], - "id": 8528, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1157:27:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(bytes storage pointer),type(bytes storage pointer),type(bytes storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$_t_type$_t_bytes_storage_ptr_$_$", - "typeString": "tuple(type(address),type(bytes storage pointer),type(bytes storage pointer),type(bytes storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 8521, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1136:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1136:10:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 8529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1136:49:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_address_payable_$_t_bytes_memory_$_t_bytes_memory_$_t_bytes_memory_$", - "typeString": "tuple(address payable,bytes memory,bytes memory,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "973:212:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 8538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8531, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8511, - "src": "1228:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8533, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8514, - "src": "1254:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8534, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "1264:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8535, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8518, - "src": "1275:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8536, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8520, - "src": "1291:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8532, - "name": "createExplicit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8585, - "src": "1239:14:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory) returns (address)" - } - }, - "id": 8537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1239:69:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1228:80:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8539, - "nodeType": "ExpressionStatement", - "src": "1228:80:41" - } - ] - }, - "documentation": null, - "id": 8541, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createEncoded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8508, - "name": "initdata", - "nodeType": "VariableDeclaration", - "scope": 8541, - "src": "879:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8507, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "879:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "878:23:41" - }, - "returnParameters": { - "id": 8512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8511, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8541, - "src": "918:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "918:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "917:18:41" - }, - "scope": 8586, - "src": "856:459:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8584, - "nodeType": "Block", - "src": "1519:554:41", - "statements": [ - { - "assignments": [ - 8555 - ], - "declarations": [ - { - "constant": false, - "id": 8555, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 8584, - "src": "1567:13:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - }, - "typeName": { - "contractScope": null, - "id": 8554, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "1567:4:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8556, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1567:13:41" - }, - { - "assignments": [ - 8558 - ], - "declarations": [ - { - "constant": false, - "id": 8558, - "name": "callData", - "nodeType": "VariableDeclaration", - "scope": 8584, - "src": "1670:21:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8557, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1670:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8569, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8561, - "name": "template", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8555, - "src": "1730:8:41", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "initialize", - "nodeType": "MemberAccess", - "referencedDeclaration": 8410, - "src": "1730:19:41", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory) external" - } - }, - "id": 8563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1730:28:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "argumentTypes": null, - "id": 8564, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "1784:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8565, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "1806:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8566, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8547, - "src": "1829:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8567, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8549, - "src": "1857:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8559, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11051, - "src": "1694:3:41", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 8560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1694:22:41", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1694:189:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1670:213:41" - }, - { - "expression": { - "argumentTypes": null, - "id": 8575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8570, - "name": "instance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8552, - "src": "1921:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8573, - "name": "callData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8558, - "src": "1948:8:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8571, - "name": "Factory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6053, - "src": "1932:7:41", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Factory_$6053_$", - "typeString": "type(contract Factory)" - } - }, - "id": 8572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_create", - "nodeType": "MemberAccess", - "referencedDeclaration": 5890, - "src": "1932:15:41", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes memory) returns (address)" - } - }, - "id": 8574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1932:25:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1921:36:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8576, - "nodeType": "ExpressionStatement", - "src": "1921:36:41" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8578, - "name": "operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8543, - "src": "2012:8:41", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8579, - "name": "proofHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8545, - "src": "2022:9:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8580, - "name": "staticMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8547, - "src": "2033:14:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 8581, - "name": "variableMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8549, - "src": "2049:16:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 8577, - "name": "ExplicitInitData", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8491, - "src": "1995:16:41", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,bytes memory,bytes memory,bytes memory)" - } - }, - "id": 8582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1995:71:41", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8583, - "nodeType": "EmitStatement", - "src": "1990:76:41" - } - ] - }, - "documentation": null, - "id": 8585, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createExplicit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8543, - "name": "operator", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1354:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8542, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1354:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8545, - "name": "proofHash", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1380:22:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8544, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1380:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8547, - "name": "staticMetadata", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1412:27:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8546, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1412:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8549, - "name": "variableMetadata", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1449:29:41", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 8548, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1449:5:41", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1344:140:41" - }, - "returnParameters": { - "id": 8553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8552, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 8585, - "src": "1501:16:41", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8551, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:41", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1500:18:41" - }, - "scope": 8586, - "src": "1321:752:41", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 8587, - "src": "81:1995:41" - } - ], - "src": "0:2077:41" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.555Z" -} \ No newline at end of file diff --git a/build/TestPost.json b/build/TestPost.json deleted file mode 100644 index 34839879..00000000 --- a/build/TestPost.json +++ /dev/null @@ -1,522 +0,0 @@ -{ - "contractName": "TestPost", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "setVariableMetadata", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProofHash", - "outputs": [ - { - "name": "proofHash", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "deactivateOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getMetadata", - "outputs": [ - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "hasActiveOperator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "activateOperator", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "operator", - "type": "address" - }, - { - "name": "proofHash", - "type": "bytes" - }, - { - "name": "staticMetadata", - "type": "bytes" - }, - { - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOperator", - "outputs": [ - { - "name": "operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "caller", - "type": "address" - } - ], - "name": "isCreator", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "proofHash", - "type": "bytes" - }, - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - }, - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "Created", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "staticMetadata", - "type": "bytes" - } - ], - "name": "StaticMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "variableMetadata", - "type": "bytes" - } - ], - "name": "VariableMetadataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "name": "status", - "type": "bool" - } - ], - "name": "OperatorUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "name": "proofHash", - "type": "bytes" - } - ], - "name": "ProofHashSet", - "type": "event" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50611683806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80637a5b4f59116100715780637a5b4f5914610303578063923b1762146103f2578063ab66d81414610414578063ca6a18c91461041e578063e7f43c6814610627578063efd4606514610671576100b4565b80630ee2cb10146100b957806327305e83146101035780633367cca5146101be57806355e033731461021a5780636d70f7ae1461029d578063706be4ca146102f9575b600080fd5b6100c16106cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101bc6004803603602081101561011957600080fd5b810190808035906020019064010000000081111561013657600080fd5b82018360208201111561014857600080fd5b8035906020019184600183028401116401000000008311171561016a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107ae565b005b610200600480360360208110156101d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610845565b604051808215151515815260200191505060405180910390f35b610222610867565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610262578082015181840152602081019050610247565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102df600480360360208110156102b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c7565b604051808215151515815260200191505060405180910390f35b610301610906565b005b61030b610910565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103b557808201518184015260208101905061039a565b50505050905090810190601f1680156103e25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6103fa610a51565b604051808215151515815260200191505060405180910390f35b61041c610a68565b005b6106256004803603608081101561043457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561047157600080fd5b82018360208201111561048357600080fd5b803590602001918460018302840111640100000000831117156104a557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460018302840111640100000000831117156105d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a72565b005b61062f610d2a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b36004803603602081101561068757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d54565b604051808215151515815260200191505060405180910390f35b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b8101908080519060200190929190505050905090565b6107b733610d54565b806107c757506107c633610845565b5b610839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b61084281610d93565b50565b6000610850826108c7565b8015610860575061085f610a51565b5b9050919050565b60606108c26000604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900460ff1660ff1660ff1681525050610e49565b905090565b60006108d1610d2a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61090e610e9a565b565b60608060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b5050505050915060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a465780601f10610a1b57610100808354040283529160200191610a46565b820191906000526020600020905b815481529060010190602001808311610a2957829003601f168201915b505050505090509091565b6000600260149054906101000a900460ff16905090565b610a70610fc3565b565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611625602a913960400191505060405180910390fd5b610b21846110ed565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b6757610b5e85611219565b610b66610fc3565b5b610b7083611397565b610b7982610d93565b7fbddaaf7b282a81102d0a8d60ff92a6183f68ada98c4f4362a5a1c31798c8464185858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610c18578082015181840152602081019050610bfd565b50505050905090810190601f168015610c455780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610c7e578082015181840152602081019050610c63565b50505050905090810190601f168015610cab5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610ce4578082015181840152602081019050610cc9565b50505050905090810190601f168015610d115780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d5e6106cd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b8060049080519060200190610da9929190611534565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e0c578082015181840152602081019050610df1565b50505050905090810190601f168015610e395780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6060816020015182604001518360000151604051602001808460ff1660ff1681526020018360ff1660ff16815260200182815260200193505050506040516020818303038152906040529050919050565b610ea2610a51565b610f14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f6e6c79207768656e206f70657261746f72206163746976650000000000000081525060200191505060405180910390fd5b6000600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b610fcb610a51565b1561103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b6110f6816114bc565b600080820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055509050507f7407ed1a5db68d1f1b75b603b6a31410f20a906472eac47876a4573a5fb43f923382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111db5780820151818401526020810190506111c0565b50505050905090810190601f1680156112085780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d81611348610a51565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b6000600380546001816001161561010002031660029004905014611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116046021913960400191505060405180910390fd5b806003908051906020019061141c929190611534565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561147f578082015181840152602081019050611464565b50505050905090810190601f1680156114ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6114c46115b4565b60008060008480602001905160608110156114de57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060405180606001604052808281526020018460ff1681526020018360ff168152509350505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157557805160ff19168380011785556115a3565b828001600101855582156115a3579182015b828111156115a2578251825591602001919060010190611587565b5b5090506115b091906115de565b5090565b604051806060016040528060008019168152602001600060ff168152602001600060ff1681525090565b61160091905b808211156115fc5760008160009055506001016115e4565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e6765646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582039e7c142e210f2b5f74f24e841a218592682220448ff3d5a680caffe2d5805c164736f6c634300050a0032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80637a5b4f59116100715780637a5b4f5914610303578063923b1762146103f2578063ab66d81414610414578063ca6a18c91461041e578063e7f43c6814610627578063efd4606514610671576100b4565b80630ee2cb10146100b957806327305e83146101035780633367cca5146101be57806355e033731461021a5780636d70f7ae1461029d578063706be4ca146102f9575b600080fd5b6100c16106cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101bc6004803603602081101561011957600080fd5b810190808035906020019064010000000081111561013657600080fd5b82018360208201111561014857600080fd5b8035906020019184600183028401116401000000008311171561016a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506107ae565b005b610200600480360360208110156101d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610845565b604051808215151515815260200191505060405180910390f35b610222610867565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610262578082015181840152602081019050610247565b50505050905090810190601f16801561028f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102df600480360360208110156102b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c7565b604051808215151515815260200191505060405180910390f35b610301610906565b005b61030b610910565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561034f578082015181840152602081019050610334565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156103b557808201518184015260208101905061039a565b50505050905090810190601f1680156103e25780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b6103fa610a51565b604051808215151515815260200191505060405180910390f35b61041c610a68565b005b6106256004803603608081101561043457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561047157600080fd5b82018360208201111561048357600080fd5b803590602001918460018302840111640100000000831117156104a557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561050857600080fd5b82018360208201111561051a57600080fd5b8035906020019184600183028401116401000000008311171561053c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561059f57600080fd5b8201836020820111156105b157600080fd5b803590602001918460018302840111640100000000831117156105d357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a72565b005b61062f610d2a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b36004803603602081101561068757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d54565b604051808215151515815260200191505060405180910390f35b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636bf71982306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561076e57600080fd5b505afa158015610782573d6000803e3d6000fd5b505050506040513d602081101561079857600080fd5b8101908080519060200190929190505050905090565b6107b733610d54565b806107c757506107c633610845565b5b610839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6f6e6c7920616374697665206f70657261746f72206f722063726561746f720081525060200191505060405180910390fd5b61084281610d93565b50565b6000610850826108c7565b8015610860575061085f610a51565b5b9050919050565b60606108c26000604051806060016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff1681526020016001820160019054906101000a900460ff1660ff1660ff1681525050610e49565b905090565b60006108d1610d2a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b61090e610e9a565b565b60608060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b5050505050915060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a465780601f10610a1b57610100808354040283529160200191610a46565b820191906000526020600020905b815481529060010190602001808311610a2957829003601f168201915b505050505090509091565b6000600260149054906101000a900460ff16905090565b610a70610fc3565b565b33600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000303b905060008163ffffffff1614610b18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611625602a913960400191505060405180910390fd5b610b21846110ed565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614610b6757610b5e85611219565b610b66610fc3565b5b610b7083611397565b610b7982610d93565b7fbddaaf7b282a81102d0a8d60ff92a6183f68ada98c4f4362a5a1c31798c8464185858585604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019080838360005b83811015610c18578082015181840152602081019050610bfd565b50505050905090810190601f168015610c455780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015610c7e578082015181840152602081019050610c63565b50505050905090810190601f168015610cab5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015610ce4578082015181840152602081019050610cc9565b50505050905090810190601f168015610d115780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610d5e6106cd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b8060049080519060200190610da9929190611534565b507fec391f097a91107044327f7588bc67ac8b9daf871413fc181f768c437c66cda9816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e0c578082015181840152602081019050610df1565b50505050905090810190601f168015610e395780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6060816020015182604001518360000151604051602001808460ff1660ff1681526020018360ff1660ff16815260200182815260200193505050506040516020818303038152906040529050919050565b610ea2610a51565b610f14576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f6f6e6c79207768656e206f70657261746f72206163746976650000000000000081525060200191505060405180910390fd5b6000600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b610fcb610a51565b1561103e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f6f6e6c79207768656e206f70657261746f72206e6f742061637469766500000081525060200191505060405180910390fd5b6001600260146101000a81548160ff0219169083151502179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1565b6110f6816114bc565b600080820151816000015560208201518160010160006101000a81548160ff021916908360ff16021790555060408201518160010160016101000a81548160ff021916908360ff1602179055509050507f7407ed1a5db68d1f1b75b603b6a31410f20a906472eac47876a4573a5fb43f923382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b838110156111db5780820151818401526020810190506111c0565b50505050905090810190601f1680156112085780820380516001836020036101000a031916815260200191505b50935050505060405180910390a150565b8073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f63616e6e6f74207365742073616d65206f70657261746f72000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f966c160e1c4dbc7df8d69af4ace01e9297c3cf016397b7914971f2fbfa32672d81611348610a51565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150565b6000600380546001816001161561010002031660029004905014611406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116046021913960400191505060405180910390fd5b806003908051906020019061141c929190611534565b507fd2bb68a4c0cbd7fabc3f8e787a6e54384db17d54dedeede61c35819f5f49edca816040518080602001828103825283818151815260200191508051906020019080838360005b8381101561147f578082015181840152602081019050611464565b50505050905090810190601f1680156114ac5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6114c46115b4565b60008060008480602001905160608110156114de57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505092509250925060405180606001604052808281526020018460ff1681526020018360ff168152509350505050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061157557805160ff19168380011785556115a3565b828001600101855582156115a3579182015b828111156115a2578251825591602001919060010190611587565b5b5090506115b091906115de565b5090565b604051806060016040528060008019168152602001600060ff168152602001600060ff1681525090565b61160091905b808211156115fc5760008160009055506001016115e4565b5090565b9056fe737461746963206d657461646174612063616e6e6f74206265206368616e6765646d7573742062652063616c6c65642077697468696e20636f6e747261637420636f6e7374727563746f72a265627a7a7230582039e7c142e210f2b5f74f24e841a218592682220448ff3d5a680caffe2d5805c164736f6c634300050a0032", - "sourceMap": "85:45:55:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;85:45:55;;;;;;;", - "deployedSourceMap": "85:45:55:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;85:45:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;494:232:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1067:335:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1067:335:40;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1067:335:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1067:335:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1067:335:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1067:335:40;;;;;;;;;;;;;;;:::i;:::-;;1467:139:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1467:139:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;431:144:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;431:144:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1250:115:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1250:115:30;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;163:84:47;;;:::i;:::-;;711:199:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;711:199:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1371:90:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;311:80:47;;;:::i;:::-;;329:708:40;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;329:708:40;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;329:708:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;329:708:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;329:708:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;329:708:40;;;;;;;;;;;;;;;:::i;:::-;;1145:99:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;732:111:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;732:111:34;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;494:232;537:15;676:8;;;;;;;;;;;667:37;;;713:4;667:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:52:34;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;667:52:34;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;667:52:34;;;;;;;;;;;;;;;;657:62;;494:232;:::o;1067:335:40:-;1195:30;1214:10;1195:18;:30::i;:::-;:71;;;;1229:37;1255:10;1229:25;:37::i;:::-;1195:71;1187:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:47;1378:16;1348:29;:47::i;:::-;1067:335;:::o;1467:139:30:-;1530:7;1557:18;1568:6;1557:10;:18::i;:::-;:41;;;;;1579:19;:17;:19::i;:::-;1557:41;1549:50;;1467:139;;;:::o;431:144:31:-;476:22;522:46;557:10;522:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:34;:46::i;:::-;510:58;;431:144;:::o;1250:115:30:-;1307:7;1344:13;:11;:13::i;:::-;1334:23;;:6;:23;;;1326:32;;1250:115;;;:::o;163:84:47:-;210:30;:28;:30::i;:::-;163:84::o;711:199:28:-;755:27;784:29;842:15;825:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;886:17;867:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;711:199;;:::o;1371:90:30:-;1421:7;1447;;;;;;;;;;;1440:14;;1371:90;:::o;311:80:47:-;356:28;:26;:28::i;:::-;311:80::o;329:708:40:-;200:10:34;189:8;;:21;;;;;;;;;;;;;;;;;;300:15;360:7;348:20;336:32;;399:1;387:8;:13;;;379:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;560:34:40;584:9;560:23;:34::i;:::-;653:1;633:22;;:8;:22;;;629:126;;671:31;693:8;671:21;:31::i;:::-;716:28;:26;:28::i;:::-;629:126;796:43;824:14;796:27;:43::i;:::-;883:47;913:16;883:29;:47::i;:::-;968:62;976:8;986:9;997:14;1013:16;968:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;968:62:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:708;;;;;:::o;1145:99:30:-;1189:16;1228:9;;;;;;;;;;;1217:20;;1145:99;:::o;732:111:34:-;788:7;823:12;:10;:12::i;:::-;813:22;;:6;:22;;;807:29;;732:111;;;:::o;507:175:28:-;607:16;587:17;:36;;;;;;;;;;;;:::i;:::-;;638:37;658:16;638:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;638:37:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;507:175;:::o;623:188:29:-;701:12;743:9;:22;;;767:9;:20;;;789:9;:14;;;732:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;732:72:29;;;725:79;;623:188;;;:::o;929:187:30:-;987:19;:17;:19::i;:::-;979:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1056:5;1046:7;;:15;;;;;;;;;;;;;;;;;;1076:33;1092:9;;;;;;;;;;;1103:5;1076:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:187::o;735:188::-;792:19;:17;:19::i;:::-;791:20;783:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:4;855:7;;:14;;;;;;;;;;;;;;;;;;884:32;900:9;;;;;;;;;;;911:4;884:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;735:188::o;223:179:31:-;302:43;335:9;302:32;:43::i;:::-;289:10;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;360:35;373:10;385:9;360:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;360:35:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;223:179;:::o;192:215:30:-;272:8;259:21;;:9;;;;;;;;;;;:21;;;;251:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:8;319:9;;:20;;;;;;;;;;;;;;;;;;354:46;370:8;380:19;:17;:19::i;:::-;354:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;192:215;:::o;255:246:28:-;365:1;339:15;:22;;;;;;;;;;;;;;;;:27;331:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:14;414:15;:32;;;;;;;;;;;;:::i;:::-;;461:33;479:14;461:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;461:33:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;255:246;:::o;1044:258:29:-;1113:16;;:::i;:::-;1142:18;1162:16;1180:12;1207:6;1196:41;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1196:41:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1141:96;;;;;;1254:41;;;;;;;;1264:4;1254:41;;;;1270:12;1254:41;;;;;;1284:10;1254:41;;;;;1247:48;;;;;1044:258;;;:::o;85:45:55:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.5.0;\n\nimport \"../posts/Post.sol\";\nimport \"./OperatorAccess.sol\";\n\ncontract TestPost is Post, OperatorAccess {\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/test-contracts/TestPost.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/test-contracts/TestPost.sol", - "exportedSymbols": { - "TestPost": [ - 9611 - ] - }, - "id": 9612, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9604, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:55" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "file": "../posts/Post.sol", - "id": 9605, - "nodeType": "ImportDirective", - "scope": 9612, - "sourceUnit": 8439, - "src": "25:27:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/test-contracts/OperatorAccess.sol", - "file": "./OperatorAccess.sol", - "id": 9606, - "nodeType": "ImportDirective", - "scope": 9612, - "sourceUnit": 8857, - "src": "53:30:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9607, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "106:4:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 9608, - "nodeType": "InheritanceSpecifier", - "src": "106:4:55" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9609, - "name": "OperatorAccess", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8856, - "src": "112:14:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OperatorAccess_$8856", - "typeString": "contract OperatorAccess" - } - }, - "id": 9610, - "nodeType": "InheritanceSpecifier", - "src": "112:14:55" - } - ], - "contractDependencies": [ - 6412, - 6469, - 6629, - 6675, - 7680, - 8438, - 8856 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9611, - "linearizedBaseContracts": [ - 9611, - 8856, - 8438, - 7680, - 6412, - 6629, - 6675, - 6469 - ], - "name": "TestPost", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 9612, - "src": "85:45:55" - } - ], - "src": "0:131:55" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/test-contracts/TestPost.sol", - "exportedSymbols": { - "TestPost": [ - 9611 - ] - }, - "id": 9612, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9604, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:55" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/posts/Post.sol", - "file": "../posts/Post.sol", - "id": 9605, - "nodeType": "ImportDirective", - "scope": 9612, - "sourceUnit": 8439, - "src": "25:27:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/test-contracts/OperatorAccess.sol", - "file": "./OperatorAccess.sol", - "id": 9606, - "nodeType": "ImportDirective", - "scope": 9612, - "sourceUnit": 8857, - "src": "53:30:55", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9607, - "name": "Post", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8438, - "src": "106:4:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Post_$8438", - "typeString": "contract Post" - } - }, - "id": 9608, - "nodeType": "InheritanceSpecifier", - "src": "106:4:55" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9609, - "name": "OperatorAccess", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8856, - "src": "112:14:55", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OperatorAccess_$8856", - "typeString": "contract OperatorAccess" - } - }, - "id": 9610, - "nodeType": "InheritanceSpecifier", - "src": "112:14:55" - } - ], - "contractDependencies": [ - 6412, - 6469, - 6629, - 6675, - 7680, - 8438, - 8856 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9611, - "linearizedBaseContracts": [ - 9611, - 8856, - 8438, - 7680, - 6412, - 6629, - 6675, - 6469 - ], - "name": "TestPost", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 9612, - "src": "85:45:55" - } - ], - "src": "0:131:55" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.376Z" -} \ No newline at end of file diff --git a/build/iFactory.json b/build/iFactory.json deleted file mode 100644 index cb037740..00000000 --- a/build/iFactory.json +++ /dev/null @@ -1,1947 +0,0 @@ -{ - "contractName": "iFactory", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "instance", - "type": "address" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": false, - "name": "initABI", - "type": "string" - }, - { - "indexed": false, - "name": "initData", - "type": "bytes" - } - ], - "name": "InstanceCreated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "initData", - "type": "bytes" - } - ], - "name": "create", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInitdataABI", - "outputs": [ - { - "name": "initABI", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceRegistry", - "outputs": [ - { - "name": "instanceRegistry", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getTemplate", - "outputs": [ - { - "name": "template", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "instance", - "type": "address" - } - ], - "name": "getInstanceCreator", - "outputs": [ - { - "name": "creator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n/* TODO: Update eip165 interface\n * bytes4(keccak256('create(bytes)')) == 0xcf5ba53f\n * bytes4(keccak256('getInstanceType()')) == 0x18c2f4cf\n * bytes4(keccak256('getInstanceRegistry()')) == 0xa5e13904\n * bytes4(keccak256('getImplementation()')) == 0xaaf10f42\n *\n * => 0xcf5ba53f ^ 0x18c2f4cf ^ 0xa5e13904 ^ 0xaaf10f42 == 0xd88967b6\n */\n interface iFactory {\n\n event InstanceCreated(address indexed instance, address indexed creator, string initABI, bytes initData);\n\n function create(bytes calldata initData) external returns (address instance);\n function getInitdataABI() external view returns (string memory initABI);\n function getInstanceRegistry() external view returns (address instanceRegistry);\n function getTemplate() external view returns (address template);\n\n function getInstanceCreator(address instance) external view returns (address creator);\n function getInstanceType() external view returns (bytes4 instanceType);\n function getInstanceCount() external view returns (uint256 count);\n function getInstance(uint256 index) external view returns (address instance);\n function getInstances() external view returns (address[] memory instances);\n function getPaginatedInstances(uint256 startIndex, uint256 endIndex) external view returns (address[] memory instances);\n }\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iFactory.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iFactory.sol", - "exportedSymbols": { - "iFactory": [ - 7755 - ] - }, - "id": 7756, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7682, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:35" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 7755, - "linearizedBaseContracts": [ - 7755 - ], - "name": "iFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 7692, - "name": "InstanceCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 7691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7684, - "indexed": true, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "416:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7683, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "416:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7686, - "indexed": true, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "442:23:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7688, - "indexed": false, - "name": "initABI", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "467:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7687, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "467:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7690, - "indexed": false, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "483:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7689, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "483:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "415:83:35" - }, - "src": "394:105:35" - }, - { - "body": null, - "documentation": null, - "id": 7699, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7694, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "522:23:35", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7693, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "522:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "521:25:35" - }, - "returnParameters": { - "id": 7698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7697, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "565:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "565:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "564:18:35" - }, - "scope": 7755, - "src": "506:77:35", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7704, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInitdataABI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7700, - "nodeType": "ParameterList", - "parameters": [], - "src": "612:2:35" - }, - "returnParameters": { - "id": 7703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7702, - "name": "initABI", - "nodeType": "VariableDeclaration", - "scope": 7704, - "src": "638:21:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7701, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "638:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "637:23:35" - }, - "scope": 7755, - "src": "589:72:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7709, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7705, - "nodeType": "ParameterList", - "parameters": [], - "src": "695:2:35" - }, - "returnParameters": { - "id": 7708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7707, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "721:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "721:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "720:26:35" - }, - "scope": 7755, - "src": "667:80:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7714, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getTemplate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7710, - "nodeType": "ParameterList", - "parameters": [], - "src": "773:2:35" - }, - "returnParameters": { - "id": 7713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7712, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 7714, - "src": "799:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7711, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "799:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "798:18:35" - }, - "scope": 7755, - "src": "753:64:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7721, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCreator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7716, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7721, - "src": "852:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7715, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "852:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "851:18:35" - }, - "returnParameters": { - "id": 7720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7719, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7721, - "src": "893:15:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "893:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "892:17:35" - }, - "scope": 7755, - "src": "824:86:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7726, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7722, - "nodeType": "ParameterList", - "parameters": [], - "src": "940:2:35" - }, - "returnParameters": { - "id": 7725, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7724, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "966:19:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 7723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "966:6:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "965:21:35" - }, - "scope": 7755, - "src": "916:71:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7731, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7727, - "nodeType": "ParameterList", - "parameters": [], - "src": "1018:2:35" - }, - "returnParameters": { - "id": 7730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7729, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7731, - "src": "1044:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7728, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1044:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1043:15:35" - }, - "scope": 7755, - "src": "993:66:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7738, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7733, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "1086:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7732, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1086:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1085:15:35" - }, - "returnParameters": { - "id": 7737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7736, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "1124:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1124:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:18:35" - }, - "scope": 7755, - "src": "1065:77:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7744, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7739, - "nodeType": "ParameterList", - "parameters": [], - "src": "1169:2:35" - }, - "returnParameters": { - "id": 7743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7742, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7744, - "src": "1195:26:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1195:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1195:9:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1194:28:35" - }, - "scope": 7755, - "src": "1148:75:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7754, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7746, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1260:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1260:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7748, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1280:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1280:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1259:38:35" - }, - "returnParameters": { - "id": 7753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7752, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1321:26:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1321:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7751, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1321:9:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1320:28:35" - }, - "scope": 7755, - "src": "1229:120:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7756, - "src": "367:985:35" - } - ], - "src": "0:1353:35" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iFactory.sol", - "exportedSymbols": { - "iFactory": [ - 7755 - ] - }, - "id": 7756, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7682, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:35" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 7755, - "linearizedBaseContracts": [ - 7755 - ], - "name": "iFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 7692, - "name": "InstanceCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 7691, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7684, - "indexed": true, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "416:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7683, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "416:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7686, - "indexed": true, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "442:23:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7685, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "442:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7688, - "indexed": false, - "name": "initABI", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "467:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7687, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "467:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7690, - "indexed": false, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 7692, - "src": "483:14:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7689, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "483:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "415:83:35" - }, - "src": "394:105:35" - }, - { - "body": null, - "documentation": null, - "id": 7699, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "create", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7694, - "name": "initData", - "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "522:23:35", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7693, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "522:5:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "521:25:35" - }, - "returnParameters": { - "id": 7698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7697, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7699, - "src": "565:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "565:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "564:18:35" - }, - "scope": 7755, - "src": "506:77:35", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7704, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInitdataABI", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7700, - "nodeType": "ParameterList", - "parameters": [], - "src": "612:2:35" - }, - "returnParameters": { - "id": 7703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7702, - "name": "initABI", - "nodeType": "VariableDeclaration", - "scope": 7704, - "src": "638:21:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7701, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "638:6:35", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "637:23:35" - }, - "scope": 7755, - "src": "589:72:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7709, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceRegistry", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7705, - "nodeType": "ParameterList", - "parameters": [], - "src": "695:2:35" - }, - "returnParameters": { - "id": 7708, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7707, - "name": "instanceRegistry", - "nodeType": "VariableDeclaration", - "scope": 7709, - "src": "721:24:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7706, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "721:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "720:26:35" - }, - "scope": 7755, - "src": "667:80:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7714, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getTemplate", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7710, - "nodeType": "ParameterList", - "parameters": [], - "src": "773:2:35" - }, - "returnParameters": { - "id": 7713, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7712, - "name": "template", - "nodeType": "VariableDeclaration", - "scope": 7714, - "src": "799:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7711, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "799:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "798:18:35" - }, - "scope": 7755, - "src": "753:64:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7721, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCreator", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7716, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7721, - "src": "852:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7715, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "852:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "851:18:35" - }, - "returnParameters": { - "id": 7720, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7719, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7721, - "src": "893:15:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7718, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "893:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "892:17:35" - }, - "scope": 7755, - "src": "824:86:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7726, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7722, - "nodeType": "ParameterList", - "parameters": [], - "src": "940:2:35" - }, - "returnParameters": { - "id": 7725, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7724, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 7726, - "src": "966:19:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 7723, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "966:6:35", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "965:21:35" - }, - "scope": 7755, - "src": "916:71:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7731, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7727, - "nodeType": "ParameterList", - "parameters": [], - "src": "1018:2:35" - }, - "returnParameters": { - "id": 7730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7729, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7731, - "src": "1044:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7728, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1044:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1043:15:35" - }, - "scope": 7755, - "src": "993:66:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7738, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7733, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "1086:13:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7732, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1086:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1085:15:35" - }, - "returnParameters": { - "id": 7737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7736, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7738, - "src": "1124:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1124:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:18:35" - }, - "scope": 7755, - "src": "1065:77:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7744, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7739, - "nodeType": "ParameterList", - "parameters": [], - "src": "1169:2:35" - }, - "returnParameters": { - "id": 7743, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7742, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7744, - "src": "1195:26:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1195:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1195:9:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1194:28:35" - }, - "scope": 7755, - "src": "1148:75:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7754, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7749, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7746, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1260:18:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1260:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7748, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1280:16:35", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1280:7:35", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1259:38:35" - }, - "returnParameters": { - "id": 7753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7752, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "1321:26:35", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7750, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1321:7:35", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7751, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1321:9:35", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1320:28:35" - }, - "scope": 7755, - "src": "1229:120:35", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7756, - "src": "367:985:35" - } - ], - "src": "0:1353:35" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.400Z" -} \ No newline at end of file diff --git a/build/iNMR.json b/build/iNMR.json deleted file mode 100644 index 5f5c10a2..00000000 --- a/build/iNMR.json +++ /dev/null @@ -1,2138 +0,0 @@ -{ - "contractName": "iNMR", - "abi": [ - { - "constant": false, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_oldValue", - "type": "uint256" - }, - { - "name": "_newValue", - "type": "uint256" - } - ], - "name": "changeApproval", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_value", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "numeraiTransfer", - "outputs": [ - { - "name": "ok", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n\ncontract iNMR {\n\n // ERC20\n function totalSupply() external returns (uint256);\n function balanceOf(address _owner) external returns (uint256);\n function allowance(address _owner, address _spender) external returns (uint256);\n\n function transfer(address _to, uint256 _value) external returns (bool ok);\n function transferFrom(address _from, address _to, uint256 _value) external returns (bool ok);\n function approve(address _spender, uint256 _value) external returns (bool ok);\n function changeApproval(address _spender, uint256 _oldValue, uint256 _newValue) external returns (bool ok);\n\n // burn\n function mint(uint256 _value) external returns (bool ok);\n // burnFrom\n function numeraiTransfer(address _to, uint256 _value) external returns (bool ok);\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iNMR.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iNMR.sol", - "exportedSymbols": { - "iNMR": [ - 7835 - ] - }, - "id": 7836, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7757, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:36" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 7835, - "linearizedBaseContracts": [ - 7835 - ], - "name": "iNMR", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 7762, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7758, - "nodeType": "ParameterList", - "parameters": [], - "src": "80:2:36" - }, - "returnParameters": { - "id": 7761, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7760, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "101:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "101:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "100:9:36" - }, - "scope": 7835, - "src": "60:50:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7769, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7764, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 7769, - "src": "134:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "134:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "133:16:36" - }, - "returnParameters": { - "id": 7768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7767, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7769, - "src": "168:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "168:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "167:9:36" - }, - "scope": 7835, - "src": "115:62:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7778, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7774, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7771, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "201:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7770, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "201:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7773, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "217:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7772, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "200:34:36" - }, - "returnParameters": { - "id": 7777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7776, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "253:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "253:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:9:36" - }, - "scope": 7835, - "src": "182:80:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7787, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7780, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "286:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7782, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "299:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "299:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:29:36" - }, - "returnParameters": { - "id": 7786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7785, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "333:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7784, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "333:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "332:9:36" - }, - "scope": 7835, - "src": "268:74:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7798, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7789, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "369:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7791, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "384:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7790, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "384:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7793, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "397:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "397:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "368:44:36" - }, - "returnParameters": { - "id": 7797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7796, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "431:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7795, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "431:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "430:9:36" - }, - "scope": 7835, - "src": "347:93:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7807, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7800, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "462:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7802, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "480:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "480:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:34:36" - }, - "returnParameters": { - "id": 7806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7805, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "514:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7804, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "514:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:9:36" - }, - "scope": 7835, - "src": "445:78:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7818, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "changeApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7809, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "552:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "552:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7811, - "name": "_oldValue", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "570:17:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7810, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "570:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7813, - "name": "_newValue", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "589:17:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "589:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "551:56:36" - }, - "returnParameters": { - "id": 7817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7816, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "626:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7815, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "626:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:9:36" - }, - "scope": 7835, - "src": "528:107:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7825, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7820, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7825, - "src": "667:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "666:16:36" - }, - "returnParameters": { - "id": 7824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7823, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7825, - "src": "701:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7822, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "701:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "700:9:36" - }, - "scope": 7835, - "src": "653:57:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7834, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "numeraiTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7827, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "756:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "756:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7829, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "769:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "769:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "755:29:36" - }, - "returnParameters": { - "id": 7833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7832, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "803:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "803:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "802:9:36" - }, - "scope": 7835, - "src": "731:81:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7836, - "src": "26:788:36" - } - ], - "src": "0:815:36" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iNMR.sol", - "exportedSymbols": { - "iNMR": [ - 7835 - ] - }, - "id": 7836, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7757, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:36" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 7835, - "linearizedBaseContracts": [ - 7835 - ], - "name": "iNMR", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 7762, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7758, - "nodeType": "ParameterList", - "parameters": [], - "src": "80:2:36" - }, - "returnParameters": { - "id": 7761, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7760, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "101:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "101:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "100:9:36" - }, - "scope": 7835, - "src": "60:50:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7769, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7764, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 7769, - "src": "134:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7763, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "134:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "133:16:36" - }, - "returnParameters": { - "id": 7768, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7767, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7769, - "src": "168:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "168:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "167:9:36" - }, - "scope": 7835, - "src": "115:62:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7778, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7774, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7771, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "201:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7770, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "201:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7773, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "217:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7772, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "217:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "200:34:36" - }, - "returnParameters": { - "id": 7777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7776, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7778, - "src": "253:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "253:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:9:36" - }, - "scope": 7835, - "src": "182:80:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7787, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7780, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "286:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7779, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "286:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7782, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "299:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "299:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "285:29:36" - }, - "returnParameters": { - "id": 7786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7785, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7787, - "src": "333:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7784, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "333:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "332:9:36" - }, - "scope": 7835, - "src": "268:74:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7798, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7789, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "369:13:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "369:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7791, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "384:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7790, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "384:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7793, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "397:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7792, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "397:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "368:44:36" - }, - "returnParameters": { - "id": 7797, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7796, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7798, - "src": "431:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7795, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "431:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "430:9:36" - }, - "scope": 7835, - "src": "347:93:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7807, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7800, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "462:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7802, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "480:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "480:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:34:36" - }, - "returnParameters": { - "id": 7806, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7805, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7807, - "src": "514:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7804, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "514:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:9:36" - }, - "scope": 7835, - "src": "445:78:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7818, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "changeApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7814, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7809, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "552:16:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "552:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7811, - "name": "_oldValue", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "570:17:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7810, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "570:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7813, - "name": "_newValue", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "589:17:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "589:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "551:56:36" - }, - "returnParameters": { - "id": 7817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7816, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7818, - "src": "626:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7815, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "626:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "625:9:36" - }, - "scope": 7835, - "src": "528:107:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7825, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7821, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7820, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7825, - "src": "667:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7819, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "666:16:36" - }, - "returnParameters": { - "id": 7824, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7823, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7825, - "src": "701:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7822, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "701:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "700:9:36" - }, - "scope": 7835, - "src": "653:57:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7834, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "numeraiTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7830, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7827, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "756:11:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7826, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "756:7:36", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7829, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "769:14:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "769:7:36", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "755:29:36" - }, - "returnParameters": { - "id": 7833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7832, - "name": "ok", - "nodeType": "VariableDeclaration", - "scope": 7834, - "src": "803:7:36", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7831, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "803:4:36", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "802:9:36" - }, - "scope": 7835, - "src": "731:81:36", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7836, - "src": "26:788:36" - } - ], - "src": "0:815:36" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.415Z" -} \ No newline at end of file diff --git a/build/iRegistry.json b/build/iRegistry.json deleted file mode 100644 index 8c999fab..00000000 --- a/build/iRegistry.json +++ /dev/null @@ -1,3921 +0,0 @@ -{ - "contractName": "iRegistry", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - }, - { - "indexed": false, - "name": "extraData", - "type": "bytes" - } - ], - "name": "FactoryAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "owner", - "type": "address" - }, - { - "indexed": false, - "name": "factory", - "type": "address" - }, - { - "indexed": false, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "FactoryRetired", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "instance", - "type": "address" - }, - { - "indexed": false, - "name": "instanceIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "creator", - "type": "address" - }, - { - "indexed": true, - "name": "factory", - "type": "address" - }, - { - "indexed": true, - "name": "factoryID", - "type": "uint256" - } - ], - "name": "InstanceRegistered", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "name": "addFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "retireFactory", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactoryCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryStatus", - "outputs": [ - { - "name": "status", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryID", - "outputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactoryData", - "outputs": [ - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factoryID", - "type": "uint16" - } - ], - "name": "getFactoryAddress", - "outputs": [ - { - "name": "factory", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "factory", - "type": "address" - } - ], - "name": "getFactory", - "outputs": [ - { - "name": "state", - "type": "uint8" - }, - { - "name": "factoryID", - "type": "uint16" - }, - { - "name": "extraData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedFactories", - "outputs": [ - { - "name": "factories", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "instance", - "type": "address" - }, - { - "name": "creator", - "type": "address" - }, - { - "name": "extraData", - "type": "uint80" - } - ], - "name": "register", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceType", - "outputs": [ - { - "name": "instanceType", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstanceCount", - "outputs": [ - { - "name": "count", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "getInstance", - "outputs": [ - { - "name": "instance", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startIndex", - "type": "uint256" - }, - { - "name": "endIndex", - "type": "uint256" - } - ], - "name": "getPaginatedInstances", - "outputs": [ - { - "name": "instances", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\n\n\ninterface iRegistry {\n\n enum FactoryStatus { Unregistered, Registered, Retired }\n\n event FactoryAdded(address owner, address factory, uint256 factoryID, bytes extraData);\n event FactoryRetired(address owner, address factory, uint256 factoryID);\n event InstanceRegistered(address instance, uint256 instanceIndex, address indexed creator, address indexed factory, uint256 indexed factoryID);\n\n // factory state functions\n\n function addFactory(address factory, bytes calldata extraData ) external;\n function retireFactory(address factory) external;\n\n // factory view functions\n\n function getFactoryCount() external view returns (uint256 count);\n function getFactoryStatus(address factory) external view returns (FactoryStatus status);\n function getFactoryID(address factory) external view returns (uint16 factoryID);\n function getFactoryData(address factory) external view returns (bytes memory extraData);\n function getFactoryAddress(uint16 factoryID) external view returns (address factory);\n function getFactory(address factory) external view returns (FactoryStatus state, uint16 factoryID, bytes memory extraData);\n function getFactories() external view returns (address[] memory factories);\n function getPaginatedFactories(uint256 startIndex, uint256 endIndex) external view returns (address[] memory factories);\n\n // instance state functions\n\n function register(address instance, address creator, uint80 extraData) external;\n\n // instance view functions\n\n function getInstanceType() external view returns (bytes4 instanceType);\n function getInstanceCount() external view returns (uint256 count);\n function getInstance(uint256 index) external view returns (address instance);\n function getInstances() external view returns (address[] memory instances);\n function getPaginatedInstances(uint256 startIndex, uint256 endIndex) external view returns (address[] memory instances);\n}\n", - "sourcePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iRegistry.sol", - "ast": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iRegistry.sol", - "exportedSymbols": { - "iRegistry": [ - 7986 - ] - }, - "id": 7987, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7837, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:37" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 7986, - "linearizedBaseContracts": [ - 7986 - ], - "name": "iRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "iRegistry.FactoryStatus", - "id": 7841, - "members": [ - { - "id": 7838, - "name": "Unregistered", - "nodeType": "EnumValue", - "src": "74:12:37" - }, - { - "id": 7839, - "name": "Registered", - "nodeType": "EnumValue", - "src": "88:10:37" - }, - { - "id": 7840, - "name": "Retired", - "nodeType": "EnumValue", - "src": "100:7:37" - } - ], - "name": "FactoryStatus", - "nodeType": "EnumDefinition", - "src": "53:56:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7851, - "name": "FactoryAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 7850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7843, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "134:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "134:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7845, - "indexed": false, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "149:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "149:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7847, - "indexed": false, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "166:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "166:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7849, - "indexed": false, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "185:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "185:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "133:68:37" - }, - "src": "115:87:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7859, - "name": "FactoryRetired", - "nodeType": "EventDefinition", - "parameters": { - "id": 7858, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7853, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "228:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "228:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7855, - "indexed": false, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "243:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "243:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7857, - "indexed": false, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "260:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7856, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "260:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:51:37" - }, - "src": "207:72:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7871, - "name": "InstanceRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 7870, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7861, - "indexed": false, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "309:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7860, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "309:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7863, - "indexed": false, - "name": "instanceIndex", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "327:21:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7862, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "327:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7865, - "indexed": true, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "350:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7864, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7867, - "indexed": true, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "375:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "375:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7869, - "indexed": true, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "400:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7868, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "400:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "308:118:37" - }, - "src": "284:143:37" - }, - { - "body": null, - "documentation": null, - "id": 7878, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7876, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7873, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7878, - "src": "485:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7872, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "485:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7875, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7878, - "src": "502:24:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7874, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "502:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "484:44:37" - }, - "returnParameters": { - "id": 7877, - "nodeType": "ParameterList", - "parameters": [], - "src": "537:0:37" - }, - "scope": 7986, - "src": "465:73:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7883, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "retireFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7880, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "566:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "566:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "565:17:37" - }, - "returnParameters": { - "id": 7882, - "nodeType": "ParameterList", - "parameters": [], - "src": "591:0:37" - }, - "scope": 7986, - "src": "543:49:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7888, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7884, - "nodeType": "ParameterList", - "parameters": [], - "src": "653:2:37" - }, - "returnParameters": { - "id": 7887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7886, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7888, - "src": "679:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "679:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "678:15:37" - }, - "scope": 7986, - "src": "629:65:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7895, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7891, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7890, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7895, - "src": "725:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "725:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "724:17:37" - }, - "returnParameters": { - "id": 7894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7893, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 7895, - "src": "765:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "typeName": { - "contractScope": null, - "id": 7892, - "name": "FactoryStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7841, - "src": "765:13:37", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "764:22:37" - }, - "scope": 7986, - "src": "699:88:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7902, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryID", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7898, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7897, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7902, - "src": "814:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7896, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "814:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "813:17:37" - }, - "returnParameters": { - "id": 7901, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7900, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7902, - "src": "854:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7899, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "854:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "853:18:37" - }, - "scope": 7986, - "src": "792:80:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7909, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7904, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7909, - "src": "901:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "901:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "900:17:37" - }, - "returnParameters": { - "id": 7908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7907, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7909, - "src": "941:22:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7906, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "941:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "940:24:37" - }, - "scope": 7986, - "src": "877:88:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7916, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7911, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7916, - "src": "997:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7910, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "997:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "996:18:37" - }, - "returnParameters": { - "id": 7915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7914, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7916, - "src": "1038:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1037:17:37" - }, - "scope": 7986, - "src": "970:85:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7927, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7918, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1080:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1080:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1079:17:37" - }, - "returnParameters": { - "id": 7926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7921, - "name": "state", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1120:19:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "typeName": { - "contractScope": null, - "id": 7920, - "name": "FactoryStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7841, - "src": "1120:13:37", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7923, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1141:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7922, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1141:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7925, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1159:22:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7924, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1159:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1119:63:37" - }, - "scope": 7986, - "src": "1060:123:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7933, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactories", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1209:2:37" - }, - "returnParameters": { - "id": 7932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7931, - "name": "factories", - "nodeType": "VariableDeclaration", - "scope": 7933, - "src": "1235:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7929, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1235:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7930, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1235:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1234:28:37" - }, - "scope": 7986, - "src": "1188:75:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7943, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedFactories", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7935, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1299:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1299:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7937, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1319:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1319:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1298:38:37" - }, - "returnParameters": { - "id": 7942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7941, - "name": "factories", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1360:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7939, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7940, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1360:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1359:28:37" - }, - "scope": 7986, - "src": "1268:120:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7945, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1445:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7944, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1445:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7947, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1463:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1463:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7949, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1480:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - }, - "typeName": { - "id": 7948, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "1480:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1444:53:37" - }, - "returnParameters": { - "id": 7951, - "nodeType": "ParameterList", - "parameters": [], - "src": "1506:0:37" - }, - "scope": 7986, - "src": "1427:80:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7957, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7953, - "nodeType": "ParameterList", - "parameters": [], - "src": "1569:2:37" - }, - "returnParameters": { - "id": 7956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7955, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 7957, - "src": "1595:19:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 7954, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "1595:6:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1594:21:37" - }, - "scope": 7986, - "src": "1545:71:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7962, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7958, - "nodeType": "ParameterList", - "parameters": [], - "src": "1646:2:37" - }, - "returnParameters": { - "id": 7961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7960, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7962, - "src": "1672:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7959, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1672:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1671:15:37" - }, - "scope": 7986, - "src": "1621:66:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7969, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7964, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 7969, - "src": "1713:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1713:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1712:15:37" - }, - "returnParameters": { - "id": 7968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7967, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7969, - "src": "1751:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1751:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1750:18:37" - }, - "scope": 7986, - "src": "1692:77:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7975, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7970, - "nodeType": "ParameterList", - "parameters": [], - "src": "1795:2:37" - }, - "returnParameters": { - "id": 7974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7973, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7975, - "src": "1821:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7971, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1821:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7972, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1821:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1820:28:37" - }, - "scope": 7986, - "src": "1774:75:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7985, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7977, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1885:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7976, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1885:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7979, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1905:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1905:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1884:38:37" - }, - "returnParameters": { - "id": 7984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7983, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1946:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7981, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1946:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7982, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1946:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1945:28:37" - }, - "scope": 7986, - "src": "1854:120:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7987, - "src": "26:1950:37" - } - ], - "src": "0:1977:37" - }, - "legacyAST": { - "absolutePath": "/Users/hao/Desktop/erasure-next-contracts/contracts/modules/iRegistry.sol", - "exportedSymbols": { - "iRegistry": [ - 7986 - ] - }, - "id": 7987, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7837, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:37" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 7986, - "linearizedBaseContracts": [ - 7986 - ], - "name": "iRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "iRegistry.FactoryStatus", - "id": 7841, - "members": [ - { - "id": 7838, - "name": "Unregistered", - "nodeType": "EnumValue", - "src": "74:12:37" - }, - { - "id": 7839, - "name": "Registered", - "nodeType": "EnumValue", - "src": "88:10:37" - }, - { - "id": 7840, - "name": "Retired", - "nodeType": "EnumValue", - "src": "100:7:37" - } - ], - "name": "FactoryStatus", - "nodeType": "EnumDefinition", - "src": "53:56:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7851, - "name": "FactoryAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 7850, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7843, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "134:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "134:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7845, - "indexed": false, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "149:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7844, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "149:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7847, - "indexed": false, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "166:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7846, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "166:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7849, - "indexed": false, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7851, - "src": "185:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7848, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "185:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "133:68:37" - }, - "src": "115:87:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7859, - "name": "FactoryRetired", - "nodeType": "EventDefinition", - "parameters": { - "id": 7858, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7853, - "indexed": false, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "228:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "228:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7855, - "indexed": false, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "243:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "243:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7857, - "indexed": false, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7859, - "src": "260:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7856, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "260:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:51:37" - }, - "src": "207:72:37" - }, - { - "anonymous": false, - "documentation": null, - "id": 7871, - "name": "InstanceRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 7870, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7861, - "indexed": false, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "309:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7860, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "309:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7863, - "indexed": false, - "name": "instanceIndex", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "327:21:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7862, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "327:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7865, - "indexed": true, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "350:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7864, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7867, - "indexed": true, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "375:23:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7866, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "375:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7869, - "indexed": true, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7871, - "src": "400:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7868, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "400:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "308:118:37" - }, - "src": "284:143:37" - }, - { - "body": null, - "documentation": null, - "id": 7878, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "addFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7876, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7873, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7878, - "src": "485:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7872, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "485:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7875, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7878, - "src": "502:24:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7874, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "502:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "484:44:37" - }, - "returnParameters": { - "id": 7877, - "nodeType": "ParameterList", - "parameters": [], - "src": "537:0:37" - }, - "scope": 7986, - "src": "465:73:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7883, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "retireFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7880, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7883, - "src": "566:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "566:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "565:17:37" - }, - "returnParameters": { - "id": 7882, - "nodeType": "ParameterList", - "parameters": [], - "src": "591:0:37" - }, - "scope": 7986, - "src": "543:49:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7888, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7884, - "nodeType": "ParameterList", - "parameters": [], - "src": "653:2:37" - }, - "returnParameters": { - "id": 7887, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7886, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7888, - "src": "679:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "679:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "678:15:37" - }, - "scope": 7986, - "src": "629:65:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7895, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7891, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7890, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7895, - "src": "725:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "725:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "724:17:37" - }, - "returnParameters": { - "id": 7894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7893, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 7895, - "src": "765:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "typeName": { - "contractScope": null, - "id": 7892, - "name": "FactoryStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7841, - "src": "765:13:37", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "764:22:37" - }, - "scope": 7986, - "src": "699:88:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7902, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryID", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7898, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7897, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7902, - "src": "814:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7896, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "814:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "813:17:37" - }, - "returnParameters": { - "id": 7901, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7900, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7902, - "src": "854:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7899, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "854:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "853:18:37" - }, - "scope": 7986, - "src": "792:80:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7909, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7904, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7909, - "src": "901:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7903, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "901:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "900:17:37" - }, - "returnParameters": { - "id": 7908, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7907, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7909, - "src": "941:22:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7906, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "941:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "940:24:37" - }, - "scope": 7986, - "src": "877:88:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7916, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactoryAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7912, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7911, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7916, - "src": "997:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7910, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "997:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "996:18:37" - }, - "returnParameters": { - "id": 7915, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7914, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7916, - "src": "1038:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7913, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1037:17:37" - }, - "scope": 7986, - "src": "970:85:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7927, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactory", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7918, - "name": "factory", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1080:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7917, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1080:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1079:17:37" - }, - "returnParameters": { - "id": 7926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7921, - "name": "state", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1120:19:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - }, - "typeName": { - "contractScope": null, - "id": 7920, - "name": "FactoryStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7841, - "src": "1120:13:37", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FactoryStatus_$7841", - "typeString": "enum iRegistry.FactoryStatus" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7923, - "name": "factoryID", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1141:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 7922, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1141:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7925, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7927, - "src": "1159:22:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 7924, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1159:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1119:63:37" - }, - "scope": 7986, - "src": "1060:123:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7933, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getFactories", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7928, - "nodeType": "ParameterList", - "parameters": [], - "src": "1209:2:37" - }, - "returnParameters": { - "id": 7932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7931, - "name": "factories", - "nodeType": "VariableDeclaration", - "scope": 7933, - "src": "1235:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7929, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1235:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7930, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1235:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1234:28:37" - }, - "scope": 7986, - "src": "1188:75:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7943, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedFactories", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7935, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1299:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1299:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7937, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1319:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1319:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1298:38:37" - }, - "returnParameters": { - "id": 7942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7941, - "name": "factories", - "nodeType": "VariableDeclaration", - "scope": 7943, - "src": "1360:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7939, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1360:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7940, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1360:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1359:28:37" - }, - "scope": 7986, - "src": "1268:120:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7952, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7945, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1445:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7944, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1445:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7947, - "name": "creator", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1463:15:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7946, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1463:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7949, - "name": "extraData", - "nodeType": "VariableDeclaration", - "scope": 7952, - "src": "1480:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - }, - "typeName": { - "id": 7948, - "name": "uint80", - "nodeType": "ElementaryTypeName", - "src": "1480:6:37", - "typeDescriptions": { - "typeIdentifier": "t_uint80", - "typeString": "uint80" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1444:53:37" - }, - "returnParameters": { - "id": 7951, - "nodeType": "ParameterList", - "parameters": [], - "src": "1506:0:37" - }, - "scope": 7986, - "src": "1427:80:37", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7957, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceType", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7953, - "nodeType": "ParameterList", - "parameters": [], - "src": "1569:2:37" - }, - "returnParameters": { - "id": 7956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7955, - "name": "instanceType", - "nodeType": "VariableDeclaration", - "scope": 7957, - "src": "1595:19:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 7954, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "1595:6:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1594:21:37" - }, - "scope": 7986, - "src": "1545:71:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7962, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstanceCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7958, - "nodeType": "ParameterList", - "parameters": [], - "src": "1646:2:37" - }, - "returnParameters": { - "id": 7961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7960, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 7962, - "src": "1672:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7959, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1672:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1671:15:37" - }, - "scope": 7986, - "src": "1621:66:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7969, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7964, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 7969, - "src": "1713:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1713:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1712:15:37" - }, - "returnParameters": { - "id": 7968, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7967, - "name": "instance", - "nodeType": "VariableDeclaration", - "scope": 7969, - "src": "1751:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1751:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1750:18:37" - }, - "scope": 7986, - "src": "1692:77:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7975, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7970, - "nodeType": "ParameterList", - "parameters": [], - "src": "1795:2:37" - }, - "returnParameters": { - "id": 7974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7973, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7975, - "src": "1821:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7971, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1821:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7972, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1821:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1820:28:37" - }, - "scope": 7986, - "src": "1774:75:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 7985, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getPaginatedInstances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7977, - "name": "startIndex", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1885:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7976, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1885:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7979, - "name": "endIndex", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1905:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7978, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1905:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1884:38:37" - }, - "returnParameters": { - "id": 7984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7983, - "name": "instances", - "nodeType": "VariableDeclaration", - "scope": 7985, - "src": "1946:26:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 7981, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1946:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7982, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1946:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1945:28:37" - }, - "scope": 7986, - "src": "1854:120:37", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 7987, - "src": "26:1950:37" - } - ], - "src": "0:1977:37" - }, - "compiler": { - "name": "solc", - "version": "0.5.10+commit.5a6ea5b1.Emscripten.clang", - "optimizer": false, - "runs": 200 - }, - "networks": {}, - "schemaVersion": "2.1.8", - "updatedAt": "2019-08-16T16:53:40.477Z" -} \ No newline at end of file diff --git a/contracts/helpers/DecimalMath.sol b/contracts/helpers/DecimalMath.sol index 2c014ca9..83e83e13 100644 --- a/contracts/helpers/DecimalMath.sol +++ b/contracts/helpers/DecimalMath.sol @@ -1,8 +1,11 @@ -// taken from https://github.com/PolymathNetwork/polymath-core, Apache v2 License pragma solidity ^0.5.0; import "./openzeppelin-solidity/math/SafeMath.sol"; +/* @title DecimalMath + * @dev taken from https://github.com/PolymathNetwork/polymath-core + * @dev Apache v2 License + */ library DecimalMath { using SafeMath for uint256; diff --git a/contracts/modules/MultiHashWrapper.sol b/contracts/modules/MultiHashWrapper.sol index aef6b03b..88cac126 100644 --- a/contracts/modules/MultiHashWrapper.sol +++ b/contracts/modules/MultiHashWrapper.sol @@ -21,7 +21,17 @@ contract MultiHashWrapper { * @return the base58-encoded full hash */ function _combineMultiHash(MultiHash memory multihash) internal pure returns (bytes memory) { - return abi.encode(multihash.hashFunction, multihash.digestSize, multihash.hash); + bytes memory out = new bytes(34); + + out[0] = byte(multihash.hashFunction); + out[1] = byte(multihash.digestSize); + + uint8 i; + for (i = 0; i < 32; i++) { + out[i+2] = multihash.hash[i]; + } + + return out; } /** @@ -30,7 +40,20 @@ contract MultiHashWrapper { * @return MultiHash that has the hashFunction, digestSize and the hash */ function _splitMultiHash(bytes memory source) internal pure returns (MultiHash memory) { - (uint8 hashFunction, uint8 digestSize, bytes32 hash) = abi.decode(source, (uint8,uint8,bytes32)); - return MultiHash(hash, hashFunction, digestSize); + require(source.length == 34, "length of source must be 34"); + + uint8 hashFunction = uint8(source[0]); + uint8 digestSize = uint8(source[1]); + bytes32 hash; + + assembly { + hash := mload(add(source, 34)) + } + + return (MultiHash({ + hashFunction: hashFunction, + digestSize: digestSize, + hash: hash + })); } } diff --git a/deployment/deploy.js b/deployment/deploy.js index 968909ee..bec5147f 100755 --- a/deployment/deploy.js +++ b/deployment/deploy.js @@ -24,6 +24,10 @@ const deploy = async (network, secret) => { console.log(`Deployment Wallet: ${wallet.address}`); if (network == "rinkeby") { + + // connect to rinkeby + wallet = await wallet.connect(ethers.getDefaultProvider('rinkeby')); + // initialize deployer deployer = await new etherlime.InfuraPrivateKeyDeployer( wallet.privateKey, @@ -32,6 +36,8 @@ const deploy = async (network, secret) => { ); deployer.setVerifierApiKey(process.env.ETHERSCAN_API_KEY); + // contracts.Erasure_Posts.instance = await new ethers.Contract('0xEd11206a7d07601985DCC4FeD7B3284a928D022B', contracts.Erasure_Posts.artifact.abi, wallet); + // deploy registries contracts.Erasure_Posts.instance = await deployer.deployAndVerify(contracts.Erasure_Posts.artifact, false); contracts.Erasure_Agreements.instance = await deployer.deployAndVerify(contracts.Erasure_Agreements.artifact, false); @@ -118,7 +124,7 @@ const deploy = async (network, secret) => { userAddress, userAddress, 1, - 4, + 2, 100000000, '0x0' ).then(async txn => { diff --git a/test/helpers/utils.js b/test/helpers/utils.js index 8b99ecd3..78feba6a 100644 --- a/test/helpers/utils.js +++ b/test/helpers/utils.js @@ -4,7 +4,7 @@ const SpawnArtifact = require("../../build/Spawn.json"); const hexlify = utf8str => ethers.utils.hexlify(ethers.utils.toUtf8Bytes(utf8str)); -const createMultihashSha256 = string => { +const createPaddedMultihashSha256 = string => { const hash = ethers.utils.sha256(ethers.utils.toUtf8Bytes(string)); const sha2_256 = ethers.utils.hexZeroPad("0x12", 8); // uint8 const bits256 = ethers.utils.hexZeroPad(ethers.utils.hexlify(64), 8); @@ -17,6 +17,15 @@ const createMultihashSha256 = string => { return multihash; }; +const createMultihashSha256 = string => { + const hash = ethers.utils.sha256(ethers.utils.toUtf8Bytes(string)); + const sha2_256 = "0x12"; // uint8 + const bits256 = ethers.utils.hexlify(32); + const multihash = sha2_256 + bits256.substr(2) + hash.substr(2); + + return multihash; +}; + function createSelector(functionName, abiTypes) { const joinedTypes = abiTypes.join(","); const functionSignature = `${functionName}(${joinedTypes})`;