From f8910b1e095a65aefd8d21c3cb3bdd247b69d0c2 Mon Sep 17 00:00:00 2001 From: Daniel Ternyak Date: Wed, 21 Nov 2018 17:24:33 -0600 Subject: [PATCH] Contract Build Improvements (#215) --- .gitignore | 1 + .travis.yml | 12 +- backend/.env.example | 5 +- backend/.travis.yml | 20 - backend/grant/settings.py | 2 + backend/grant/web3/proposal.py | 9 + backend/tests/web3/test_proposal_read.py | 38 +- contract/.gitignore | 3 +- contract/build/contracts/CrowdFund.json | 28921 ---------------- .../build/contracts/CrowdFundFactory.json | 1566 - frontend/.envexample | 5 +- frontend/.nvmrc | 2 +- frontend/Procfile | 1 + frontend/client/api/api.ts | 12 +- frontend/client/lib/crowdFundContracts.ts | 8 +- frontend/client/modules/web3/sagas.ts | 10 +- frontend/config/env.js | 29 +- frontend/package.json | 6 +- 18 files changed, 107 insertions(+), 30543 deletions(-) delete mode 100644 backend/.travis.yml delete mode 100644 contract/build/contracts/CrowdFund.json delete mode 100644 contract/build/contracts/CrowdFundFactory.json create mode 100644 frontend/Procfile diff --git a/.gitignore b/.gitignore index 485dee64..721ac915 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .idea +contract/build \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 28f6cc0d..762c72c2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ matrix: include: # Frontend - language: node_js - node_js: 8.11.4 + node_js: 8.13.0 before_install: - cd frontend/ install: yarn @@ -15,17 +15,23 @@ matrix: before_install: - cd backend/ - cp .env.example .env + env: + - FLASK_APP=app.py FLASK_DEBUG=1 CROWD_FUND_URL=https://eip-712.herokuapp.com/contract/crowd-fund + CROWD_FUND_FACTORY_URL=https://eip-712.herokuapp.com/contract/factory install: pip install -r requirements/dev.txt script: - flask test # Contracts - language: node_js - node_js: 8.11.4 + node_js: 8.13.0 before_install: - cd contract/ - install: yarn && yarn add global truffle ganache-cli + install: yarn && yarn add global truffle ganache-cli@6.1.8 before_script: - ganache-cli > /dev/null & - sleep 10 script: - yarn run test + env: + - CROWD_FUND_URL=https://eip-712.herokuapp.com/contract/crowd-fund + CROWD_FUND_FACTORY_URL=https://eip-712.herokuapp.com/contract/factory diff --git a/backend/.env.example b/backend/.env.example index 94f350b2..46e54c35 100644 --- a/backend/.env.example +++ b/backend/.env.example @@ -9,5 +9,8 @@ SENDGRID_API_KEY="optional, but emails won't send without it" # for ropsten use the following # ETHEREUM_ENDPOINT_URI = "https://ropsten.infura.io/API_KEY" ETHEREUM_ENDPOINT_URI = "http://localhost:8545" +CROWD_FUND_URL = "https://eip-712.herokuapp.com/contract/crowd-fund" +CROWD_FUND_FACTORY_URL = "https://eip-712.herokuapp.com/contract/factory" UPLOAD_DIRECTORY = "/tmp" -UPLOAD_URL = "http://localhost:5000" # for constructing download url \ No newline at end of file +UPLOAD_URL = "http://localhost:5000" # for constructing download url + diff --git a/backend/.travis.yml b/backend/.travis.yml deleted file mode 100644 index 992020bc..00000000 --- a/backend/.travis.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Config file for automatic testing at travis-ci.org -sudo: false # http://docs.travis-ci.com/user/migrating-from-legacy/ -language: python -env: -- FLASK_APP=app.py FLASK_DEBUG=1 -python: - - 2.7 - - 3.4 - - 3.5 - - 3.6 -install: - - pip install -r requirements/dev.txt - - nvm install 6.10 - - nvm use 6.10 - - npm install -before_script: - - npm run lint - - npm run build - - flask lint -script: flask test diff --git a/backend/grant/settings.py b/backend/grant/settings.py index c23f1e60..96b481c3 100644 --- a/backend/grant/settings.py +++ b/backend/grant/settings.py @@ -15,6 +15,8 @@ ENV = env.str("FLASK_ENV", default="production") DEBUG = ENV == "development" SITE_URL = env.str('SITE_URL', default='https://grant.io') AUTH_URL = env.str('AUTH_URL', default='https://eip-712.herokuapp.com') +CROWD_FUND_FACTORY_URL = env.str('CROWD_FUND_FACTORY_URL', default=None) +CROWD_FUND_URL = env.str('CROWD_FUND_URL', default=None) SQLALCHEMY_DATABASE_URI = env.str("DATABASE_URL") QUEUES = ["default"] SECRET_KEY = env.str("SECRET_KEY") diff --git a/backend/grant/web3/proposal.py b/backend/grant/web3/proposal.py index 13859163..7eb105a0 100644 --- a/backend/grant/web3/proposal.py +++ b/backend/grant/web3/proposal.py @@ -2,6 +2,8 @@ import json import time from flask_web3 import current_web3 from .util import batch_call, call_array, RpcError +import requests +from grant.settings import CROWD_FUND_URL crowd_fund_abi = None @@ -11,11 +13,18 @@ def get_crowd_fund_abi(): global crowd_fund_abi if crowd_fund_abi: return crowd_fund_abi + + if CROWD_FUND_URL: + crowd_fund_json = requests.get(CROWD_FUND_URL).json() + crowd_fund_abi = crowd_fund_json['abi'] + return crowd_fund_abi + with open("../contract/build/contracts/CrowdFund.json", "r") as read_file: crowd_fund_abi = json.load(read_file)['abi'] return crowd_fund_abi + def read_proposal(address): current_web3.eth.defaultAccount = current_web3.eth.accounts[0] crowd_fund_abi = get_crowd_fund_abi() diff --git a/backend/tests/web3/test_proposal_read.py b/backend/tests/web3/test_proposal_read.py index 1d532b62..344d5282 100644 --- a/backend/tests/web3/test_proposal_read.py +++ b/backend/tests/web3/test_proposal_read.py @@ -1,13 +1,14 @@ -import copy import json import time -from grant.extensions import web3 -from ..config import BaseTestConfig -from grant.web3.proposal import read_proposal -from flask_web3 import current_web3 import eth_tester.backends.pyevm.main as py_evm_main +from flask_web3 import current_web3 +from grant.extensions import web3 +from grant.settings import CROWD_FUND_URL, CROWD_FUND_FACTORY_URL +from grant.web3.proposal import read_proposal +from ..config import BaseTestConfig +import requests # increase gas limit on eth-tester # https://github.com/ethereum/web3.py/issues/1013 # https://gitter.im/ethereum/py-evm?at=5b7eb68c4be56c5918854337 @@ -23,10 +24,17 @@ class TestWeb3ProposalRead(BaseTestConfig): BaseTestConfig.setUp(self) # the following will properly configure web3 with test config web3.init_app(self.real_app) - with open("../contract/build/contracts/CrowdFundFactory.json", "r") as read_file: - crowd_fund_factory_json = json.load(read_file) - with open("../contract/build/contracts/CrowdFund.json", "r") as read_file: - self.crowd_fund_json = json.load(read_file) + if CROWD_FUND_FACTORY_URL: + crowd_fund_factory_json = requests.get(CROWD_FUND_FACTORY_URL).json() + else: + with open("../frontend/client/lib/contracts/CrowdFundFactory.json", "r") as read_file: + crowd_fund_factory_json = json.load(read_file) + + if CROWD_FUND_URL: + self.crowd_fund_json = requests.get(CROWD_FUND_URL).json() + else: + with open("../frontend/client/lib/contracts/CrowdFund.json", "r") as read_file: + self.crowd_fund_json = json.load(read_file) current_web3.eth.defaultAccount = current_web3.eth.accounts[0] CrowdFundFactory = current_web3.eth.contract( abi=crowd_fund_factory_json['abi'], bytecode=crowd_fund_factory_json['bytecode']) @@ -78,13 +86,13 @@ class TestWeb3ProposalRead(BaseTestConfig): def create_crowd_fund(self): tx_hash = self.crowd_fund_factory.functions.createCrowdFund( - 5000000000000000000, # ethAmount - current_web3.eth.accounts[0], # payout + 5000000000000000000, # ethAmount + current_web3.eth.accounts[0], # payout [current_web3.eth.accounts[0]], # trustees - [5000000000000000000], # milestone amounts - 60, # duration (minutes) - 60, # voting period (minutes) - True # immediate first milestone payout + [5000000000000000000], # milestone amounts + 60, # duration (minutes) + 60, # voting period (minutes) + True # immediate first milestone payout ).transact() tx_receipt = current_web3.eth.waitForTransactionReceipt(tx_hash) tx_events = self.crowd_fund_factory.events.ContractCreated().processReceipt(tx_receipt) diff --git a/contract/.gitignore b/contract/.gitignore index 24ad64be..16c4f657 100644 --- a/contract/.gitignore +++ b/contract/.gitignore @@ -2,5 +2,4 @@ node_modules .idea/ yarn-error.log .env -build/abi -build/typedefs +build diff --git a/contract/build/contracts/CrowdFund.json b/contract/build/contracts/CrowdFund.json deleted file mode 100644 index 86613203..00000000 --- a/contract/build/contracts/CrowdFund.json +++ /dev/null @@ -1,28921 +0,0 @@ -{ - "contractName": "CrowdFund", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "frozen", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "amountVotingForRefund", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "contributors", - "outputs": [ - { - "name": "contributionAmount", - "type": "uint256" - }, - { - "name": "refundVote", - "type": "bool" - }, - { - "name": "refunded", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "frozenBalance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "deadline", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "minimumContributionAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "beneficiary", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "trustees", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "amountRaised", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "milestoneVotingPeriod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "contributorList", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "raiseGoal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isRaiseGoalReached", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "immediateFirstMilestonePayout", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "milestones", - "outputs": [ - { - "name": "amount", - "type": "uint256" - }, - { - "name": "amountVotingAgainstPayout", - "type": "uint256" - }, - { - "name": "payoutRequestVoteDeadline", - "type": "uint256" - }, - { - "name": "paid", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_raiseGoal", - "type": "uint256" - }, - { - "name": "_beneficiary", - "type": "address" - }, - { - "name": "_trustees", - "type": "address[]" - }, - { - "name": "_milestones", - "type": "uint256[]" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_milestoneVotingPeriod", - "type": "uint256" - }, - { - "name": "_immediateFirstMilestonePayout", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "payee", - "type": "address" - }, - { - "indexed": false, - "name": "weiAmount", - "type": "uint256" - } - ], - "name": "Deposited", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "payee", - "type": "address" - }, - { - "indexed": false, - "name": "weiAmount", - "type": "uint256" - } - ], - "name": "Withdrawn", - "type": "event" - }, - { - "constant": false, - "inputs": [], - "name": "contribute", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "requestMilestonePayout", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "index", - "type": "uint256" - }, - { - "name": "vote", - "type": "bool" - } - ], - "name": "voteMilestonePayout", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "index", - "type": "uint256" - } - ], - "name": "payMilestonePayout", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "vote", - "type": "bool" - } - ], - "name": "voteRefund", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "refund", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "refundAddress", - "type": "address" - } - ], - "name": "withdraw", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "destroy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "valueVoting", - "type": "uint256" - } - ], - "name": "isMajorityVoting", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isCallerTrustee", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isFailed", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "contributorAddress", - "type": "address" - }, - { - "name": "milestoneIndex", - "type": "uint256" - } - ], - "name": "getContributorMilestoneVote", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "contributorAddress", - "type": "address" - } - ], - "name": "getContributorContributionAmount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getFreezeReason", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029", - "deployedBytecode": "0x608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029", - "sourceMap": "87:12715:0:-;;;1437:1931;8:9:-1;5:2;;;30:1;27;20:12;5:2;1437:1931:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:19;2232:6;2287:20;1711:7;1697:10;:21;;1689:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1795:1;1775:9;:16;:21;;:47;;;;;1820:2;1800:9;:16;:22;;1775:47;1767:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1924:1;1902:11;:18;:23;;:51;;;;;1951:2;1929:11;:18;:24;;1902:51;1894:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2216:1;2194:23;;2241:1;2232:10;;2227:477;2248:11;:18;2244:1;:22;2227:477;;;2310:11;2322:1;2310:14;;;;;;;;;;;;;;;;;;2287:37;;2364:1;2346:15;:19;2338:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2440:35;2459:15;2440:14;:18;;;;;;:35;;;;;:::i;:::-;2423:52;;2489:10;2505:187;;;;;;;;;2541:15;2505:187;;;;2647:1;2505:187;;;;2601:1;2505:187;;;;2672:5;2505:187;;;;;2489:204;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2489:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:3;;;;;;;2227:477;;;2739:10;2721:14;:28;2713:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2906:1;2878:25;:29;;;;2929:10;2917:9;:22;;;;2963:12;2949:11;;:26;;;;;;;;;;;;;;;;;;2996:9;2985:8;:20;;;;;;;;;;;;:::i;:::-;;3032:9;3026:3;:15;3015:8;:26;;;;3075:22;3051:21;:46;;;;3139:30;3107:29;;:62;;;;;;;;;;;;;;;;;;3200:5;3179:18;;:26;;;;;;;;;;;;;;;;;;3239:1;3215:21;:25;;;;3259:5;3250:6;;:14;;;;;;;;;;;;;;;;;;3360:1;3345:12;:16;;;;1437:1931;;;;;;;;;;87:12715;;1238:128:2;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;776:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1079:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1079:33:0;;;;;;;;;;;;;;;;;;;;;;;1150:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1150:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11263:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11263:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1005:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1005:25:0;;;;;;;;;;;;;;;;;;;;;;;922:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;922:20:0;;;;;;;;;;;;;;;;;;;;;;;6712:1039;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6712:1039:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1036:37:0;;;;;;;;;;;;;;;;;;;;;;;1118:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11129:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11129:128:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10068:587;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10068:587:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9299:693;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9299:693:0;;;;;;8724:569;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8724:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11827:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11827:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;975:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;975:24:0;;;;;;;;;;;;;;;;;;;;;;;10752:371;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10752:371:0;;;;;;11618:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11618:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5068:1638;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5068:1638:0;;;;;;;;;;;;;;;;;;;;;;;;;;883:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;883:33:0;;;;;;;;;;;;;;;;;;;;;;;7757:961;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7757:961:0;;;;;;;;;;;;;;;;;;;;;;;;;;1207:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1207:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;948:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;948:21:0;;;;;;;;;;;;;;;;;;;;;;;12005:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12005:96:0;;;;;;;;;;;;;;;;;;;;;;;3374:1688;;;;;;800:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;836:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;836:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1401:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1401:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11503:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11503:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;776:18;;;;;;;;;;;;;:::o;1079:33::-;;;;:::o;1150:51::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11263:234::-;11311:4;11332:6;11341:1;11332:10;;11327:142;11348:8;:15;;;;11344:1;:19;11327:142;;;11402:8;11411:1;11402:11;;;;;;;;;;;;;;;;;;;;;;;;;;;11388:25;;:10;:25;;;11384:75;;;11440:4;11433:11;;;;11384:75;11365:3;;;;;;;11327:142;;;11485:5;11478:12;;11263:234;;;:::o;1005:25::-;;;;:::o;922:20::-;;;;:::o;6712:1039::-;6821:28;7017:27;7104:23;7190:16;12638:1;12591:12;:24;12604:10;12591:24;;;;;;;;;;;;;;;:43;;;:48;;12583:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6852:12;:24;6865:10;6852:24;;;;;;;;;;;;;;;:41;;6894:5;6852:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6821:79;;6945:4;6918:31;;:23;:31;;;;6910:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7093:1;7047:10;7058:5;7047:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;7017:77;;7177:3;7130:10;7141:5;7130:17;;;;;;;;;;;;;;;;;;;;:43;;;:50;;7104:76;;7209:22;:45;;;;;7236:18;7235:19;7209:45;7190:64;;7272:11;7264:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7378:4;7327:12;:24;7340:10;7327:24;;;;;;;;;;;;;;;:41;;7369:5;7327:48;;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;7397:4;7396:5;7392:353;;;7463:92;7511:12;:24;7524:10;7511:24;;;;;;;;;;;;;;;:43;;;7463:10;7474:5;7463:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7417:10;7428:5;7417:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7392:353;;;7576:4;7572:173;;;7642:92;7690:12;:24;7703:10;7690:24;;;;;;;;;;;;;;;:43;;;7642:10;7653:5;7642:17;;;;;;;;;;;;;;;;;;;;:43;;;:47;;:92;;;;:::i;:::-;7596:10;7607:5;7596:17;;;;;;;;;;;;;;;;;;;;:43;;:138;;;;7572:173;7392:353;6712:1039;;;;;;:::o;1036:37::-;;;;:::o;1118:26::-;;;;;;;;;;;;;:::o;11129:128::-;11194:4;11238:12;;11217:18;11233:1;11217:11;:15;;:18;;;;:::i;:::-;:33;11210:40;;11129:128;;;:::o;10068:587::-;10189:15;10377:23;10459:19;12147:6;;;;;;;;;;;12139:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10145:6;;;;;;;;;;;10137:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10207:12;:27;10220:13;10207:27;;;;;;;;;;;;;;;:36;;;;;;;;;;;;10189:54;;10262:10;10261:11;10253:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:4;10324:12;:27;10337:13;10324:27;;;;;;;;;;;;;;;:36;;;:43;;;;;;;;;;;;;;;;;;10403:12;:27;10416:13;10403:27;;;;;;;;;;;;;;;:46;;;10377:72;;10481:64;10531:13;;10481:45;10512:4;10504:21;;;10481:18;:22;;:45;;;;:::i;:::-;:49;;:64;;;;:::i;:::-;10459:86;;10555:13;:22;;:38;10578:14;10555:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10555:38:0;10618:13;10608:40;;;10633:14;10608:40;;;;;;;;;;;;;;;;;;10068:587;;;;:::o;9299:693::-;9347:20;9397;9440:27;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9370:17;:15;:17::i;:::-;9347:40;;9420:10;:8;:10::i;:::-;9397:33;;9470:39;9487:21;;9470:16;:39::i;:::-;9440:69;;9527:15;:34;;;;9546:15;9527:34;:60;;;;9565:22;9527:60;9519:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9648:15;9644:272;;;9694:30;9679:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9644:272;;;9745:15;9741:175;;;9791:30;9776:12;;:45;;;;;;;;;;;;;;;;;;;;;;;;9741:175;;;9867:38;9852:12;;:53;;;;;;;;;;;;;;;;;;;;;;;;9741:175;9644:272;9934:4;9925:6;;:13;;;;;;;;;;;;;;;;;;9972:4;9964:21;;;9948:13;:37;;;;9299:693;;;:::o;8724:569::-;8812:15;12638:1;12591:12;:24;12604:10;12591:24;;;;;;;;;;;;;;;:43;;;:48;;12583:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8830:12;:24;8843:10;8830:24;;;;;;;;;;;;;;;:35;;;;;;;;;;;;8812:53;;8891:10;8883:18;;:4;:18;;;;8875:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9000:4;8962:12;:24;8975:10;8962:24;;;;;;;;;;;;;;;:35;;;:42;;;;;;;;;;;;;;;;;;9019:4;9018:5;9014:273;;;9063:70;9089:12;:24;9102:10;9089:24;;;;;;;;;;;;;;;:43;;;9063:21;;:25;;:70;;;;:::i;:::-;9039:21;:94;;;;9014:273;;;9162:4;9158:129;;;9206:70;9232:12;:24;9245:10;9232:24;;;;;;;;;;;;;;;:43;;;9206:21;;:25;;:70;;;;:::i;:::-;9182:21;:94;;;;9158:129;9014:273;8724:569;;:::o;1302:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11827:172::-;11918:4;11941:12;:32;11954:18;11941:32;;;;;;;;;;;;;;;:51;;;11934:58;;11827:172;;;:::o;975:24::-;;;;:::o;10752:371::-;10816:6;10875:26;12736:17;:15;:17::i;:::-;12728:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12147:6;;;;;;;;;;;12139:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10825:1;10816:10;;10811:271;10832:15;:22;;;;10828:1;:26;10811:271;;;10904:15;10920:1;10904:18;;;;;;;;;;;;;;;;;;;;;;;;;;;10875:47;;10941:12;:32;10954:18;10941:32;;;;;;;;;;;;;;;:41;;;;;;;;;;;;10940:42;10936:136;;;11002:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10936:136;10856:3;;;;;;;10811:271;;;11104:11;;;;;;;;;;;11091:25;;;11618:203;11725:4;11749:12;:32;11762:18;11749:32;;;;;;;;;;;;;;;:49;;11799:14;11749:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11742:72;;11618:203;;;;:::o;5068:1638::-;5166:25;5226:26;5314;5527:19;5566:6;12736:17;:15;:17::i;:::-;12728:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5194:10;5205:5;5194:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;5166:50;;5301:3;5255:10;5266:5;5255:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;5226:78;;5343:61;5360:10;5371:5;5360:17;;;;;;;;;;;;;;;;;;;;:43;;;5343:16;:61::i;:::-;5314:90;;5469:20;5468:21;5460:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5549:2;5527:24;;5575:1;5566:10;;5561:150;5582:10;:17;;;;5578:1;:21;5561:150;;;5624:10;5635:1;5624:13;;;;;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;5620:81;;;5684:1;5662:24;;5620:81;5601:3;;;;;;;5561:150;;;5761:1;5743:15;:19;5729:5;:34;5721:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5959:1;5912:10;5923:5;5912:17;;;;;;;;;;;;;;;;;;;;:43;;;:48;5908:792;;;5989:1;5980:5;:10;:43;;;;;5994:29;;;;;;;;;;;5980:43;5976:395;;;6240:1;6194:10;6205:5;6194:17;;;;;;;;;;;;;;;;;;;;:43;;:47;;;;5976:395;;;6326:30;6334:21;;6326:3;:7;;:30;;;;:::i;:::-;6280:10;6291:5;6280:17;;;;;;;;;;;;;;;;;;;;:43;;:76;;;;5976:395;5908:792;;;6544:21;:46;;;;;6569:21;6544:46;6540:160;;;6652:37;6660:28;6686:1;6660:21;;:25;;:28;;;;:::i;:::-;6652:3;:7;;:37;;;;:::i;:::-;6606:10;6617:5;6606:17;;;;;;;;;;;;;;;;;;;;:43;;:83;;;;6540:160;5908:792;5068:1638;;;;;;:::o;883:33::-;;;;:::o;7757:961::-;7838:26;7926:20;8020:25;8209:11;12342:18;;;;;;;;;;;12334:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7913:3;7867:10;7878:5;7867:17;;;;;;;;;;;;;;;;;;;;:43;;;:49;7838:78;;7949:61;7966:10;7977:5;7966:17;;;;;;;;;;;;;;;;;;;;:43;;;7949:16;:61::i;:::-;7926:84;;8048:10;8059:5;8048:17;;;;;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;8020:50;;8084:21;:41;;;;;8110:15;8109:16;8084:41;:66;;;;;8130:20;8129:21;8084:66;8080:632;;;8191:4;8166:10;8177:5;8166:17;;;;;;;;;;;;;;;;;;;;:22;;;:29;;;;;;;;;;;;;;;;;;8223:10;8234:5;8223:17;;;;;;;;;;;;;;;;;;;;:24;;;8209:38;;8261:11;;;;;;;;;;;:20;;:28;8282:6;8261:28;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8261:28:0;8318:11;;;;;;;;;;;8308:30;;;8331:6;8308:30;;;;;;;;;;;;;;;;;;8440:1;8408:28;8430:5;8408:10;:17;;;;:21;;:28;;;;:::i;:::-;:33;8404:219;;;8596:11;;;;;;;;;;;8583:25;;;8404:219;8080:632;;;8653:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:632;7757:961;;;;;:::o;1207:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;948:21::-;;;;:::o;12005:96::-;12053:4;12081:12;;;;;;;;;;;12076:18;;;;;;;;12069:25;;12005:96;:::o;3374:1688::-;3481:20;4050:23;4124:21;12462:8;;12455:3;:15;;:38;;;;;12475:18;;;;;;;;;;;12474:19;12455:38;12447:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12248:6;;;;;;;;;;;12247:7;12239:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3504:27;3521:9;3504:12;;:16;;:27;;;;:::i;:::-;3481:50;;3568:9;;3549:15;:28;;3541:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4089:25;;4076:9;:38;;4050:64;;4167:9;;4148:15;:28;4124:52;;4194:18;:38;;;;4216:16;4194:38;4186:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4427:1;4380:12;:24;4393:10;4380:24;;;;;;;;;;;;;;;:43;;;:48;4376:502;;;4471:207;;;;;;;;;4521:9;4471:207;;;;4577:10;:17;;;;4566:29;;;;;;;;;;;;;;;;;;;;;;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;4566:29:0;;;;4471:207;;;;4625:5;4471:207;;;;;;4658:5;4471:207;;;;;4444:12;:24;4457:10;4444:24;;;;;;;;;;;;;;;:234;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:15;4713:10;4692:32;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4692:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4376:502;;;4809:58;4857:9;4809:12;:24;4822:10;4809:24;;;;;;;;;;;;;;;:43;;;:47;;:58;;;;:::i;:::-;4763:12;:24;4776:10;4763:24;;;;;;;;;;;;;;;:43;;:104;;;;4376:502;4903:15;4888:12;:30;;;;4948:9;;4932:12;;:25;4928:81;;;4994:4;4973:18;;:25;;;;;;;;;;;;;;;;;;4928:81;5033:10;5023:32;;;5045:9;5023:32;;;;;;;;;;;;;;;;;;3374:1688;;;:::o;800:30::-;;;;;;;;;;;;;:::o;836:41::-;;;;;;;;;;;;;:::o;1401:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11503:109::-;11544:4;11574:8;;11567:3;:15;;:38;;;;;11587:18;;;;;;;;;;;11586:19;11567:38;11560:45;;11503:109;:::o;1060:116:2:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;203:380::-;263:9;495:1;489:2;:7;485:36;;;513:1;506:8;;;;485:36;536:2;531;:7;527:11;;561:2;555;551:1;:6;;;;;;;;:12;544:20;;;;;;577:1;570:8;;203:380;;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;87:12715:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract CrowdFund {\n using SafeMath for uint256;\n\n enum FreezeReason {\n CALLER_IS_TRUSTEE,\n CROWD_FUND_FAILED,\n MAJORITY_VOTING_TO_REFUND\n }\n\n FreezeReason freezeReason;\n\n struct Milestone {\n uint amount;\n uint amountVotingAgainstPayout;\n uint payoutRequestVoteDeadline;\n bool paid;\n }\n\n struct Contributor {\n uint contributionAmount;\n // array index bool reflect milestone index vote\n bool[] milestoneNoVotes;\n bool refundVote;\n bool refunded;\n }\n\n event Deposited(address indexed payee, uint256 weiAmount);\n event Withdrawn(address indexed payee, uint256 weiAmount);\n\n bool public frozen;\n bool public isRaiseGoalReached;\n bool public immediateFirstMilestonePayout;\n uint public milestoneVotingPeriod;\n uint public deadline;\n uint public raiseGoal;\n uint public amountRaised;\n uint public frozenBalance;\n uint public minimumContributionAmount;\n uint public amountVotingForRefund;\n address public beneficiary;\n mapping(address => Contributor) public contributors;\n address[] public contributorList;\n // authorized addresses to ask for milestone payouts\n address[] public trustees;\n // constructor ensures that all values combined equal raiseGoal\n Milestone[] public milestones;\n\n constructor(\n uint _raiseGoal,\n address _beneficiary,\n address[] _trustees,\n uint[] _milestones,\n uint _deadline,\n uint _milestoneVotingPeriod,\n bool _immediateFirstMilestonePayout)\n public {\n require(_raiseGoal >= 1 ether, \"Raise goal is smaller than 1 ether\");\n require(_trustees.length >= 1 && _trustees.length <= 10, \"Trustee addresses must be at least 1 and not more than 10\");\n require(_milestones.length >= 1 && _milestones.length <= 10, \"Milestones must be at least 1 and not more than 10\");\n // TODO - require minimum duration\n // TODO - require minimum milestone voting period\n\n // ensure that cumalative milestone payouts equal raiseGoalAmount\n uint milestoneTotal = 0;\n for (uint i = 0; i < _milestones.length; i++) {\n uint milestoneAmount = _milestones[i];\n require(milestoneAmount > 0, \"Milestone amount must be greater than 0\");\n milestoneTotal = milestoneTotal.add(milestoneAmount);\n milestones.push(Milestone({\n amount: milestoneAmount,\n payoutRequestVoteDeadline: 0,\n amountVotingAgainstPayout: 0,\n paid: false\n }));\n }\n require(milestoneTotal == _raiseGoal, \"Milestone total must equal raise goal\");\n // TODO - increase minimum contribution amount is 0.1% of raise goal\n minimumContributionAmount = 1;\n raiseGoal = _raiseGoal;\n beneficiary = _beneficiary;\n trustees = _trustees;\n deadline = now + _deadline;\n milestoneVotingPeriod = _milestoneVotingPeriod;\n immediateFirstMilestonePayout = _immediateFirstMilestonePayout;\n isRaiseGoalReached = false;\n amountVotingForRefund = 0;\n frozen = false;\n // assumes no ether contributed as part of contract deployment\n amountRaised = 0;\n }\n\n function contribute() public payable onlyOnGoing onlyUnfrozen {\n // don't allow overfunding\n uint newAmountRaised = amountRaised.add(msg.value);\n require(newAmountRaised <= raiseGoal, \"Contribution exceeds the raise goal.\");\n // require minimumContributionAmount (set during construction)\n // there may be a special case where just enough has been raised so that the remaining raise amount is just smaller than the minimumContributionAmount\n // in this case, allow that the msg.value + amountRaised will equal the raiseGoal.\n // This makes sure that we don't enter a scenario where a proposal can never be fully funded\n bool greaterThanMinimum = msg.value >= minimumContributionAmount;\n bool exactlyRaiseGoal = newAmountRaised == raiseGoal;\n require(greaterThanMinimum || exactlyRaiseGoal, \"msg.value greater than minimum, or msg.value == remaining amount to be raised\");\n // in cases where an address pays > 1 times\n if (contributors[msg.sender].contributionAmount == 0) {\n contributors[msg.sender] = Contributor({\n contributionAmount: msg.value,\n milestoneNoVotes: new bool[](milestones.length),\n refundVote: false,\n refunded: false\n });\n contributorList.push(msg.sender);\n }\n else {\n contributors[msg.sender].contributionAmount = contributors[msg.sender].contributionAmount.add(msg.value);\n }\n\n amountRaised = newAmountRaised;\n if (amountRaised == raiseGoal) {\n isRaiseGoalReached = true;\n }\n emit Deposited(msg.sender, msg.value);\n }\n\n function requestMilestonePayout (uint index) public onlyTrustee onlyRaised onlyUnfrozen {\n bool milestoneAlreadyPaid = milestones[index].paid;\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline > now;\n bool majorityAgainstPayout = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n // prevent requesting paid milestones\n require(!milestoneAlreadyPaid, \"Milestone already paid\");\n\n int lowestIndexPaid = -1;\n for (uint i = 0; i < milestones.length; i++) {\n if (milestones[i].paid) {\n lowestIndexPaid = int(i);\n }\n }\n\n require(index == uint(lowestIndexPaid + 1), \"Milestone request must be for first unpaid milestone\");\n // begin grace period for contributors to vote no on milestone payout\n if (milestones[index].payoutRequestVoteDeadline == 0) {\n if (index == 0 && immediateFirstMilestonePayout) {\n // make milestone payouts immediately avtheailable for the first milestone if immediateFirstMilestonePayout is set during consutrction\n milestones[index].payoutRequestVoteDeadline = 1;\n } else {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod);\n }\n }\n // if the payoutRequestVoteDealine has passed and majority voted against it previously, begin the grace period with 2 times the deadline\n else if (voteDeadlineHasPassed && majorityAgainstPayout) {\n milestones[index].payoutRequestVoteDeadline = now.add(milestoneVotingPeriod.mul(2));\n }\n }\n\n function voteMilestonePayout(uint index, bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool existingMilestoneNoVote = contributors[msg.sender].milestoneNoVotes[index];\n require(existingMilestoneNoVote != vote, \"Vote value must be different than existing vote state\");\n bool milestoneVotingStarted = milestones[index].payoutRequestVoteDeadline > 0;\n bool votePeriodHasEnded = milestones[index].payoutRequestVoteDeadline <= now;\n bool onGoingVote = milestoneVotingStarted && !votePeriodHasEnded;\n require(onGoingVote, \"Milestone voting must be open\");\n contributors[msg.sender].milestoneNoVotes[index] = vote;\n if (!vote) {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.sub(contributors[msg.sender].contributionAmount);\n } else if (vote) {\n milestones[index].amountVotingAgainstPayout = milestones[index].amountVotingAgainstPayout.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function payMilestonePayout(uint index) public onlyRaised onlyUnfrozen {\n bool voteDeadlineHasPassed = milestones[index].payoutRequestVoteDeadline < now;\n bool majorityVotedNo = isMajorityVoting(milestones[index].amountVotingAgainstPayout);\n bool milestoneAlreadyPaid = milestones[index].paid;\n if (voteDeadlineHasPassed && !majorityVotedNo && !milestoneAlreadyPaid) {\n milestones[index].paid = true;\n uint amount = milestones[index].amount;\n beneficiary.transfer(amount);\n emit Withdrawn(beneficiary, amount);\n // if the final milestone just got paid\n if (milestones.length.sub(index) == 1) {\n // useful to selfdestruct in case funds were forcefully deposited into contract. otherwise they are lost.\n selfdestruct(beneficiary);\n }\n } else {\n revert(\"required conditions were not satisfied\");\n }\n }\n\n function voteRefund(bool vote) public onlyContributor onlyRaised onlyUnfrozen {\n bool refundVote = contributors[msg.sender].refundVote;\n require(vote != refundVote, \"Existing vote state is identical to vote value\");\n contributors[msg.sender].refundVote = vote;\n if (!vote) {\n amountVotingForRefund = amountVotingForRefund.sub(contributors[msg.sender].contributionAmount);\n }\n else if (vote) {\n amountVotingForRefund = amountVotingForRefund.add(contributors[msg.sender].contributionAmount);\n }\n }\n\n function refund() public onlyUnfrozen {\n bool callerIsTrustee = isCallerTrustee();\n bool crowdFundFailed = isFailed();\n bool majorityVotingToRefund = isMajorityVoting(amountVotingForRefund);\n require(callerIsTrustee || crowdFundFailed || majorityVotingToRefund, \"Required conditions for refund are not met\");\n if (callerIsTrustee) {\n freezeReason = FreezeReason.CALLER_IS_TRUSTEE;\n } else if (crowdFundFailed) {\n freezeReason = FreezeReason.CROWD_FUND_FAILED;\n } else {\n freezeReason = FreezeReason.MAJORITY_VOTING_TO_REFUND;\n }\n frozen = true;\n frozenBalance = address(this).balance;\n }\n\n // anyone can refund a contributor if a crowdfund has been frozen\n function withdraw(address refundAddress) public onlyFrozen {\n require(frozen, \"CrowdFund is not frozen\");\n bool isRefunded = contributors[refundAddress].refunded;\n require(!isRefunded, \"Specified address is already refunded\");\n contributors[refundAddress].refunded = true;\n uint contributionAmount = contributors[refundAddress].contributionAmount;\n uint amountToRefund = contributionAmount.mul(address(this).balance).div(frozenBalance);\n refundAddress.transfer(amountToRefund);\n emit Withdrawn(refundAddress, amountToRefund);\n }\n\n // it may be useful to selfdestruct in case funds were force deposited to the contract\n function destroy() public onlyTrustee onlyFrozen {\n for (uint i = 0; i < contributorList.length; i++) {\n address contributorAddress = contributorList[i];\n if (!contributors[contributorAddress].refunded) {\n revert(\"At least one contributor has not yet refunded\");\n }\n }\n selfdestruct(beneficiary);\n }\n\n function isMajorityVoting(uint valueVoting) public view returns (bool) {\n return valueVoting.mul(2) > amountRaised;\n }\n\n function isCallerTrustee() public view returns (bool) {\n for (uint i = 0; i < trustees.length; i++) {\n if (msg.sender == trustees[i]) {\n return true;\n }\n }\n return false;\n }\n\n function isFailed() public view returns (bool) {\n return now >= deadline && !isRaiseGoalReached;\n }\n\n function getContributorMilestoneVote(address contributorAddress, uint milestoneIndex) public view returns (bool) { \n return contributors[contributorAddress].milestoneNoVotes[milestoneIndex];\n }\n\n function getContributorContributionAmount(address contributorAddress) public view returns (uint) {\n return contributors[contributorAddress].contributionAmount;\n }\n\n function getFreezeReason() public view returns (uint) {\n return uint(freezeReason);\n }\n\n modifier onlyFrozen() {\n require(frozen, \"CrowdFund is not frozen\");\n _;\n }\n\n modifier onlyUnfrozen() {\n require(!frozen, \"CrowdFund is frozen\");\n _;\n }\n\n modifier onlyRaised() {\n require(isRaiseGoalReached, \"Raise goal is not reached\");\n _;\n }\n\n modifier onlyOnGoing() {\n require(now <= deadline && !isRaiseGoalReached, \"CrowdFund is not ongoing\");\n _;\n }\n\n modifier onlyContributor() {\n require(contributors[msg.sender].contributionAmount != 0, \"Caller is not a contributor\");\n _;\n }\n\n modifier onlyTrustee() {\n require(isCallerTrustee(), \"Caller is not a trustee\");\n _;\n }\n\n}", - "sourcePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", - "ast": { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", - "exportedSymbols": { - "CrowdFund": [ - 1080 - ] - }, - "id": 1081, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 1081, - "sourceUnit": 1233, - "src": "25:59:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1080, - "linearizedBaseContracts": [ - 1080 - ], - "name": "CrowdFund", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 5, - "libraryName": { - "contractScope": null, - "id": 3, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1232, - "src": "118:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1232", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "112:27:0", - "typeName": { - "id": 4, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "131:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "CrowdFund.FreezeReason", - "id": 9, - "members": [ - { - "id": 6, - "name": "CALLER_IS_TRUSTEE", - "nodeType": "EnumValue", - "src": "173:17:0" - }, - { - "id": 7, - "name": "CROWD_FUND_FAILED", - "nodeType": "EnumValue", - "src": "200:17:0" - }, - { - "id": 8, - "name": "MAJORITY_VOTING_TO_REFUND", - "nodeType": "EnumValue", - "src": "227:25:0" - } - ], - "name": "FreezeReason", - "nodeType": "EnumDefinition", - "src": "145:113:0" - }, - { - "constant": false, - "id": 11, - "name": "freezeReason", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "264:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - }, - "typeName": { - "contractScope": null, - "id": 10, - "name": "FreezeReason", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9, - "src": "264:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "value": null, - "visibility": "internal" - }, - { - "canonicalName": "CrowdFund.Milestone", - "id": 20, - "members": [ - { - "constant": false, - "id": 13, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "323:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "323:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15, - "name": "amountVotingAgainstPayout", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "344:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "344:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17, - "name": "payoutRequestVoteDeadline", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "384:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "384:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "name": "paid", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "424:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "424:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 1080, - "src": "296:144:0", - "visibility": "public" - }, - { - "canonicalName": "CrowdFund.Contributor", - "id": 30, - "members": [ - { - "constant": false, - "id": 22, - "name": "contributionAmount", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "475:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "name": "milestoneNoVotes", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "565:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 23, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "565:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 24, - "length": null, - "nodeType": "ArrayTypeName", - "src": "565:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "name": "refundVote", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "598:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 26, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "598:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "name": "refunded", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "623:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "623:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Contributor", - "nodeType": "StructDefinition", - "scope": 1080, - "src": "446:197:0", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 36, - "name": "Deposited", - "nodeType": "EventDefinition", - "parameters": { - "id": 35, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32, - "indexed": true, - "name": "payee", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "665:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "665:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "indexed": false, - "name": "weiAmount", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "688:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "688:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "664:42:0" - }, - "src": "649:58:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Withdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "indexed": true, - "name": "payee", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "728:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": false, - "name": "weiAmount", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "751:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "751:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "727:42:0" - }, - "src": "712:58:0" - }, - { - "constant": false, - "id": 44, - "name": "frozen", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "776:18:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 43, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "776:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "isRaiseGoalReached", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "800:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 45, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "800:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 48, - "name": "immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "836:41:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "836:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 50, - "name": "milestoneVotingPeriod", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "883:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "883:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 52, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "922:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 51, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "922:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 54, - "name": "raiseGoal", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "948:21:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "948:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 56, - "name": "amountRaised", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "975:24:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 55, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "975:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 58, - "name": "frozenBalance", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1005:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 57, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1005:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 60, - "name": "minimumContributionAmount", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1036:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 59, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1036:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 62, - "name": "amountVotingForRefund", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1079:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 61, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1079:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 64, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1118:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 63, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 68, - "name": "contributors", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1150:51:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor)" - }, - "typeName": { - "id": 67, - "keyType": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1158:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1150:31:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor)" - }, - "valueType": { - "contractScope": null, - "id": 66, - "name": "Contributor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 30, - "src": "1169:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage_ptr", - "typeString": "struct CrowdFund.Contributor" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 71, - "name": "contributorList", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1207:32:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 69, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1207:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 70, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1207:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 74, - "name": "trustees", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1302:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 72, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1302:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 73, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1302:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 77, - "name": "milestones", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1401:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 75, - "name": "Milestone", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20, - "src": "1401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage_ptr", - "typeString": "struct CrowdFund.Milestone" - } - }, - "id": 76, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1401:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage_ptr", - "typeString": "struct CrowdFund.Milestone[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 230, - "nodeType": "Block", - "src": "1679:1689:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 99, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 97, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "1697:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:7:0", - "subdenomination": "ether", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1" - }, - "src": "1697:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526169736520676f616c20697320736d616c6c6572207468616e2031206574686572", - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1720:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_26795146958ed9fbe8e87984c5fe089e4c2d8b62328649a7a4271f6acc61ad53", - "typeString": "literal_string \"Raise goal is smaller than 1 ether\"" - }, - "value": "Raise goal is smaller than 1 ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_26795146958ed9fbe8e87984c5fe089e4c2d8b62328649a7a4271f6acc61ad53", - "typeString": "literal_string \"Raise goal is smaller than 1 ether\"" - } - ], - "id": 96, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1689:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1689:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 102, - "nodeType": "ExpressionStatement", - "src": "1689:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 104, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1775:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1775:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1795:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1775:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 108, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1800:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1800:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1820:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1800:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1775:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472757374656520616464726573736573206d757374206265206174206c65617374203120616e64206e6f74206d6f7265207468616e203130", - "id": 113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1824:59:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6f2fb94a1426f6092f6f6ba2fe0c80c7b869c8844f1b5c7d223031cf3376dbf4", - "typeString": "literal_string \"Trustee addresses must be at least 1 and not more than 10\"" - }, - "value": "Trustee addresses must be at least 1 and not more than 10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6f2fb94a1426f6092f6f6ba2fe0c80c7b869c8844f1b5c7d223031cf3376dbf4", - "typeString": "literal_string \"Trustee addresses must be at least 1 and not more than 10\"" - } - ], - "id": 103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1767:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1767:117:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 115, - "nodeType": "ExpressionStatement", - "src": "1767:117:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 117, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1902:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1902:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1924:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1902:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1929:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1929:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1951:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1929:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1902:51:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6573206d757374206265206174206c65617374203120616e64206e6f74206d6f7265207468616e203130", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1955:52:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fa063e6a0c1c7b99eb5a849143b837901d68276acbf0f2c8247eed588a181ee2", - "typeString": "literal_string \"Milestones must be at least 1 and not more than 10\"" - }, - "value": "Milestones must be at least 1 and not more than 10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fa063e6a0c1c7b99eb5a849143b837901d68276acbf0f2c8247eed588a181ee2", - "typeString": "literal_string \"Milestones must be at least 1 and not more than 10\"" - } - ], - "id": 116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1894:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1894:114:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 128, - "nodeType": "ExpressionStatement", - "src": "1894:114:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "name": "milestoneTotal", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2194:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2194:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 132, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2216:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2194:23:0" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "2273:431:0", - "statements": [ - { - "assignments": [ - 145 - ], - "declarations": [ - { - "constant": false, - "id": 145, - "name": "milestoneAmount", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2287:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 144, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2287:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 146, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2310:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 148, - "indexExpression": { - "argumentTypes": null, - "id": 147, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2322:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2310:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2287:37:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2346:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2364:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2346:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520616d6f756e74206d7573742062652067726561746572207468616e2030", - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2367:41:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8340f04f5ef6bd7e467fa70ba384c629e679986a39f0f5df8217fa4a3bb37fb3", - "typeString": "literal_string \"Milestone amount must be greater than 0\"" - }, - "value": "Milestone amount must be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8340f04f5ef6bd7e467fa70ba384c629e679986a39f0f5df8217fa4a3bb37fb3", - "typeString": "literal_string \"Milestone amount must be greater than 0\"" - } - ], - "id": 150, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "2338:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2338:71:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 156, - "nodeType": "ExpressionStatement", - "src": "2338:71:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 157, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2423:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 160, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2459:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 158, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2440:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "2440:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2440:35:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2423:52:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 163, - "nodeType": "ExpressionStatement", - "src": "2423:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2541:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2601:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2672:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": null, - "id": 167, - "name": "Milestone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2505:9:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$20_storage_ptr_$", - "typeString": "type(struct CrowdFund.Milestone storage pointer)" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "amount", - "payoutRequestVoteDeadline", - "amountVotingAgainstPayout", - "paid" - ], - "nodeType": "FunctionCall", - "src": "2505:187:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_memory", - "typeString": "struct CrowdFund.Milestone memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Milestone_$20_memory", - "typeString": "struct CrowdFund.Milestone memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 164, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2489:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2489:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$20_storage_$returns$_t_uint256_$", - "typeString": "function (struct CrowdFund.Milestone storage ref) returns (uint256)" - } - }, - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2489:204:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 174, - "nodeType": "ExpressionStatement", - "src": "2489:204:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 137, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2244:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 138, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2248:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2248:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2244:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 176, - "initializationExpression": { - "assignments": [ - 134 - ], - "declarations": [ - { - "constant": false, - "id": 134, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2232:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2232:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 136, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2241:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2232:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2268:3:0", - "subExpression": { - "argumentTypes": null, - "id": 141, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2268:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 143, - "nodeType": "ExpressionStatement", - "src": "2268:3:0" - }, - "nodeType": "ForStatement", - "src": "2227:477:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 178, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2721:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 179, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2739:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2721:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736520676f616c", - "id": 181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2751:39:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ce6e124acdc65e75fdb7bed5df7531503580223492fe0e86777f092c6d736e4", - "typeString": "literal_string \"Milestone total must equal raise goal\"" - }, - "value": "Milestone total must equal raise goal" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ce6e124acdc65e75fdb7bed5df7531503580223492fe0e86777f092c6d736e4", - "typeString": "literal_string \"Milestone total must equal raise goal\"" - } - ], - "id": 177, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "2713:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2713:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 183, - "nodeType": "ExpressionStatement", - "src": "2713:78:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 184, - "name": "minimumContributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2878:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2906:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2878:29:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 187, - "nodeType": "ExpressionStatement", - "src": "2878:29:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 188, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2917:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 189, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2929:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2917:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 191, - "nodeType": "ExpressionStatement", - "src": "2917:22:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 192, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "2949:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 193, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "2963:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2949:26:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "2949:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 196, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "2985:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 197, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2996:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2985:20:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 199, - "nodeType": "ExpressionStatement", - "src": "2985:20:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 200, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "3015:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 201, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "3026:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 202, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "3032:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3026:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3015:26:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 205, - "nodeType": "ExpressionStatement", - "src": "3015:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 206, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "3051:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 207, - "name": "_milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "3075:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3051:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3051:46:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 210, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "3107:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 211, - "name": "_immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3139:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3107:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 213, - "nodeType": "ExpressionStatement", - "src": "3107:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 214, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "3179:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3200:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3179:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "3179:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "3215:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3239:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3215:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 221, - "nodeType": "ExpressionStatement", - "src": "3215:25:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 222, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "3250:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3250:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 225, - "nodeType": "ExpressionStatement", - "src": "3250:14:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 226, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3345:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3360:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3345:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 229, - "nodeType": "ExpressionStatement", - "src": "3345:16:0" - } - ] - }, - "documentation": null, - "id": 231, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 94, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 79, - "name": "_raiseGoal", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1458:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1458:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1483:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1483:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "name": "_trustees", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1513:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 82, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1513:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 83, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1513:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 87, - "name": "_milestones", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1542:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1542:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 86, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1542:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1570:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1570:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 91, - "name": "_milestoneVotingPeriod", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1594:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1594:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "name": "_immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1631:35:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 92, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1631:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:219:0" - }, - "payable": false, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [], - "src": "1679:0:0" - }, - "scope": 1080, - "src": "1437:1931:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 344, - "nodeType": "Block", - "src": "3436:1626:0", - "statements": [ - { - "assignments": [ - 239 - ], - "declarations": [ - { - "constant": false, - "id": 239, - "name": "newAmountRaised", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "3481:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3481:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 242, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "3521:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3521:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 240, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3504:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "3504:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3504:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3481:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 247, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "3549:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 248, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "3568:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3549:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6e747269627574696f6e20657863656564732074686520726169736520676f616c2e", - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3579:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f0b2440b5298f52584e66c42ff46ffb5990bc57d408f53ff052d607205091f05", - "typeString": "literal_string \"Contribution exceeds the raise goal.\"" - }, - "value": "Contribution exceeds the raise goal." - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f0b2440b5298f52584e66c42ff46ffb5990bc57d408f53ff052d607205091f05", - "typeString": "literal_string \"Contribution exceeds the raise goal.\"" - } - ], - "id": 246, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "3541:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3541:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 252, - "nodeType": "ExpressionStatement", - "src": "3541:77:0" - }, - { - "assignments": [ - 254 - ], - "declarations": [ - { - "constant": false, - "id": 254, - "name": "greaterThanMinimum", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4050:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4050:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 259, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 255, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4076:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4076:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 257, - "name": "minimumContributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "4089:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4050:64:0" - }, - { - "assignments": [ - 261 - ], - "declarations": [ - { - "constant": false, - "id": 261, - "name": "exactlyRaiseGoal", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4124:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 260, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4124:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 265, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 262, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "4148:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 263, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4167:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4148:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4124:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 267, - "name": "greaterThanMinimum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "4194:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 268, - "name": "exactlyRaiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "4216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4194:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d73672e76616c75652067726561746572207468616e206d696e696d756d2c206f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7420746f20626520726169736564", - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4234:79:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_daec81a65fdf63ff22cc80539bfb1e860ba5e1c917be2dc57d9c7bffbe8d96a0", - "typeString": "literal_string \"msg.value greater than minimum, or msg.value == remaining amount to be raised\"" - }, - "value": "msg.value greater than minimum, or msg.value == remaining amount to be raised" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_daec81a65fdf63ff22cc80539bfb1e860ba5e1c917be2dc57d9c7bffbe8d96a0", - "typeString": "literal_string \"msg.value greater than minimum, or msg.value == remaining amount to be raised\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "4186:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4186:128:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "4186:128:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 273, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4380:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 276, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 274, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4393:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4393:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4380:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4380:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4427:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4380:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 322, - "nodeType": "Block", - "src": "4749:129:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 306, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4763:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 309, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4776:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4776:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4763:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4763:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 317, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4857:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4857:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 311, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4809:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 314, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4822:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4809:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4809:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "4809:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4809:58:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4763:104:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 321, - "nodeType": "ExpressionStatement", - "src": "4763:104:0" - } - ] - }, - "id": 323, - "nodeType": "IfStatement", - "src": "4376:502:0", - "trueBody": { - "id": 305, - "nodeType": "Block", - "src": "4430:305:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 280, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4444:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 283, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 281, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4457:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4457:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4444:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 285, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4521:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4521:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 290, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "4577:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4577:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4566:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$", - "typeString": "function (uint256) pure returns (bool[] memory)" - }, - "typeName": { - "baseType": { - "id": 287, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4570:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 288, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4570:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - } - }, - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4566:29:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory", - "typeString": "bool[] memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4625:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4658:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": null, - "id": 284, - "name": "Contributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "4471:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Contributor_$30_storage_ptr_$", - "typeString": "type(struct CrowdFund.Contributor storage pointer)" - } - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "contributionAmount", - "milestoneNoVotes", - "refundVote", - "refunded" - ], - "nodeType": "FunctionCall", - "src": "4471:207:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_memory", - "typeString": "struct CrowdFund.Contributor memory" - } - }, - "src": "4444:234:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 297, - "nodeType": "ExpressionStatement", - "src": "4444:234:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 301, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4713:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4713:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 298, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "4692:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4692:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4692:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 304, - "nodeType": "ExpressionStatement", - "src": "4692:32:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 324, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4888:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 325, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "4903:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4888:30:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 327, - "nodeType": "ExpressionStatement", - "src": "4888:30:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 328, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4932:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 329, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4948:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4932:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 336, - "nodeType": "IfStatement", - "src": "4928:81:0", - "trueBody": { - "id": 335, - "nodeType": "Block", - "src": "4959:50:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 331, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "4973:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4994:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4973:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 334, - "nodeType": "ExpressionStatement", - "src": "4973:25:0" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 338, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "5033:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5033:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "5045:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5045:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 337, - "name": "Deposited", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "5023:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:32:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 343, - "nodeType": "EmitStatement", - "src": "5018:37:0" - } - ] - }, - "documentation": null, - "id": 345, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 234, - "modifierName": { - "argumentTypes": null, - "id": 233, - "name": "onlyOnGoing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "3411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3411:11:0" - }, - { - "arguments": null, - "id": 236, - "modifierName": { - "argumentTypes": null, - "id": 235, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "3423:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3423:12:0" - } - ], - "name": "contribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "3393:2:0" - }, - "payable": true, - "returnParameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [], - "src": "3436:0:0" - }, - "scope": 1080, - "src": "3374:1688:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "5156:1550:0", - "statements": [ - { - "assignments": [ - 357 - ], - "declarations": [ - { - "constant": false, - "id": 357, - "name": "milestoneAlreadyPaid", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5166:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 356, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5166:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 362, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 358, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5194:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 360, - "indexExpression": { - "argumentTypes": null, - "id": 359, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5205:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5194:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 361, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "5194:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5166:50:0" - }, - { - "assignments": [ - 364 - ], - "declarations": [ - { - "constant": false, - "id": 364, - "name": "voteDeadlineHasPassed", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5226:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 363, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5226:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 371, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 365, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5255:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 367, - "indexExpression": { - "argumentTypes": null, - "id": 366, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5266:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5255:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 368, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "5255:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "5301:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5255:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5226:78:0" - }, - { - "assignments": [ - 373 - ], - "declarations": [ - { - "constant": false, - "id": 373, - "name": "majorityAgainstPayout", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5314:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 372, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5314:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 380, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 375, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5360:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 377, - "indexExpression": { - "argumentTypes": null, - "id": 376, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5371:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5360:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 378, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "5360:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 374, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "5343:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5343:61:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5314:90:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5468:21:0", - "subExpression": { - "argumentTypes": null, - "id": 382, - "name": "milestoneAlreadyPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "5469:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520616c72656164792070616964", - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5491:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd4d403a6ac484772597de76d12f4c453245b6a9170210c47567df5d5a4b5442", - "typeString": "literal_string \"Milestone already paid\"" - }, - "value": "Milestone already paid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd4d403a6ac484772597de76d12f4c453245b6a9170210c47567df5d5a4b5442", - "typeString": "literal_string \"Milestone already paid\"" - } - ], - "id": 381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5460:56:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 386, - "nodeType": "ExpressionStatement", - "src": "5460:56:0" - }, - { - "assignments": [ - 388 - ], - "declarations": [ - { - "constant": false, - "id": 388, - "name": "lowestIndexPaid", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5527:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 387, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "5527:3:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "5549:2:0", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5550:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5527:24:0" - }, - { - "body": { - "id": 415, - "nodeType": "Block", - "src": "5606:105:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 403, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5624:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 405, - "indexExpression": { - "argumentTypes": null, - "id": 404, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5635:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5624:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 406, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "5624:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 414, - "nodeType": "IfStatement", - "src": "5620:81:0", - "trueBody": { - "id": 413, - "nodeType": "Block", - "src": "5644:57:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 407, - "name": "lowestIndexPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "5662:15:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 409, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5684:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5680:3:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int" - }, - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5680:6:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "5662:24:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 412, - "nodeType": "ExpressionStatement", - "src": "5662:24:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 396, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5578:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 397, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5582:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5578:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 416, - "initializationExpression": { - "assignments": [ - 393 - ], - "declarations": [ - { - "constant": false, - "id": 393, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5566:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 395, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5575:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5601:3:0", - "subExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5601:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "5601:3:0" - }, - "nodeType": "ForStatement", - "src": "5561:150:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 418, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5729:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 420, - "name": "lowestIndexPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "5743:15:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5761:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5743:19:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5738:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5738:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5729:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e652072657175657374206d75737420626520666f7220666972737420756e70616964206d696c6573746f6e65", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5765:54:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_109e56ab422d6e7b920445e49fcf1dac376eba8dda71ea922747d3a4bf8e6081", - "typeString": "literal_string \"Milestone request must be for first unpaid milestone\"" - }, - "value": "Milestone request must be for first unpaid milestone" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_109e56ab422d6e7b920445e49fcf1dac376eba8dda71ea922747d3a4bf8e6081", - "typeString": "literal_string \"Milestone request must be for first unpaid milestone\"" - } - ], - "id": 417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "5721:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5721:99:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 427, - "nodeType": "ExpressionStatement", - "src": "5721:99:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5912:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5923:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5912:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "5912:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5912:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 460, - "name": "voteDeadlineHasPassed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "6544:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 461, - "name": "majorityAgainstPayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 373, - "src": "6569:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6544:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 477, - "nodeType": "IfStatement", - "src": "6540:160:0", - "trueBody": { - "id": 476, - "nodeType": "Block", - "src": "6592:108:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 463, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6606:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 465, - "indexExpression": { - "argumentTypes": null, - "id": 464, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6617:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6606:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6606:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6686:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 469, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "6660:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "6660:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6660:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 467, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "6652:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "6652:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6652:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6606:83:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 475, - "nodeType": "ExpressionStatement", - "src": "6606:83:0" - } - ] - } - }, - "id": 478, - "nodeType": "IfStatement", - "src": "5908:792:0", - "trueBody": { - "id": 459, - "nodeType": "Block", - "src": "5962:419:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 434, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5980:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5989:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5980:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 437, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "5994:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5980:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 457, - "nodeType": "Block", - "src": "6262:109:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 447, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6280:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 449, - "indexExpression": { - "argumentTypes": null, - "id": 448, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6291:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6280:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 450, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6280:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 453, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "6334:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 451, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "6326:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "6326:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6326:30:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6280:76:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 456, - "nodeType": "ExpressionStatement", - "src": "6280:76:0" - } - ] - }, - "id": 458, - "nodeType": "IfStatement", - "src": "5976:395:0", - "trueBody": { - "id": 446, - "nodeType": "Block", - "src": "6025:231:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 439, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6194:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 441, - "indexExpression": { - "argumentTypes": null, - "id": 440, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6205:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6194:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 442, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6194:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6240:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6194:47:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 445, - "nodeType": "ExpressionStatement", - "src": "6194:47:0" - } - ] - } - } - ] - } - } - ] - }, - "documentation": null, - "id": 480, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 350, - "modifierName": { - "argumentTypes": null, - "id": 349, - "name": "onlyTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "5120:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5120:11:0" - }, - { - "arguments": null, - "id": 352, - "modifierName": { - "argumentTypes": null, - "id": 351, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5132:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5132:10:0" - }, - { - "arguments": null, - "id": 354, - "modifierName": { - "argumentTypes": null, - "id": 353, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "5143:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5143:12:0" - } - ], - "name": "requestMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 347, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5101:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 346, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5101:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5100:12:0" - }, - "payable": false, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [], - "src": "5156:0:0" - }, - "scope": 1080, - "src": "5068:1638:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 591, - "nodeType": "Block", - "src": "6811:940:0", - "statements": [ - { - "assignments": [ - 494 - ], - "declarations": [ - { - "constant": false, - "id": 494, - "name": "existingMilestoneNoVote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6821:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 493, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6821:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 502, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 495, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "6852:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 498, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 496, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "6865:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6865:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6852:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 499, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "6852:41:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 501, - "indexExpression": { - "argumentTypes": null, - "id": 500, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "6894:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6852:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6821:79:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 504, - "name": "existingMilestoneNoVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "6918:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 505, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "6945:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6918:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566f74652076616c7565206d75737420626520646966666572656e74207468616e206578697374696e6720766f7465207374617465", - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6951:55:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2334a2a330d03e0c71ca6e5459a04a9f7768e423b19b905937ae90377f088fd6", - "typeString": "literal_string \"Vote value must be different than existing vote state\"" - }, - "value": "Vote value must be different than existing vote state" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2334a2a330d03e0c71ca6e5459a04a9f7768e423b19b905937ae90377f088fd6", - "typeString": "literal_string \"Vote value must be different than existing vote state\"" - } - ], - "id": 503, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "6910:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6910:97:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 509, - "nodeType": "ExpressionStatement", - "src": "6910:97:0" - }, - { - "assignments": [ - 511 - ], - "declarations": [ - { - "constant": false, - "id": 511, - "name": "milestoneVotingStarted", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7017:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 510, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7017:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 518, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 512, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7047:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 514, - "indexExpression": { - "argumentTypes": null, - "id": 513, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7058:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7047:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 515, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7047:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7093:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7047:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7017:77:0" - }, - { - "assignments": [ - 520 - ], - "declarations": [ - { - "constant": false, - "id": 520, - "name": "votePeriodHasEnded", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7104:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 519, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 527, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 521, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7130:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 523, - "indexExpression": { - "argumentTypes": null, - "id": 522, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7141:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7130:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7130:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 525, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "7177:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7130:50:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7104:76:0" - }, - { - "assignments": [ - 529 - ], - "declarations": [ - { - "constant": false, - "id": 529, - "name": "onGoingVote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7190:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7190:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 534, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "milestoneVotingStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "7209:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7235:19:0", - "subExpression": { - "argumentTypes": null, - "id": 531, - "name": "votePeriodHasEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "7236:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7209:45:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7190:64:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "onGoingVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "7272:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520766f74696e67206d757374206265206f70656e", - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7285:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e1dd9ca228a57f4224f45d51f0cb40784c6630bbd866a76b741c781eb59d306", - "typeString": "literal_string \"Milestone voting must be open\"" - }, - "value": "Milestone voting must be open" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e1dd9ca228a57f4224f45d51f0cb40784c6630bbd866a76b741c781eb59d306", - "typeString": "literal_string \"Milestone voting must be open\"" - } - ], - "id": 535, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "7264:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7264:53:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 539, - "nodeType": "ExpressionStatement", - "src": "7264:53:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 540, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7327:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 541, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7340:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7340:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7327:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "7327:41:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 546, - "indexExpression": { - "argumentTypes": null, - "id": 545, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7369:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7327:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 547, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7378:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7327:55:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 549, - "nodeType": "ExpressionStatement", - "src": "7327:55:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7396:5:0", - "subExpression": { - "argumentTypes": null, - "id": 550, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7397:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 570, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7576:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 589, - "nodeType": "IfStatement", - "src": "7572:173:0", - "trueBody": { - "id": 588, - "nodeType": "Block", - "src": "7582:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 571, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7596:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 573, - "indexExpression": { - "argumentTypes": null, - "id": 572, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7607:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7596:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7596:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 580, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7690:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 583, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 581, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7703:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7703:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7690:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 584, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7690:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 575, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7642:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 577, - "indexExpression": { - "argumentTypes": null, - "id": 576, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7653:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7642:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 578, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7642:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "7642:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7642:92:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7596:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 587, - "nodeType": "ExpressionStatement", - "src": "7596:138:0" - } - ] - } - }, - "id": 590, - "nodeType": "IfStatement", - "src": "7392:353:0", - "trueBody": { - "id": 569, - "nodeType": "Block", - "src": "7403:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 552, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7417:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 554, - "indexExpression": { - "argumentTypes": null, - "id": 553, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7428:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7417:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 555, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7417:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7511:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 564, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7524:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7524:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7511:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7511:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 556, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7463:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 558, - "indexExpression": { - "argumentTypes": null, - "id": 557, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7474:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7463:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7463:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "7463:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7463:92:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7417:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 568, - "nodeType": "ExpressionStatement", - "src": "7417:138:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 592, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 487, - "modifierName": { - "argumentTypes": null, - "id": 486, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "6771:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6771:15:0" - }, - { - "arguments": null, - "id": 489, - "modifierName": { - "argumentTypes": null, - "id": 488, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "6787:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6787:10:0" - }, - { - "arguments": null, - "id": 491, - "modifierName": { - "argumentTypes": null, - "id": 490, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "6798:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6798:12:0" - } - ], - "name": "voteMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6741:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6741:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6753:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 483, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6753:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6740:23:0" - }, - "payable": false, - "returnParameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [], - "src": "6811:0:0" - }, - "scope": 1080, - "src": "6712:1039:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 678, - "nodeType": "Block", - "src": "7828:890:0", - "statements": [ - { - "assignments": [ - 602 - ], - "declarations": [ - { - "constant": false, - "id": 602, - "name": "voteDeadlineHasPassed", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7838:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 601, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7838:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 609, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 603, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7867:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 605, - "indexExpression": { - "argumentTypes": null, - "id": 604, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7878:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7867:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 606, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7867:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 607, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "7913:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7867:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7838:78:0" - }, - { - "assignments": [ - 611 - ], - "declarations": [ - { - "constant": false, - "id": 611, - "name": "majorityVotedNo", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7926:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 610, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7926:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 618, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 613, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7966:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 615, - "indexExpression": { - "argumentTypes": null, - "id": 614, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7977:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7966:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 616, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7966:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 612, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7949:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7949:61:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7926:84:0" - }, - { - "assignments": [ - 620 - ], - "declarations": [ - { - "constant": false, - "id": 620, - "name": "milestoneAlreadyPaid", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "8020:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 619, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8020:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 625, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 621, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8048:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 623, - "indexExpression": { - "argumentTypes": null, - "id": 622, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8059:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8048:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "8048:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8020:50:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 626, - "name": "voteDeadlineHasPassed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "8084:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8109:16:0", - "subExpression": { - "argumentTypes": null, - "id": 627, - "name": "majorityVotedNo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "8110:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8084:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8129:21:0", - "subExpression": { - "argumentTypes": null, - "id": 630, - "name": "milestoneAlreadyPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "8130:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8084:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 676, - "nodeType": "Block", - "src": "8639:73:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "726571756972656420636f6e646974696f6e732077657265206e6f7420736174697366696564", - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8660:40:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", - "typeString": "literal_string \"required conditions were not satisfied\"" - }, - "value": "required conditions were not satisfied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", - "typeString": "literal_string \"required conditions were not satisfied\"" - } - ], - "id": 672, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1252, - 1253 - ], - "referencedDeclaration": 1253, - "src": "8653:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8653:48:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 675, - "nodeType": "ExpressionStatement", - "src": "8653:48:0" - } - ] - }, - "id": 677, - "nodeType": "IfStatement", - "src": "8080:632:0", - "trueBody": { - "id": 671, - "nodeType": "Block", - "src": "8152:481:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 633, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 635, - "indexExpression": { - "argumentTypes": null, - "id": 634, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8177:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8166:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "8166:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8191:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8166:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 639, - "nodeType": "ExpressionStatement", - "src": "8166:29:0" - }, - { - "assignments": [ - 641 - ], - "declarations": [ - { - "constant": false, - "id": 641, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "8209:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 640, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8209:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 646, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 642, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8223:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 644, - "indexExpression": { - "argumentTypes": null, - "id": 643, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8234:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8223:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 13, - "src": "8223:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8209:38:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8282:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 647, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8261:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8261:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8261:28:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "8261:28:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 654, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8318:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 655, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8331:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 653, - "name": "Withdrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "8308:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8308:30:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 657, - "nodeType": "EmitStatement", - "src": "8303:35:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 661, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 658, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8408:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8408:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "8408:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8408:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8440:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8408:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 670, - "nodeType": "IfStatement", - "src": "8404:219:0", - "trueBody": { - "id": 669, - "nodeType": "Block", - "src": "8443:180:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 666, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8596:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 665, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1255, - "src": "8583:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8583:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 668, - "nodeType": "ExpressionStatement", - "src": "8583:25:0" - } - ] - } - } - ] - } - } - ] - }, - "documentation": null, - "id": 679, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 597, - "modifierName": { - "argumentTypes": null, - "id": 596, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "7804:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7804:10:0" - }, - { - "arguments": null, - "id": 599, - "modifierName": { - "argumentTypes": null, - "id": 598, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "7815:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7815:12:0" - } - ], - "name": "payMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 595, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 594, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7785:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 593, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7785:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7784:12:0" - }, - "payable": false, - "returnParameters": { - "id": 600, - "nodeType": "ParameterList", - "parameters": [], - "src": "7828:0:0" - }, - "scope": 1080, - "src": "7757:961:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 742, - "nodeType": "Block", - "src": "8802:491:0", - "statements": [ - { - "assignments": [ - 691 - ], - "declarations": [ - { - "constant": false, - "id": 691, - "name": "refundVote", - "nodeType": "VariableDeclaration", - "scope": 743, - "src": "8812:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8812:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 697, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 692, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "8830:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 695, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 693, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "8843:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8843:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8830:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 696, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refundVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 27, - "src": "8830:35:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8812:53:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 699, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "8883:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 700, - "name": "refundVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "8891:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8883:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578697374696e6720766f7465207374617465206973206964656e746963616c20746f20766f74652076616c7565", - "id": 702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8903:48:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", - "typeString": "literal_string \"Existing vote state is identical to vote value\"" - }, - "value": "Existing vote state is identical to vote value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", - "typeString": "literal_string \"Existing vote state is identical to vote value\"" - } - ], - "id": 698, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "8875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8875:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 704, - "nodeType": "ExpressionStatement", - "src": "8875:77:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 705, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "8962:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 708, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 706, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "8975:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8975:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8962:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 709, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refundVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 27, - "src": "8962:35:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 710, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9000:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8962:42:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 712, - "nodeType": "ExpressionStatement", - "src": "8962:42:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9018:5:0", - "subExpression": { - "argumentTypes": null, - "id": 713, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9019:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 727, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9162:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 740, - "nodeType": "IfStatement", - "src": "9158:129:0", - "trueBody": { - "id": 739, - "nodeType": "Block", - "src": "9168:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 728, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9182:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 731, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9232:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 734, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 732, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "9245:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9245:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9232:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 735, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9232:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 729, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9206:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "9206:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9206:70:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9182:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "9182:94:0" - } - ] - } - }, - "id": 741, - "nodeType": "IfStatement", - "src": "9014:273:0", - "trueBody": { - "id": 726, - "nodeType": "Block", - "src": "9025:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 715, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9039:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 718, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9089:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 721, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 719, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "9102:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9102:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9089:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9089:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 716, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9063:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "9063:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9063:70:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9039:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 725, - "nodeType": "ExpressionStatement", - "src": "9039:94:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 743, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 684, - "modifierName": { - "argumentTypes": null, - "id": 683, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "8762:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8762:15:0" - }, - { - "arguments": null, - "id": 686, - "modifierName": { - "argumentTypes": null, - "id": 685, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "8778:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8778:10:0" - }, - { - "arguments": null, - "id": 688, - "modifierName": { - "argumentTypes": null, - "id": 687, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "8789:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8789:12:0" - } - ], - "name": "voteRefund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 681, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 743, - "src": "8744:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 680, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8744:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8743:11:0" - }, - "payable": false, - "returnParameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [], - "src": "8802:0:0" - }, - "scope": 1080, - "src": "8724:569:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 806, - "nodeType": "Block", - "src": "9337:655:0", - "statements": [ - { - "assignments": [ - 749 - ], - "declarations": [ - { - "constant": false, - "id": 749, - "name": "callerIsTrustee", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9347:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 748, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9347:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 752, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 750, - "name": "isCallerTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "9370:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9370:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9347:40:0" - }, - { - "assignments": [ - 754 - ], - "declarations": [ - { - "constant": false, - "id": 754, - "name": "crowdFundFailed", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9397:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 753, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9397:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 757, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 755, - "name": "isFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "9420:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9420:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9397:33:0" - }, - { - "assignments": [ - 759 - ], - "declarations": [ - { - "constant": false, - "id": 759, - "name": "majorityVotingToRefund", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9440:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9440:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 763, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 761, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9487:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 760, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "9470:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9470:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9440:69:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 765, - "name": "callerIsTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "9527:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 766, - "name": "crowdFundFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "9546:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9527:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 768, - "name": "majorityVotingToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "9565:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9527:60:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526571756972656420636f6e646974696f6e7320666f7220726566756e6420617265206e6f74206d6574", - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9589:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", - "typeString": "literal_string \"Required conditions for refund are not met\"" - }, - "value": "Required conditions for refund are not met" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", - "typeString": "literal_string \"Required conditions for refund are not met\"" - } - ], - "id": 764, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "9519:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9519:115:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 772, - "nodeType": "ExpressionStatement", - "src": "9519:115:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 773, - "name": "callerIsTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "9648:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 780, - "name": "crowdFundFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "9745:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 792, - "nodeType": "Block", - "src": "9838:78:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 787, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9852:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 788, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9867:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "MAJORITY_VOTING_TO_REFUND", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9867:38:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9852:53:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 791, - "nodeType": "ExpressionStatement", - "src": "9852:53:0" - } - ] - }, - "id": 793, - "nodeType": "IfStatement", - "src": "9741:175:0", - "trueBody": { - "id": 786, - "nodeType": "Block", - "src": "9762:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 781, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9776:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 782, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9791:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CROWD_FUND_FAILED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9791:30:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9776:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 785, - "nodeType": "ExpressionStatement", - "src": "9776:45:0" - } - ] - } - }, - "id": 794, - "nodeType": "IfStatement", - "src": "9644:272:0", - "trueBody": { - "id": 779, - "nodeType": "Block", - "src": "9665:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 774, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9679:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 775, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9694:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CALLER_IS_TRUSTEE", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9694:30:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9679:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 778, - "nodeType": "ExpressionStatement", - "src": "9679:45:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 795, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "9925:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9934:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9925:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 798, - "nodeType": "ExpressionStatement", - "src": "9925:13:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 799, - "name": "frozenBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "9948:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 801, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "9972:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - ], - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9964:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9964:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9964:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9948:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 805, - "nodeType": "ExpressionStatement", - "src": "9948:37:0" - } - ] - }, - "documentation": null, - "id": 807, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 746, - "modifierName": { - "argumentTypes": null, - "id": 745, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "9324:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9324:12:0" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 744, - "nodeType": "ParameterList", - "parameters": [], - "src": "9314:2:0" - }, - "payable": false, - "returnParameters": { - "id": 747, - "nodeType": "ParameterList", - "parameters": [], - "src": "9337:0:0" - }, - "scope": 1080, - "src": "9299:693:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 870, - "nodeType": "Block", - "src": "10127:528:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 815, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "10145:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10153:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - }, - "value": "CrowdFund is not frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - } - ], - "id": 814, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "10137:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10137:42:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "10137:42:0" - }, - { - "assignments": [ - 820 - ], - "declarations": [ - { - "constant": false, - "id": 820, - "name": "isRefunded", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10189:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10189:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 825, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 821, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10207:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 823, - "indexExpression": { - "argumentTypes": null, - "id": 822, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10220:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10207:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10207:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10189:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10261:11:0", - "subExpression": { - "argumentTypes": null, - "id": 827, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "10262:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "537065636966696564206164647265737320697320616c726561647920726566756e646564", - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10274:39:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", - "typeString": "literal_string \"Specified address is already refunded\"" - }, - "value": "Specified address is already refunded" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", - "typeString": "literal_string \"Specified address is already refunded\"" - } - ], - "id": 826, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "10253:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10253:61:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "ExpressionStatement", - "src": "10253:61:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 832, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10324:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 834, - "indexExpression": { - "argumentTypes": null, - "id": 833, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10337:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10324:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10324:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10363:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "10324:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 838, - "nodeType": "ExpressionStatement", - "src": "10324:43:0" - }, - { - "assignments": [ - 840 - ], - "declarations": [ - { - "constant": false, - "id": 840, - "name": "contributionAmount", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10377:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10377:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 845, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 841, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10403:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 843, - "indexExpression": { - "argumentTypes": null, - "id": 842, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10416:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10403:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 844, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "10403:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10377:72:0" - }, - { - "assignments": [ - 847 - ], - "declarations": [ - { - "constant": false, - "id": 847, - "name": "amountToRefund", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10459:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 846, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10459:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 858, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 856, - "name": "frozenBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "10531:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 851, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "10512:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - ], - "id": 850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10504:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10504:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10504:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "contributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "10481:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "10481:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10481:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 1187, - "src": "10481:49:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10481:64:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10459:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 862, - "name": "amountToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "10578:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 859, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10555:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10555:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10555:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 864, - "nodeType": "ExpressionStatement", - "src": "10555:38:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 866, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10618:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 867, - "name": "amountToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "10633:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 865, - "name": "Withdrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "10608:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10608:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 869, - "nodeType": "EmitStatement", - "src": "10603:45:0" - } - ] - }, - "documentation": null, - "id": 871, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 812, - "modifierName": { - "argumentTypes": null, - "id": 811, - "name": "onlyFrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "10116:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10116:10:0" - } - ], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 809, - "name": "refundAddress", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10086:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10085:23:0" - }, - "payable": false, - "returnParameters": { - "id": 813, - "nodeType": "ParameterList", - "parameters": [], - "src": "10127:0:0" - }, - "scope": 1080, - "src": "10068:587:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 912, - "nodeType": "Block", - "src": "10801:322:0", - "statements": [ - { - "body": { - "id": 906, - "nodeType": "Block", - "src": "10861:221:0", - "statements": [ - { - "assignments": [ - 890 - ], - "declarations": [ - { - "constant": false, - "id": 890, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 913, - "src": "10875:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 894, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 891, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "10904:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 893, - "indexExpression": { - "argumentTypes": null, - "id": 892, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10920:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10904:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10875:47:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10940:42:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 895, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10941:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 897, - "indexExpression": { - "argumentTypes": null, - "id": 896, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 890, - "src": "10954:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10941:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 898, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10941:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 905, - "nodeType": "IfStatement", - "src": "10936:136:0", - "trueBody": { - "id": 904, - "nodeType": "Block", - "src": "10984:88:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f742079657420726566756e646564", - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11009:47:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", - "typeString": "literal_string \"At least one contributor has not yet refunded\"" - }, - "value": "At least one contributor has not yet refunded" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", - "typeString": "literal_string \"At least one contributor has not yet refunded\"" - } - ], - "id": 900, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1252, - 1253 - ], - "referencedDeclaration": 1253, - "src": "11002:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11002:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 903, - "nodeType": "ExpressionStatement", - "src": "11002:55:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 882, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10828:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 883, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "10832:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10828:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 907, - "initializationExpression": { - "assignments": [ - 879 - ], - "declarations": [ - { - "constant": false, - "id": 879, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 913, - "src": "10816:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10816:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 881, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10825:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10816:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10856:3:0", - "subExpression": { - "argumentTypes": null, - "id": 886, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10856:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 888, - "nodeType": "ExpressionStatement", - "src": "10856:3:0" - }, - "nodeType": "ForStatement", - "src": "10811:271:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 909, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "11104:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 908, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1255, - "src": "11091:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11091:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "11091:25:0" - } - ] - }, - "documentation": null, - "id": 913, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 874, - "modifierName": { - "argumentTypes": null, - "id": 873, - "name": "onlyTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "10778:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10778:11:0" - }, - { - "arguments": null, - "id": 876, - "modifierName": { - "argumentTypes": null, - "id": 875, - "name": "onlyFrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "10790:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10790:10:0" - } - ], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 872, - "nodeType": "ParameterList", - "parameters": [], - "src": "10768:2:0" - }, - "payable": false, - "returnParameters": { - "id": 877, - "nodeType": "ParameterList", - "parameters": [], - "src": "10801:0:0" - }, - "scope": 1080, - "src": "10752:371:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 927, - "nodeType": "Block", - "src": "11200:57:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11233:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 920, - "name": "valueVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 915, - "src": "11217:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "11217:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11217:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 924, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "11238:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11217:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 919, - "id": 926, - "nodeType": "Return", - "src": "11210:40:0" - } - ] - }, - "documentation": null, - "id": 928, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isMajorityVoting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 915, - "name": "valueVoting", - "nodeType": "VariableDeclaration", - "scope": 928, - "src": "11155:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 914, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11155:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11154:18:0" - }, - "payable": false, - "returnParameters": { - "id": 919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 918, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 928, - "src": "11194:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11194:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11193:6:0" - }, - "scope": 1080, - "src": "11129:128:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 958, - "nodeType": "Block", - "src": "11317:180:0", - "statements": [ - { - "body": { - "id": 954, - "nodeType": "Block", - "src": "11370:99:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "11388:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11388:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 946, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "11402:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 948, - "indexExpression": { - "argumentTypes": null, - "id": 947, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11411:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11402:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11388:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 953, - "nodeType": "IfStatement", - "src": "11384:75:0", - "trueBody": { - "id": 952, - "nodeType": "Block", - "src": "11415:44:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11440:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 932, - "id": 951, - "nodeType": "Return", - "src": "11433:11:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 937, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11344:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "11348:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 939, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11344:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 955, - "initializationExpression": { - "assignments": [ - 934 - ], - "declarations": [ - { - "constant": false, - "id": 934, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "11332:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 933, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11332:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 936, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11341:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11332:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11365:3:0", - "subExpression": { - "argumentTypes": null, - "id": 941, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11365:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 943, - "nodeType": "ExpressionStatement", - "src": "11365:3:0" - }, - "nodeType": "ForStatement", - "src": "11327:142:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11485:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 932, - "id": 957, - "nodeType": "Return", - "src": "11478:12:0" - } - ] - }, - "documentation": null, - "id": 959, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isCallerTrustee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 929, - "nodeType": "ParameterList", - "parameters": [], - "src": "11287:2:0" - }, - "payable": false, - "returnParameters": { - "id": 932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 931, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "11311:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 930, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11311:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11310:6:0" - }, - "scope": 1080, - "src": "11263:234:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 971, - "nodeType": "Block", - "src": "11550:62:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 964, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "11567:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 965, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "11574:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11567:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11586:19:0", - "subExpression": { - "argumentTypes": null, - "id": 967, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "11587:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11567:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 963, - "id": 970, - "nodeType": "Return", - "src": "11560:45:0" - } - ] - }, - "documentation": null, - "id": 972, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isFailed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [], - "src": "11520:2:0" - }, - "payable": false, - "returnParameters": { - "id": 963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 962, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 972, - "src": "11544:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 961, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11544:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11543:6:0" - }, - "scope": 1080, - "src": "11503:109:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 988, - "nodeType": "Block", - "src": "11731:90:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 981, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "11749:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 983, - "indexExpression": { - "argumentTypes": null, - "id": 982, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "11762:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11749:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 984, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "11749:49:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 986, - "indexExpression": { - "argumentTypes": null, - "id": 985, - "name": "milestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "11799:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11749:65:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 980, - "id": 987, - "nodeType": "Return", - "src": "11742:72:0" - } - ] - }, - "documentation": null, - "id": 989, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getContributorMilestoneVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 974, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11655:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 973, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11655:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 976, - "name": "milestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11683:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 975, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11683:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11654:49:0" - }, - "payable": false, - "returnParameters": { - "id": 980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 979, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11725:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 978, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11725:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11724:6:0" - }, - "scope": 1080, - "src": "11618:203:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1001, - "nodeType": "Block", - "src": "11924:75:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 996, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "11941:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 998, - "indexExpression": { - "argumentTypes": null, - "id": 997, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "11954:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11941:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "11941:51:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 995, - "id": 1000, - "nodeType": "Return", - "src": "11934:58:0" - } - ] - }, - "documentation": null, - "id": 1002, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getContributorContributionAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 991, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "11869:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11869:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11868:28:0" - }, - "payable": false, - "returnParameters": { - "id": 995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 994, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "11918:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 993, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11918:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11917:6:0" - }, - "scope": 1080, - "src": "11827:172:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1011, - "nodeType": "Block", - "src": "12059:42:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1008, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "12081:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - ], - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12076:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12076:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1006, - "id": 1010, - "nodeType": "Return", - "src": "12069:25:0" - } - ] - }, - "documentation": null, - "id": 1012, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFreezeReason", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "12029:2:0" - }, - "payable": false, - "returnParameters": { - "id": 1006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1012, - "src": "12053:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12053:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12052:6:0" - }, - "scope": 1080, - "src": "12005:96:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1020, - "nodeType": "Block", - "src": "12129:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "12147:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12155:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - }, - "value": "CrowdFund is not frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - } - ], - "id": 1014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12139:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12139:42:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1018, - "nodeType": "ExpressionStatement", - "src": "12139:42:0" - }, - { - "id": 1019, - "nodeType": "PlaceholderStatement", - "src": "12191:1:0" - } - ] - }, - "documentation": null, - "id": 1021, - "name": "onlyFrozen", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1013, - "nodeType": "ParameterList", - "parameters": [], - "src": "12126:2:0" - }, - "src": "12107:92:0", - "visibility": "internal" - }, - { - "body": { - "id": 1030, - "nodeType": "Block", - "src": "12229:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12247:7:0", - "subExpression": { - "argumentTypes": null, - "id": 1024, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "12248:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e642069732066726f7a656e", - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12256:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", - "typeString": "literal_string \"CrowdFund is frozen\"" - }, - "value": "CrowdFund is frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", - "typeString": "literal_string \"CrowdFund is frozen\"" - } - ], - "id": 1023, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12239:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12239:39:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1028, - "nodeType": "ExpressionStatement", - "src": "12239:39:0" - }, - { - "id": 1029, - "nodeType": "PlaceholderStatement", - "src": "12288:1:0" - } - ] - }, - "documentation": null, - "id": 1031, - "name": "onlyUnfrozen", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1022, - "nodeType": "ParameterList", - "parameters": [], - "src": "12226:2:0" - }, - "src": "12205:91:0", - "visibility": "internal" - }, - { - "body": { - "id": 1039, - "nodeType": "Block", - "src": "12324:84:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1034, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12342:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526169736520676f616c206973206e6f742072656163686564", - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12362:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", - "typeString": "literal_string \"Raise goal is not reached\"" - }, - "value": "Raise goal is not reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", - "typeString": "literal_string \"Raise goal is not reached\"" - } - ], - "id": 1033, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12334:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12334:56:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1037, - "nodeType": "ExpressionStatement", - "src": "12334:56:0" - }, - { - "id": 1038, - "nodeType": "PlaceholderStatement", - "src": "12400:1:0" - } - ] - }, - "documentation": null, - "id": 1040, - "name": "onlyRaised", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [], - "src": "12321:2:0" - }, - "src": "12302:106:0", - "visibility": "internal" - }, - { - "body": { - "id": 1053, - "nodeType": "Block", - "src": "12437:103:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1043, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "12455:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1044, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "12462:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12455:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12474:19:0", - "subExpression": { - "argumentTypes": null, - "id": 1046, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12475:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12455:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f74206f6e676f696e67", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12495:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", - "typeString": "literal_string \"CrowdFund is not ongoing\"" - }, - "value": "CrowdFund is not ongoing" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", - "typeString": "literal_string \"CrowdFund is not ongoing\"" - } - ], - "id": 1042, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12447:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12447:75:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "12447:75:0" - }, - { - "id": 1052, - "nodeType": "PlaceholderStatement", - "src": "12532:1:0" - } - ] - }, - "documentation": null, - "id": 1054, - "name": "onlyOnGoing", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1041, - "nodeType": "ParameterList", - "parameters": [], - "src": "12434:2:0" - }, - "src": "12414:126:0", - "visibility": "internal" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "12573:116:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1057, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "12591:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 1060, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1058, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "12604:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12604:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12591:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "12591:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12638:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12591:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f74206120636f6e7472696275746f72", - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12641:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", - "typeString": "literal_string \"Caller is not a contributor\"" - }, - "value": "Caller is not a contributor" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", - "typeString": "literal_string \"Caller is not a contributor\"" - } - ], - "id": 1056, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12583:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1066, - "nodeType": "ExpressionStatement", - "src": "12583:88:0" - }, - { - "id": 1067, - "nodeType": "PlaceholderStatement", - "src": "12681:1:0" - } - ] - }, - "documentation": null, - "id": 1069, - "name": "onlyContributor", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1055, - "nodeType": "ParameterList", - "parameters": [], - "src": "12570:2:0" - }, - "src": "12546:143:0", - "visibility": "internal" - }, - { - "body": { - "id": 1078, - "nodeType": "Block", - "src": "12718:81:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1072, - "name": "isCallerTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "12736:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12736:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420612074727573746565", - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12755:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", - "typeString": "literal_string \"Caller is not a trustee\"" - }, - "value": "Caller is not a trustee" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", - "typeString": "literal_string \"Caller is not a trustee\"" - } - ], - "id": 1071, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12728:53:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1076, - "nodeType": "ExpressionStatement", - "src": "12728:53:0" - }, - { - "id": 1077, - "nodeType": "PlaceholderStatement", - "src": "12791:1:0" - } - ] - }, - "documentation": null, - "id": 1079, - "name": "onlyTrustee", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [], - "src": "12715:2:0" - }, - "src": "12695:104:0", - "visibility": "internal" - } - ], - "scope": 1081, - "src": "87:12715:0" - } - ], - "src": "0:12802:0" - }, - "legacyAST": { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", - "exportedSymbols": { - "CrowdFund": [ - 1080 - ] - }, - "id": 1081, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:0" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 1081, - "sourceUnit": 1233, - "src": "25:59:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1080, - "linearizedBaseContracts": [ - 1080 - ], - "name": "CrowdFund", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 5, - "libraryName": { - "contractScope": null, - "id": 3, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1232, - "src": "118:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$1232", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "112:27:0", - "typeName": { - "id": 4, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "131:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "CrowdFund.FreezeReason", - "id": 9, - "members": [ - { - "id": 6, - "name": "CALLER_IS_TRUSTEE", - "nodeType": "EnumValue", - "src": "173:17:0" - }, - { - "id": 7, - "name": "CROWD_FUND_FAILED", - "nodeType": "EnumValue", - "src": "200:17:0" - }, - { - "id": 8, - "name": "MAJORITY_VOTING_TO_REFUND", - "nodeType": "EnumValue", - "src": "227:25:0" - } - ], - "name": "FreezeReason", - "nodeType": "EnumDefinition", - "src": "145:113:0" - }, - { - "constant": false, - "id": 11, - "name": "freezeReason", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "264:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - }, - "typeName": { - "contractScope": null, - "id": 10, - "name": "FreezeReason", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9, - "src": "264:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "value": null, - "visibility": "internal" - }, - { - "canonicalName": "CrowdFund.Milestone", - "id": 20, - "members": [ - { - "constant": false, - "id": 13, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "323:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "323:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 15, - "name": "amountVotingAgainstPayout", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "344:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 14, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "344:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 17, - "name": "payoutRequestVoteDeadline", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "384:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 16, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "384:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "name": "paid", - "nodeType": "VariableDeclaration", - "scope": 20, - "src": "424:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 18, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "424:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Milestone", - "nodeType": "StructDefinition", - "scope": 1080, - "src": "296:144:0", - "visibility": "public" - }, - { - "canonicalName": "CrowdFund.Contributor", - "id": 30, - "members": [ - { - "constant": false, - "id": 22, - "name": "contributionAmount", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "475:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 21, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "475:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "name": "milestoneNoVotes", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "565:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 23, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "565:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 24, - "length": null, - "nodeType": "ArrayTypeName", - "src": "565:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 27, - "name": "refundVote", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "598:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 26, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "598:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "name": "refunded", - "nodeType": "VariableDeclaration", - "scope": 30, - "src": "623:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 28, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "623:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Contributor", - "nodeType": "StructDefinition", - "scope": 1080, - "src": "446:197:0", - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 36, - "name": "Deposited", - "nodeType": "EventDefinition", - "parameters": { - "id": 35, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 32, - "indexed": true, - "name": "payee", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "665:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "665:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "indexed": false, - "name": "weiAmount", - "nodeType": "VariableDeclaration", - "scope": 36, - "src": "688:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 33, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "688:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "664:42:0" - }, - "src": "649:58:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "Withdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "indexed": true, - "name": "payee", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "728:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 40, - "indexed": false, - "name": "weiAmount", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "751:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 39, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "751:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "727:42:0" - }, - "src": "712:58:0" - }, - { - "constant": false, - "id": 44, - "name": "frozen", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "776:18:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 43, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "776:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "isRaiseGoalReached", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "800:30:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 45, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "800:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 48, - "name": "immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "836:41:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 47, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "836:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 50, - "name": "milestoneVotingPeriod", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "883:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "883:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 52, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "922:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 51, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "922:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 54, - "name": "raiseGoal", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "948:21:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 53, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "948:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 56, - "name": "amountRaised", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "975:24:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 55, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "975:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 58, - "name": "frozenBalance", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1005:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 57, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1005:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 60, - "name": "minimumContributionAmount", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1036:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 59, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1036:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 62, - "name": "amountVotingForRefund", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1079:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 61, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1079:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 64, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1118:26:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 63, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1118:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 68, - "name": "contributors", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1150:51:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor)" - }, - "typeName": { - "id": 67, - "keyType": { - "id": 65, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1158:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1150:31:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor)" - }, - "valueType": { - "contractScope": null, - "id": 66, - "name": "Contributor", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 30, - "src": "1169:11:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage_ptr", - "typeString": "struct CrowdFund.Contributor" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 71, - "name": "contributorList", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1207:32:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 69, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1207:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 70, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1207:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 74, - "name": "trustees", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1302:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 72, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1302:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 73, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1302:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 77, - "name": "milestones", - "nodeType": "VariableDeclaration", - "scope": 1080, - "src": "1401:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 75, - "name": "Milestone", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 20, - "src": "1401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage_ptr", - "typeString": "struct CrowdFund.Milestone" - } - }, - "id": 76, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1401:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage_ptr", - "typeString": "struct CrowdFund.Milestone[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 230, - "nodeType": "Block", - "src": "1679:1689:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 99, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 97, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "1697:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 98, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:7:0", - "subdenomination": "ether", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "value": "1" - }, - "src": "1697:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526169736520676f616c20697320736d616c6c6572207468616e2031206574686572", - "id": 100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1720:36:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_26795146958ed9fbe8e87984c5fe089e4c2d8b62328649a7a4271f6acc61ad53", - "typeString": "literal_string \"Raise goal is smaller than 1 ether\"" - }, - "value": "Raise goal is smaller than 1 ether" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_26795146958ed9fbe8e87984c5fe089e4c2d8b62328649a7a4271f6acc61ad53", - "typeString": "literal_string \"Raise goal is smaller than 1 ether\"" - } - ], - "id": 96, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1689:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 101, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1689:68:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 102, - "nodeType": "ExpressionStatement", - "src": "1689:68:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 104, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1775:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1775:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1795:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1775:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 108, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "1800:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1800:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1820:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1800:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1775:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5472757374656520616464726573736573206d757374206265206174206c65617374203120616e64206e6f74206d6f7265207468616e203130", - "id": 113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1824:59:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6f2fb94a1426f6092f6f6ba2fe0c80c7b869c8844f1b5c7d223031cf3376dbf4", - "typeString": "literal_string \"Trustee addresses must be at least 1 and not more than 10\"" - }, - "value": "Trustee addresses must be at least 1 and not more than 10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_6f2fb94a1426f6092f6f6ba2fe0c80c7b869c8844f1b5c7d223031cf3376dbf4", - "typeString": "literal_string \"Trustee addresses must be at least 1 and not more than 10\"" - } - ], - "id": 103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1767:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1767:117:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 115, - "nodeType": "ExpressionStatement", - "src": "1767:117:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 117, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1902:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1902:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1924:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1902:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 121, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "1929:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1929:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1951:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "src": "1929:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1902:51:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6573206d757374206265206174206c65617374203120616e64206e6f74206d6f7265207468616e203130", - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1955:52:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fa063e6a0c1c7b99eb5a849143b837901d68276acbf0f2c8247eed588a181ee2", - "typeString": "literal_string \"Milestones must be at least 1 and not more than 10\"" - }, - "value": "Milestones must be at least 1 and not more than 10" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fa063e6a0c1c7b99eb5a849143b837901d68276acbf0f2c8247eed588a181ee2", - "typeString": "literal_string \"Milestones must be at least 1 and not more than 10\"" - } - ], - "id": 116, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "1894:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1894:114:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 128, - "nodeType": "ExpressionStatement", - "src": "1894:114:0" - }, - { - "assignments": [ - 130 - ], - "declarations": [ - { - "constant": false, - "id": 130, - "name": "milestoneTotal", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2194:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2194:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 132, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 131, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2216:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2194:23:0" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "2273:431:0", - "statements": [ - { - "assignments": [ - 145 - ], - "declarations": [ - { - "constant": false, - "id": 145, - "name": "milestoneAmount", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2287:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 144, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2287:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 149, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 146, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2310:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 148, - "indexExpression": { - "argumentTypes": null, - "id": 147, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2322:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2310:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2287:37:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 151, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2346:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2364:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2346:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520616d6f756e74206d7573742062652067726561746572207468616e2030", - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2367:41:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8340f04f5ef6bd7e467fa70ba384c629e679986a39f0f5df8217fa4a3bb37fb3", - "typeString": "literal_string \"Milestone amount must be greater than 0\"" - }, - "value": "Milestone amount must be greater than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8340f04f5ef6bd7e467fa70ba384c629e679986a39f0f5df8217fa4a3bb37fb3", - "typeString": "literal_string \"Milestone amount must be greater than 0\"" - } - ], - "id": 150, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "2338:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2338:71:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 156, - "nodeType": "ExpressionStatement", - "src": "2338:71:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 157, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2423:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 160, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2459:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 158, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2440:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "2440:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2440:35:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2423:52:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 163, - "nodeType": "ExpressionStatement", - "src": "2423:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "milestoneAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "2541:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2601:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2647:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2672:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": null, - "id": 167, - "name": "Milestone", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "2505:9:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Milestone_$20_storage_ptr_$", - "typeString": "type(struct CrowdFund.Milestone storage pointer)" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "amount", - "payoutRequestVoteDeadline", - "amountVotingAgainstPayout", - "paid" - ], - "nodeType": "FunctionCall", - "src": "2505:187:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_memory", - "typeString": "struct CrowdFund.Milestone memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Milestone_$20_memory", - "typeString": "struct CrowdFund.Milestone memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 164, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2489:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2489:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Milestone_$20_storage_$returns$_t_uint256_$", - "typeString": "function (struct CrowdFund.Milestone storage ref) returns (uint256)" - } - }, - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2489:204:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 174, - "nodeType": "ExpressionStatement", - "src": "2489:204:0" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 137, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2244:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 138, - "name": "_milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2248:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2248:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2244:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 176, - "initializationExpression": { - "assignments": [ - 134 - ], - "declarations": [ - { - "constant": false, - "id": 134, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "2232:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2232:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 136, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2241:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2232:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2268:3:0", - "subExpression": { - "argumentTypes": null, - "id": 141, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "2268:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 143, - "nodeType": "ExpressionStatement", - "src": "2268:3:0" - }, - "nodeType": "ForStatement", - "src": "2227:477:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 178, - "name": "milestoneTotal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 130, - "src": "2721:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 179, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2739:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2721:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736520676f616c", - "id": 181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2751:39:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ce6e124acdc65e75fdb7bed5df7531503580223492fe0e86777f092c6d736e4", - "typeString": "literal_string \"Milestone total must equal raise goal\"" - }, - "value": "Milestone total must equal raise goal" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ce6e124acdc65e75fdb7bed5df7531503580223492fe0e86777f092c6d736e4", - "typeString": "literal_string \"Milestone total must equal raise goal\"" - } - ], - "id": 177, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "2713:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2713:78:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 183, - "nodeType": "ExpressionStatement", - "src": "2713:78:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 184, - "name": "minimumContributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "2878:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2906:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2878:29:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 187, - "nodeType": "ExpressionStatement", - "src": "2878:29:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 188, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "2917:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 189, - "name": "_raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2929:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2917:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 191, - "nodeType": "ExpressionStatement", - "src": "2917:22:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 192, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "2949:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 193, - "name": "_beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "2963:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2949:26:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "2949:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 196, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "2985:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 197, - "name": "_trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2996:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "2985:20:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 199, - "nodeType": "ExpressionStatement", - "src": "2985:20:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 200, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "3015:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 201, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "3026:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 202, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "3032:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3026:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3015:26:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 205, - "nodeType": "ExpressionStatement", - "src": "3015:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 206, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "3051:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 207, - "name": "_milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "3075:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3051:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 209, - "nodeType": "ExpressionStatement", - "src": "3051:46:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 210, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "3107:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 211, - "name": "_immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "3139:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3107:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 213, - "nodeType": "ExpressionStatement", - "src": "3107:62:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 214, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "3179:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3200:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3179:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "3179:26:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "3215:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3239:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3215:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 221, - "nodeType": "ExpressionStatement", - "src": "3215:25:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 222, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "3250:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3250:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 225, - "nodeType": "ExpressionStatement", - "src": "3250:14:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 226, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3345:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3360:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3345:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 229, - "nodeType": "ExpressionStatement", - "src": "3345:16:0" - } - ] - }, - "documentation": null, - "id": 231, - "implemented": true, - "isConstructor": true, - "isDeclaredConst": false, - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 94, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 79, - "name": "_raiseGoal", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1458:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1458:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 81, - "name": "_beneficiary", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1483:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1483:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 84, - "name": "_trustees", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1513:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 82, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1513:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 83, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1513:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 87, - "name": "_milestones", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1542:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 85, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1542:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 86, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1542:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1570:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1570:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 91, - "name": "_milestoneVotingPeriod", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1594:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 90, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1594:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 93, - "name": "_immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 231, - "src": "1631:35:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 92, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1631:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:219:0" - }, - "payable": false, - "returnParameters": { - "id": 95, - "nodeType": "ParameterList", - "parameters": [], - "src": "1679:0:0" - }, - "scope": 1080, - "src": "1437:1931:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 344, - "nodeType": "Block", - "src": "3436:1626:0", - "statements": [ - { - "assignments": [ - 239 - ], - "declarations": [ - { - "constant": false, - "id": 239, - "name": "newAmountRaised", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "3481:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3481:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 245, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 242, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "3521:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3521:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 240, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3504:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "3504:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3504:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3481:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 247, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "3549:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 248, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "3568:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3549:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "436f6e747269627574696f6e20657863656564732074686520726169736520676f616c2e", - "id": 250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3579:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f0b2440b5298f52584e66c42ff46ffb5990bc57d408f53ff052d607205091f05", - "typeString": "literal_string \"Contribution exceeds the raise goal.\"" - }, - "value": "Contribution exceeds the raise goal." - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f0b2440b5298f52584e66c42ff46ffb5990bc57d408f53ff052d607205091f05", - "typeString": "literal_string \"Contribution exceeds the raise goal.\"" - } - ], - "id": 246, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "3541:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3541:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 252, - "nodeType": "ExpressionStatement", - "src": "3541:77:0" - }, - { - "assignments": [ - 254 - ], - "declarations": [ - { - "constant": false, - "id": 254, - "name": "greaterThanMinimum", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4050:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4050:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 259, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 255, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4076:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4076:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 257, - "name": "minimumContributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "4089:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4076:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4050:64:0" - }, - { - "assignments": [ - 261 - ], - "declarations": [ - { - "constant": false, - "id": 261, - "name": "exactlyRaiseGoal", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4124:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 260, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4124:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 265, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 262, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "4148:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 263, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4167:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4148:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4124:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 267, - "name": "greaterThanMinimum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 254, - "src": "4194:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 268, - "name": "exactlyRaiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 261, - "src": "4216:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4194:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d73672e76616c75652067726561746572207468616e206d696e696d756d2c206f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7420746f20626520726169736564", - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4234:79:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_daec81a65fdf63ff22cc80539bfb1e860ba5e1c917be2dc57d9c7bffbe8d96a0", - "typeString": "literal_string \"msg.value greater than minimum, or msg.value == remaining amount to be raised\"" - }, - "value": "msg.value greater than minimum, or msg.value == remaining amount to be raised" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_daec81a65fdf63ff22cc80539bfb1e860ba5e1c917be2dc57d9c7bffbe8d96a0", - "typeString": "literal_string \"msg.value greater than minimum, or msg.value == remaining amount to be raised\"" - } - ], - "id": 266, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "4186:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4186:128:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "4186:128:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 273, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4380:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 276, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 274, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4393:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4393:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4380:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4380:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4427:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4380:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 322, - "nodeType": "Block", - "src": "4749:129:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 306, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4763:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 309, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 307, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4776:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4776:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4763:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4763:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 317, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4857:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4857:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 311, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4809:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 314, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 312, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4822:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4822:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4809:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "4809:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "4809:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4809:58:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4763:104:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 321, - "nodeType": "ExpressionStatement", - "src": "4763:104:0" - } - ] - }, - "id": 323, - "nodeType": "IfStatement", - "src": "4376:502:0", - "trueBody": { - "id": 305, - "nodeType": "Block", - "src": "4430:305:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 280, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "4444:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 283, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 281, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4457:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4457:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4444:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 285, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4521:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 286, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4521:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 290, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "4577:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 291, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4577:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4566:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_$", - "typeString": "function (uint256) pure returns (bool[] memory)" - }, - "typeName": { - "baseType": { - "id": 287, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4570:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 288, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4570:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - } - }, - "id": 292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4566:29:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory", - "typeString": "bool[] memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4625:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4658:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": null, - "id": 284, - "name": "Contributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "4471:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Contributor_$30_storage_ptr_$", - "typeString": "type(struct CrowdFund.Contributor storage pointer)" - } - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "contributionAmount", - "milestoneNoVotes", - "refundVote", - "refunded" - ], - "nodeType": "FunctionCall", - "src": "4471:207:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_memory", - "typeString": "struct CrowdFund.Contributor memory" - } - }, - "src": "4444:234:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 297, - "nodeType": "ExpressionStatement", - "src": "4444:234:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 301, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4713:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4713:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 298, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "4692:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4692:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4692:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 304, - "nodeType": "ExpressionStatement", - "src": "4692:32:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 324, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4888:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 325, - "name": "newAmountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 239, - "src": "4903:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4888:30:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 327, - "nodeType": "ExpressionStatement", - "src": "4888:30:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 328, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4932:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 329, - "name": "raiseGoal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4948:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4932:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 336, - "nodeType": "IfStatement", - "src": "4928:81:0", - "trueBody": { - "id": 335, - "nodeType": "Block", - "src": "4959:50:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 331, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "4973:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4994:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4973:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 334, - "nodeType": "ExpressionStatement", - "src": "4973:25:0" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 338, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "5033:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5033:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 340, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "5045:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5045:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 337, - "name": "Deposited", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "5023:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:32:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 343, - "nodeType": "EmitStatement", - "src": "5018:37:0" - } - ] - }, - "documentation": null, - "id": 345, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 234, - "modifierName": { - "argumentTypes": null, - "id": 233, - "name": "onlyOnGoing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "3411:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3411:11:0" - }, - { - "arguments": null, - "id": 236, - "modifierName": { - "argumentTypes": null, - "id": 235, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "3423:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3423:12:0" - } - ], - "name": "contribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "3393:2:0" - }, - "payable": true, - "returnParameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [], - "src": "3436:0:0" - }, - "scope": 1080, - "src": "3374:1688:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 479, - "nodeType": "Block", - "src": "5156:1550:0", - "statements": [ - { - "assignments": [ - 357 - ], - "declarations": [ - { - "constant": false, - "id": 357, - "name": "milestoneAlreadyPaid", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5166:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 356, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5166:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 362, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 358, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5194:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 360, - "indexExpression": { - "argumentTypes": null, - "id": 359, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5205:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5194:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 361, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "5194:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5166:50:0" - }, - { - "assignments": [ - 364 - ], - "declarations": [ - { - "constant": false, - "id": 364, - "name": "voteDeadlineHasPassed", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5226:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 363, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5226:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 371, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 365, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5255:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 367, - "indexExpression": { - "argumentTypes": null, - "id": 366, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5266:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5255:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 368, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "5255:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "5301:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5255:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5226:78:0" - }, - { - "assignments": [ - 373 - ], - "declarations": [ - { - "constant": false, - "id": 373, - "name": "majorityAgainstPayout", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5314:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 372, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5314:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 380, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 375, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5360:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 377, - "indexExpression": { - "argumentTypes": null, - "id": 376, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5371:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5360:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 378, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "5360:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 374, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "5343:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5343:61:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5314:90:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5468:21:0", - "subExpression": { - "argumentTypes": null, - "id": 382, - "name": "milestoneAlreadyPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 357, - "src": "5469:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520616c72656164792070616964", - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5491:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd4d403a6ac484772597de76d12f4c453245b6a9170210c47567df5d5a4b5442", - "typeString": "literal_string \"Milestone already paid\"" - }, - "value": "Milestone already paid" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd4d403a6ac484772597de76d12f4c453245b6a9170210c47567df5d5a4b5442", - "typeString": "literal_string \"Milestone already paid\"" - } - ], - "id": 381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "5460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5460:56:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 386, - "nodeType": "ExpressionStatement", - "src": "5460:56:0" - }, - { - "assignments": [ - 388 - ], - "declarations": [ - { - "constant": false, - "id": 388, - "name": "lowestIndexPaid", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5527:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 387, - "name": "int", - "nodeType": "ElementaryTypeName", - "src": "5527:3:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "-", - "prefix": true, - "src": "5549:2:0", - "subExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5550:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "typeDescriptions": { - "typeIdentifier": "t_rational_-1_by_1", - "typeString": "int_const -1" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5527:24:0" - }, - { - "body": { - "id": 415, - "nodeType": "Block", - "src": "5606:105:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 403, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5624:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 405, - "indexExpression": { - "argumentTypes": null, - "id": 404, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5635:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5624:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 406, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "5624:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 414, - "nodeType": "IfStatement", - "src": "5620:81:0", - "trueBody": { - "id": 413, - "nodeType": "Block", - "src": "5644:57:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 407, - "name": "lowestIndexPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "5662:15:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 409, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5684:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5680:3:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_int256_$", - "typeString": "type(int256)" - }, - "typeName": "int" - }, - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5680:6:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "5662:24:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "id": 412, - "nodeType": "ExpressionStatement", - "src": "5662:24:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 396, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5578:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 397, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5582:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5578:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 416, - "initializationExpression": { - "assignments": [ - 393 - ], - "declarations": [ - { - "constant": false, - "id": 393, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5566:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5566:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 395, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5575:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5566:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5601:3:0", - "subExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "5601:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "5601:3:0" - }, - "nodeType": "ForStatement", - "src": "5561:150:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 418, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5729:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 420, - "name": "lowestIndexPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 388, - "src": "5743:15:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5761:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5743:19:0", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - ], - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5738:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5738:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5729:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e652072657175657374206d75737420626520666f7220666972737420756e70616964206d696c6573746f6e65", - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5765:54:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_109e56ab422d6e7b920445e49fcf1dac376eba8dda71ea922747d3a4bf8e6081", - "typeString": "literal_string \"Milestone request must be for first unpaid milestone\"" - }, - "value": "Milestone request must be for first unpaid milestone" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_109e56ab422d6e7b920445e49fcf1dac376eba8dda71ea922747d3a4bf8e6081", - "typeString": "literal_string \"Milestone request must be for first unpaid milestone\"" - } - ], - "id": 417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "5721:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5721:99:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 427, - "nodeType": "ExpressionStatement", - "src": "5721:99:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 428, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "5912:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 430, - "indexExpression": { - "argumentTypes": null, - "id": 429, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5923:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5912:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 431, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "5912:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5912:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 460, - "name": "voteDeadlineHasPassed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "6544:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 461, - "name": "majorityAgainstPayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 373, - "src": "6569:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6544:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 477, - "nodeType": "IfStatement", - "src": "6540:160:0", - "trueBody": { - "id": 476, - "nodeType": "Block", - "src": "6592:108:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 463, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6606:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 465, - "indexExpression": { - "argumentTypes": null, - "id": 464, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6617:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6606:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6606:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6686:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 469, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "6660:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "6660:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6660:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 467, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "6652:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "6652:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6652:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6606:83:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 475, - "nodeType": "ExpressionStatement", - "src": "6606:83:0" - } - ] - } - }, - "id": 478, - "nodeType": "IfStatement", - "src": "5908:792:0", - "trueBody": { - "id": 459, - "nodeType": "Block", - "src": "5962:419:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 434, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "5980:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5989:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5980:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 437, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 48, - "src": "5994:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5980:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 457, - "nodeType": "Block", - "src": "6262:109:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 447, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6280:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 449, - "indexExpression": { - "argumentTypes": null, - "id": 448, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6291:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6280:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 450, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6280:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 453, - "name": "milestoneVotingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "6334:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 451, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "6326:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "6326:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6326:30:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6280:76:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 456, - "nodeType": "ExpressionStatement", - "src": "6280:76:0" - } - ] - }, - "id": 458, - "nodeType": "IfStatement", - "src": "5976:395:0", - "trueBody": { - "id": 446, - "nodeType": "Block", - "src": "6025:231:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 439, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "6194:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 441, - "indexExpression": { - "argumentTypes": null, - "id": 440, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 347, - "src": "6205:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6194:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 442, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "6194:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6240:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6194:47:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 445, - "nodeType": "ExpressionStatement", - "src": "6194:47:0" - } - ] - } - } - ] - } - } - ] - }, - "documentation": null, - "id": 480, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 350, - "modifierName": { - "argumentTypes": null, - "id": 349, - "name": "onlyTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "5120:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5120:11:0" - }, - { - "arguments": null, - "id": 352, - "modifierName": { - "argumentTypes": null, - "id": 351, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5132:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5132:10:0" - }, - { - "arguments": null, - "id": 354, - "modifierName": { - "argumentTypes": null, - "id": 353, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "5143:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5143:12:0" - } - ], - "name": "requestMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 347, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 480, - "src": "5101:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 346, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5101:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5100:12:0" - }, - "payable": false, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [], - "src": "5156:0:0" - }, - "scope": 1080, - "src": "5068:1638:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 591, - "nodeType": "Block", - "src": "6811:940:0", - "statements": [ - { - "assignments": [ - 494 - ], - "declarations": [ - { - "constant": false, - "id": 494, - "name": "existingMilestoneNoVote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6821:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 493, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6821:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 502, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 495, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "6852:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 498, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 496, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "6865:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6865:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6852:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 499, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "6852:41:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 501, - "indexExpression": { - "argumentTypes": null, - "id": 500, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "6894:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6852:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6821:79:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 504, - "name": "existingMilestoneNoVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "6918:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 505, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "6945:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6918:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566f74652076616c7565206d75737420626520646966666572656e74207468616e206578697374696e6720766f7465207374617465", - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6951:55:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2334a2a330d03e0c71ca6e5459a04a9f7768e423b19b905937ae90377f088fd6", - "typeString": "literal_string \"Vote value must be different than existing vote state\"" - }, - "value": "Vote value must be different than existing vote state" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2334a2a330d03e0c71ca6e5459a04a9f7768e423b19b905937ae90377f088fd6", - "typeString": "literal_string \"Vote value must be different than existing vote state\"" - } - ], - "id": 503, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "6910:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6910:97:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 509, - "nodeType": "ExpressionStatement", - "src": "6910:97:0" - }, - { - "assignments": [ - 511 - ], - "declarations": [ - { - "constant": false, - "id": 511, - "name": "milestoneVotingStarted", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7017:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 510, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7017:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 518, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 512, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7047:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 514, - "indexExpression": { - "argumentTypes": null, - "id": 513, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7058:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7047:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 515, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7047:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7093:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7047:47:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7017:77:0" - }, - { - "assignments": [ - 520 - ], - "declarations": [ - { - "constant": false, - "id": 520, - "name": "votePeriodHasEnded", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7104:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 519, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 527, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 521, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7130:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 523, - "indexExpression": { - "argumentTypes": null, - "id": 522, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7141:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7130:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7130:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 525, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "7177:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7130:50:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7104:76:0" - }, - { - "assignments": [ - 529 - ], - "declarations": [ - { - "constant": false, - "id": 529, - "name": "onGoingVote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "7190:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7190:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 534, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "milestoneVotingStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "7209:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7235:19:0", - "subExpression": { - "argumentTypes": null, - "id": 531, - "name": "votePeriodHasEnded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 520, - "src": "7236:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7209:45:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7190:64:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "onGoingVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "7272:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4d696c6573746f6e6520766f74696e67206d757374206265206f70656e", - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7285:31:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e1dd9ca228a57f4224f45d51f0cb40784c6630bbd866a76b741c781eb59d306", - "typeString": "literal_string \"Milestone voting must be open\"" - }, - "value": "Milestone voting must be open" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e1dd9ca228a57f4224f45d51f0cb40784c6630bbd866a76b741c781eb59d306", - "typeString": "literal_string \"Milestone voting must be open\"" - } - ], - "id": 535, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "7264:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7264:53:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 539, - "nodeType": "ExpressionStatement", - "src": "7264:53:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 540, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7327:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 543, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 541, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7340:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7340:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7327:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "7327:41:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 546, - "indexExpression": { - "argumentTypes": null, - "id": 545, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7369:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7327:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 547, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7378:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7327:55:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 549, - "nodeType": "ExpressionStatement", - "src": "7327:55:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "7396:5:0", - "subExpression": { - "argumentTypes": null, - "id": 550, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7397:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 570, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "7576:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 589, - "nodeType": "IfStatement", - "src": "7572:173:0", - "trueBody": { - "id": 588, - "nodeType": "Block", - "src": "7582:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 571, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7596:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 573, - "indexExpression": { - "argumentTypes": null, - "id": 572, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7607:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7596:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7596:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 580, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7690:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 583, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 581, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7703:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7703:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7690:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 584, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7690:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 575, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7642:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 577, - "indexExpression": { - "argumentTypes": null, - "id": 576, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7653:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7642:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 578, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7642:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "7642:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7642:92:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7596:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 587, - "nodeType": "ExpressionStatement", - "src": "7596:138:0" - } - ] - } - }, - "id": 590, - "nodeType": "IfStatement", - "src": "7392:353:0", - "trueBody": { - "id": 569, - "nodeType": "Block", - "src": "7403:163:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 552, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7417:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 554, - "indexExpression": { - "argumentTypes": null, - "id": 553, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7428:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7417:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 555, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7417:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 561, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "7511:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 564, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 562, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "7524:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7524:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7511:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "7511:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 556, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7463:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 558, - "indexExpression": { - "argumentTypes": null, - "id": 557, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 482, - "src": "7474:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7463:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7463:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "7463:47:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7463:92:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7417:138:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 568, - "nodeType": "ExpressionStatement", - "src": "7417:138:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 592, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 487, - "modifierName": { - "argumentTypes": null, - "id": 486, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "6771:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6771:15:0" - }, - { - "arguments": null, - "id": 489, - "modifierName": { - "argumentTypes": null, - "id": 488, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "6787:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6787:10:0" - }, - { - "arguments": null, - "id": 491, - "modifierName": { - "argumentTypes": null, - "id": 490, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "6798:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6798:12:0" - } - ], - "name": "voteMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 482, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6741:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 481, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6741:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 484, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 592, - "src": "6753:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 483, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6753:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6740:23:0" - }, - "payable": false, - "returnParameters": { - "id": 492, - "nodeType": "ParameterList", - "parameters": [], - "src": "6811:0:0" - }, - "scope": 1080, - "src": "6712:1039:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 678, - "nodeType": "Block", - "src": "7828:890:0", - "statements": [ - { - "assignments": [ - 602 - ], - "declarations": [ - { - "constant": false, - "id": 602, - "name": "voteDeadlineHasPassed", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7838:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 601, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7838:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 609, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 603, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7867:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 605, - "indexExpression": { - "argumentTypes": null, - "id": 604, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7878:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7867:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 606, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "payoutRequestVoteDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 17, - "src": "7867:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 607, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "7913:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7867:49:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7838:78:0" - }, - { - "assignments": [ - 611 - ], - "declarations": [ - { - "constant": false, - "id": 611, - "name": "majorityVotedNo", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7926:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 610, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7926:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 618, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 613, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "7966:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 615, - "indexExpression": { - "argumentTypes": null, - "id": 614, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7977:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7966:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 616, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amountVotingAgainstPayout", - "nodeType": "MemberAccess", - "referencedDeclaration": 15, - "src": "7966:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 612, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "7949:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7949:61:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7926:84:0" - }, - { - "assignments": [ - 620 - ], - "declarations": [ - { - "constant": false, - "id": 620, - "name": "milestoneAlreadyPaid", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "8020:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 619, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8020:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 625, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 621, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8048:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 623, - "indexExpression": { - "argumentTypes": null, - "id": 622, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8059:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8048:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "8048:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8020:50:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 626, - "name": "voteDeadlineHasPassed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "8084:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8109:16:0", - "subExpression": { - "argumentTypes": null, - "id": 627, - "name": "majorityVotedNo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "8110:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8084:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8129:21:0", - "subExpression": { - "argumentTypes": null, - "id": 630, - "name": "milestoneAlreadyPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "8130:20:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8084:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 676, - "nodeType": "Block", - "src": "8639:73:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "726571756972656420636f6e646974696f6e732077657265206e6f7420736174697366696564", - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8660:40:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", - "typeString": "literal_string \"required conditions were not satisfied\"" - }, - "value": "required conditions were not satisfied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c944a403407a4b450cdf033de02e1e093564ed6120fdd470c5daee653f2d6a87", - "typeString": "literal_string \"required conditions were not satisfied\"" - } - ], - "id": 672, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1252, - 1253 - ], - "referencedDeclaration": 1253, - "src": "8653:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8653:48:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 675, - "nodeType": "ExpressionStatement", - "src": "8653:48:0" - } - ] - }, - "id": 677, - "nodeType": "IfStatement", - "src": "8080:632:0", - "trueBody": { - "id": 671, - "nodeType": "Block", - "src": "8152:481:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 633, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8166:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 635, - "indexExpression": { - "argumentTypes": null, - "id": 634, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8177:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8166:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "paid", - "nodeType": "MemberAccess", - "referencedDeclaration": 19, - "src": "8166:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8191:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "8166:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 639, - "nodeType": "ExpressionStatement", - "src": "8166:29:0" - }, - { - "assignments": [ - 641 - ], - "declarations": [ - { - "constant": false, - "id": 641, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "8209:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 640, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8209:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 646, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 642, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8223:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 644, - "indexExpression": { - "argumentTypes": null, - "id": 643, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8234:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8223:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Milestone_$20_storage", - "typeString": "struct CrowdFund.Milestone storage ref" - } - }, - "id": 645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 13, - "src": "8223:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8209:38:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8282:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 647, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8261:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8261:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8261:28:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "8261:28:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 654, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8318:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 655, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8331:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 653, - "name": "Withdrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "8308:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8308:30:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 657, - "nodeType": "EmitStatement", - "src": "8303:35:0" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 661, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "8430:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 658, - "name": "milestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "8408:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Milestone_$20_storage_$dyn_storage", - "typeString": "struct CrowdFund.Milestone storage ref[] storage ref" - } - }, - "id": 659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8408:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "8408:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8408:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8440:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8408:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 670, - "nodeType": "IfStatement", - "src": "8404:219:0", - "trueBody": { - "id": 669, - "nodeType": "Block", - "src": "8443:180:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 666, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "8596:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 665, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1255, - "src": "8583:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8583:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 668, - "nodeType": "ExpressionStatement", - "src": "8583:25:0" - } - ] - } - } - ] - } - } - ] - }, - "documentation": null, - "id": 679, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 597, - "modifierName": { - "argumentTypes": null, - "id": 596, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "7804:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7804:10:0" - }, - { - "arguments": null, - "id": 599, - "modifierName": { - "argumentTypes": null, - "id": 598, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "7815:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7815:12:0" - } - ], - "name": "payMilestonePayout", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 595, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 594, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 679, - "src": "7785:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 593, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7785:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7784:12:0" - }, - "payable": false, - "returnParameters": { - "id": 600, - "nodeType": "ParameterList", - "parameters": [], - "src": "7828:0:0" - }, - "scope": 1080, - "src": "7757:961:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 742, - "nodeType": "Block", - "src": "8802:491:0", - "statements": [ - { - "assignments": [ - 691 - ], - "declarations": [ - { - "constant": false, - "id": 691, - "name": "refundVote", - "nodeType": "VariableDeclaration", - "scope": 743, - "src": "8812:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 690, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8812:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 697, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 692, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "8830:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 695, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 693, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "8843:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8843:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8830:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 696, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refundVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 27, - "src": "8830:35:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8812:53:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 699, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "8883:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 700, - "name": "refundVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "8891:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8883:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4578697374696e6720766f7465207374617465206973206964656e746963616c20746f20766f74652076616c7565", - "id": 702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8903:48:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", - "typeString": "literal_string \"Existing vote state is identical to vote value\"" - }, - "value": "Existing vote state is identical to vote value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_83d9b841f406ef52e32942228e28c13fcdb47e5fa9512f22f335b7955cb71cb5", - "typeString": "literal_string \"Existing vote state is identical to vote value\"" - } - ], - "id": 698, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "8875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8875:77:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 704, - "nodeType": "ExpressionStatement", - "src": "8875:77:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 705, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "8962:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 708, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 706, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "8975:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8975:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8962:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 709, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refundVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 27, - "src": "8962:35:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 710, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9000:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8962:42:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 712, - "nodeType": "ExpressionStatement", - "src": "8962:42:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "9018:5:0", - "subExpression": { - "argumentTypes": null, - "id": 713, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9019:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 727, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 681, - "src": "9162:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 740, - "nodeType": "IfStatement", - "src": "9158:129:0", - "trueBody": { - "id": 739, - "nodeType": "Block", - "src": "9168:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 728, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9182:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 731, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9232:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 734, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 732, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "9245:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9245:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9232:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 735, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9232:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 729, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9206:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1231, - "src": "9206:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9206:70:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9182:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 738, - "nodeType": "ExpressionStatement", - "src": "9182:94:0" - } - ] - } - }, - "id": 741, - "nodeType": "IfStatement", - "src": "9014:273:0", - "trueBody": { - "id": 726, - "nodeType": "Block", - "src": "9025:119:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 715, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9039:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 718, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "9089:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 721, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 719, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "9102:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9102:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9089:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "9089:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 716, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9063:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1207, - "src": "9063:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9063:70:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9039:94:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 725, - "nodeType": "ExpressionStatement", - "src": "9039:94:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 743, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 684, - "modifierName": { - "argumentTypes": null, - "id": 683, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "8762:15:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8762:15:0" - }, - { - "arguments": null, - "id": 686, - "modifierName": { - "argumentTypes": null, - "id": 685, - "name": "onlyRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "8778:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8778:10:0" - }, - { - "arguments": null, - "id": 688, - "modifierName": { - "argumentTypes": null, - "id": 687, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "8789:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8789:12:0" - } - ], - "name": "voteRefund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 681, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 743, - "src": "8744:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 680, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8744:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8743:11:0" - }, - "payable": false, - "returnParameters": { - "id": 689, - "nodeType": "ParameterList", - "parameters": [], - "src": "8802:0:0" - }, - "scope": 1080, - "src": "8724:569:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 806, - "nodeType": "Block", - "src": "9337:655:0", - "statements": [ - { - "assignments": [ - 749 - ], - "declarations": [ - { - "constant": false, - "id": 749, - "name": "callerIsTrustee", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9347:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 748, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9347:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 752, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 750, - "name": "isCallerTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "9370:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9370:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9347:40:0" - }, - { - "assignments": [ - 754 - ], - "declarations": [ - { - "constant": false, - "id": 754, - "name": "crowdFundFailed", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9397:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 753, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9397:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 757, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 755, - "name": "isFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "9420:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9420:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9397:33:0" - }, - { - "assignments": [ - 759 - ], - "declarations": [ - { - "constant": false, - "id": 759, - "name": "majorityVotingToRefund", - "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9440:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 758, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9440:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 763, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 761, - "name": "amountVotingForRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 62, - "src": "9487:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 760, - "name": "isMajorityVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 928, - "src": "9470:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9470:39:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9440:69:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 765, - "name": "callerIsTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "9527:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 766, - "name": "crowdFundFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "9546:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9527:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 768, - "name": "majorityVotingToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "9565:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "9527:60:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526571756972656420636f6e646974696f6e7320666f7220726566756e6420617265206e6f74206d6574", - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9589:44:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", - "typeString": "literal_string \"Required conditions for refund are not met\"" - }, - "value": "Required conditions for refund are not met" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1086fb0a245a80bddbec2bbf87c88d8fc142025bee989551e1ac5ccca15d31ff", - "typeString": "literal_string \"Required conditions for refund are not met\"" - } - ], - "id": 764, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "9519:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9519:115:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 772, - "nodeType": "ExpressionStatement", - "src": "9519:115:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 773, - "name": "callerIsTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 749, - "src": "9648:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "id": 780, - "name": "crowdFundFailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 754, - "src": "9745:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 792, - "nodeType": "Block", - "src": "9838:78:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 787, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9852:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 788, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9867:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "MAJORITY_VOTING_TO_REFUND", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9867:38:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9852:53:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 791, - "nodeType": "ExpressionStatement", - "src": "9852:53:0" - } - ] - }, - "id": 793, - "nodeType": "IfStatement", - "src": "9741:175:0", - "trueBody": { - "id": 786, - "nodeType": "Block", - "src": "9762:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 781, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9776:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 782, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9791:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CROWD_FUND_FAILED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9791:30:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9776:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 785, - "nodeType": "ExpressionStatement", - "src": "9776:45:0" - } - ] - } - }, - "id": 794, - "nodeType": "IfStatement", - "src": "9644:272:0", - "trueBody": { - "id": 779, - "nodeType": "Block", - "src": "9665:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 774, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "9679:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 775, - "name": "FreezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9, - "src": "9694:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_FreezeReason_$9_$", - "typeString": "type(enum CrowdFund.FreezeReason)" - } - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CALLER_IS_TRUSTEE", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9694:30:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "src": "9679:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - }, - "id": 778, - "nodeType": "ExpressionStatement", - "src": "9679:45:0" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 795, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "9925:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9934:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "9925:13:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 798, - "nodeType": "ExpressionStatement", - "src": "9925:13:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 799, - "name": "frozenBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "9948:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 801, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "9972:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - ], - "id": 800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9964:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9964:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9964:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9948:37:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 805, - "nodeType": "ExpressionStatement", - "src": "9948:37:0" - } - ] - }, - "documentation": null, - "id": 807, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 746, - "modifierName": { - "argumentTypes": null, - "id": 745, - "name": "onlyUnfrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1031, - "src": "9324:12:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9324:12:0" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 744, - "nodeType": "ParameterList", - "parameters": [], - "src": "9314:2:0" - }, - "payable": false, - "returnParameters": { - "id": 747, - "nodeType": "ParameterList", - "parameters": [], - "src": "9337:0:0" - }, - "scope": 1080, - "src": "9299:693:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 870, - "nodeType": "Block", - "src": "10127:528:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 815, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "10145:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10153:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - }, - "value": "CrowdFund is not frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - } - ], - "id": 814, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "10137:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10137:42:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "10137:42:0" - }, - { - "assignments": [ - 820 - ], - "declarations": [ - { - "constant": false, - "id": 820, - "name": "isRefunded", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10189:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 819, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10189:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 825, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 821, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10207:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 823, - "indexExpression": { - "argumentTypes": null, - "id": 822, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10220:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10207:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10207:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10189:54:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10261:11:0", - "subExpression": { - "argumentTypes": null, - "id": 827, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "10262:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "537065636966696564206164647265737320697320616c726561647920726566756e646564", - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10274:39:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", - "typeString": "literal_string \"Specified address is already refunded\"" - }, - "value": "Specified address is already refunded" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ad918abf6ea38b3d8dd6fccfc0198c349db0339300085e3846f4b85c44350efa", - "typeString": "literal_string \"Specified address is already refunded\"" - } - ], - "id": 826, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "10253:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10253:61:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "ExpressionStatement", - "src": "10253:61:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 832, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10324:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 834, - "indexExpression": { - "argumentTypes": null, - "id": 833, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10337:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10324:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10324:36:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10363:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "10324:43:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 838, - "nodeType": "ExpressionStatement", - "src": "10324:43:0" - }, - { - "assignments": [ - 840 - ], - "declarations": [ - { - "constant": false, - "id": 840, - "name": "contributionAmount", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10377:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 839, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10377:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 845, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 841, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10403:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 843, - "indexExpression": { - "argumentTypes": null, - "id": 842, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10416:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10403:27:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 844, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "10403:46:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10377:72:0" - }, - { - "assignments": [ - 847 - ], - "declarations": [ - { - "constant": false, - "id": 847, - "name": "amountToRefund", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10459:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 846, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10459:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 858, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 856, - "name": "frozenBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "10531:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 851, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "10512:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - ], - "id": 850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10504:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10504:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 853, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10504:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 848, - "name": "contributionAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 840, - "src": "10481:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "10481:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10481:45:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 1187, - "src": "10481:49:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10481:64:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10459:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 862, - "name": "amountToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "10578:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 859, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10555:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10555:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10555:38:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 864, - "nodeType": "ExpressionStatement", - "src": "10555:38:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 866, - "name": "refundAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 809, - "src": "10618:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 867, - "name": "amountToRefund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 847, - "src": "10633:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 865, - "name": "Withdrawn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "10608:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10608:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 869, - "nodeType": "EmitStatement", - "src": "10603:45:0" - } - ] - }, - "documentation": null, - "id": 871, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 812, - "modifierName": { - "argumentTypes": null, - "id": 811, - "name": "onlyFrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "10116:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10116:10:0" - } - ], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 809, - "name": "refundAddress", - "nodeType": "VariableDeclaration", - "scope": 871, - "src": "10086:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10086:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10085:23:0" - }, - "payable": false, - "returnParameters": { - "id": 813, - "nodeType": "ParameterList", - "parameters": [], - "src": "10127:0:0" - }, - "scope": 1080, - "src": "10068:587:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 912, - "nodeType": "Block", - "src": "10801:322:0", - "statements": [ - { - "body": { - "id": 906, - "nodeType": "Block", - "src": "10861:221:0", - "statements": [ - { - "assignments": [ - 890 - ], - "declarations": [ - { - "constant": false, - "id": 890, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 913, - "src": "10875:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 889, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10875:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 894, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 891, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "10904:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 893, - "indexExpression": { - "argumentTypes": null, - "id": 892, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10920:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10904:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10875:47:0" - }, - { - "condition": { - "argumentTypes": null, - "id": 899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10940:42:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 895, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "10941:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 897, - "indexExpression": { - "argumentTypes": null, - "id": 896, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 890, - "src": "10954:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10941:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 898, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 29, - "src": "10941:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 905, - "nodeType": "IfStatement", - "src": "10936:136:0", - "trueBody": { - "id": 904, - "nodeType": "Block", - "src": "10984:88:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f742079657420726566756e646564", - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11009:47:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", - "typeString": "literal_string \"At least one contributor has not yet refunded\"" - }, - "value": "At least one contributor has not yet refunded" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_85d231c62370fa6b43ee7ffe2e2243eb8d4631e742e97de3a2558a277a825be1", - "typeString": "literal_string \"At least one contributor has not yet refunded\"" - } - ], - "id": 900, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1252, - 1253 - ], - "referencedDeclaration": 1253, - "src": "11002:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11002:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 903, - "nodeType": "ExpressionStatement", - "src": "11002:55:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 882, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10828:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 883, - "name": "contributorList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "10832:15:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10832:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10828:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 907, - "initializationExpression": { - "assignments": [ - 879 - ], - "declarations": [ - { - "constant": false, - "id": 879, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 913, - "src": "10816:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10816:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 881, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10825:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "10816:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10856:3:0", - "subExpression": { - "argumentTypes": null, - "id": 886, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 879, - "src": "10856:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 888, - "nodeType": "ExpressionStatement", - "src": "10856:3:0" - }, - "nodeType": "ForStatement", - "src": "10811:271:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 909, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 64, - "src": "11104:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 908, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1255, - "src": "11091:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11091:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 911, - "nodeType": "ExpressionStatement", - "src": "11091:25:0" - } - ] - }, - "documentation": null, - "id": 913, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [ - { - "arguments": null, - "id": 874, - "modifierName": { - "argumentTypes": null, - "id": 873, - "name": "onlyTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1079, - "src": "10778:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10778:11:0" - }, - { - "arguments": null, - "id": 876, - "modifierName": { - "argumentTypes": null, - "id": 875, - "name": "onlyFrozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "10790:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10790:10:0" - } - ], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 872, - "nodeType": "ParameterList", - "parameters": [], - "src": "10768:2:0" - }, - "payable": false, - "returnParameters": { - "id": 877, - "nodeType": "ParameterList", - "parameters": [], - "src": "10801:0:0" - }, - "scope": 1080, - "src": "10752:371:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 927, - "nodeType": "Block", - "src": "11200:57:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11233:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - } - ], - "expression": { - "argumentTypes": null, - "id": 920, - "name": "valueVoting", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 915, - "src": "11217:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 1173, - "src": "11217:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11217:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 924, - "name": "amountRaised", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "11238:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11217:33:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 919, - "id": 926, - "nodeType": "Return", - "src": "11210:40:0" - } - ] - }, - "documentation": null, - "id": 928, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isMajorityVoting", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 916, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 915, - "name": "valueVoting", - "nodeType": "VariableDeclaration", - "scope": 928, - "src": "11155:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 914, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11155:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11154:18:0" - }, - "payable": false, - "returnParameters": { - "id": 919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 918, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 928, - "src": "11194:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 917, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11194:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11193:6:0" - }, - "scope": 1080, - "src": "11129:128:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 958, - "nodeType": "Block", - "src": "11317:180:0", - "statements": [ - { - "body": { - "id": 954, - "nodeType": "Block", - "src": "11370:99:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "11388:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11388:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 946, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "11402:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 948, - "indexExpression": { - "argumentTypes": null, - "id": 947, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11411:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11402:11:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11388:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 953, - "nodeType": "IfStatement", - "src": "11384:75:0", - "trueBody": { - "id": 952, - "nodeType": "Block", - "src": "11415:44:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11440:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 932, - "id": 951, - "nodeType": "Return", - "src": "11433:11:0" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 937, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11344:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 938, - "name": "trustees", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "11348:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 939, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11348:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11344:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 955, - "initializationExpression": { - "assignments": [ - 934 - ], - "declarations": [ - { - "constant": false, - "id": 934, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "11332:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 933, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11332:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 936, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11341:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "11332:10:0" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11365:3:0", - "subExpression": { - "argumentTypes": null, - "id": 941, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 934, - "src": "11365:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 943, - "nodeType": "ExpressionStatement", - "src": "11365:3:0" - }, - "nodeType": "ForStatement", - "src": "11327:142:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11485:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 932, - "id": 957, - "nodeType": "Return", - "src": "11478:12:0" - } - ] - }, - "documentation": null, - "id": 959, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isCallerTrustee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 929, - "nodeType": "ParameterList", - "parameters": [], - "src": "11287:2:0" - }, - "payable": false, - "returnParameters": { - "id": 932, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 931, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "11311:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 930, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11311:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11310:6:0" - }, - "scope": 1080, - "src": "11263:234:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 971, - "nodeType": "Block", - "src": "11550:62:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 964, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "11567:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 965, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "11574:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11567:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "11586:19:0", - "subExpression": { - "argumentTypes": null, - "id": 967, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "11587:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11567:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 963, - "id": 970, - "nodeType": "Return", - "src": "11560:45:0" - } - ] - }, - "documentation": null, - "id": 972, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "isFailed", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 960, - "nodeType": "ParameterList", - "parameters": [], - "src": "11520:2:0" - }, - "payable": false, - "returnParameters": { - "id": 963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 962, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 972, - "src": "11544:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 961, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11544:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11543:6:0" - }, - "scope": 1080, - "src": "11503:109:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 988, - "nodeType": "Block", - "src": "11731:90:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 981, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "11749:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 983, - "indexExpression": { - "argumentTypes": null, - "id": 982, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "11762:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11749:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 984, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "milestoneNoVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 25, - "src": "11749:49:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage", - "typeString": "bool[] storage ref" - } - }, - "id": 986, - "indexExpression": { - "argumentTypes": null, - "id": 985, - "name": "milestoneIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "11799:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11749:65:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 980, - "id": 987, - "nodeType": "Return", - "src": "11742:72:0" - } - ] - }, - "documentation": null, - "id": 989, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getContributorMilestoneVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 974, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11655:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 973, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11655:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 976, - "name": "milestoneIndex", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11683:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 975, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11683:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11654:49:0" - }, - "payable": false, - "returnParameters": { - "id": 980, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 979, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 989, - "src": "11725:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 978, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11725:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11724:6:0" - }, - "scope": 1080, - "src": "11618:203:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1001, - "nodeType": "Block", - "src": "11924:75:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 996, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "11941:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 998, - "indexExpression": { - "argumentTypes": null, - "id": 997, - "name": "contributorAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "11954:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11941:32:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 999, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "11941:51:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 995, - "id": 1000, - "nodeType": "Return", - "src": "11934:58:0" - } - ] - }, - "documentation": null, - "id": 1002, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getContributorContributionAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 991, - "name": "contributorAddress", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "11869:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 990, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11869:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11868:28:0" - }, - "payable": false, - "returnParameters": { - "id": 995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 994, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1002, - "src": "11918:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 993, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11918:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11917:6:0" - }, - "scope": 1080, - "src": "11827:172:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1011, - "nodeType": "Block", - "src": "12059:42:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1008, - "name": "freezeReason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "12081:12:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_FreezeReason_$9", - "typeString": "enum CrowdFund.FreezeReason" - } - ], - "id": 1007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12076:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint" - }, - "id": 1009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12076:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1006, - "id": 1010, - "nodeType": "Return", - "src": "12069:25:0" - } - ] - }, - "documentation": null, - "id": 1012, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getFreezeReason", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "12029:2:0" - }, - "payable": false, - "returnParameters": { - "id": 1006, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1005, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1012, - "src": "12053:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12053:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12052:6:0" - }, - "scope": 1080, - "src": "12005:96:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1020, - "nodeType": "Block", - "src": "12129:70:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1015, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "12147:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f742066726f7a656e", - "id": 1016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12155:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - }, - "value": "CrowdFund is not frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_144124cc12823f56a1037eeced499cee1638a07fba8aa0ce757da7cf592192bf", - "typeString": "literal_string \"CrowdFund is not frozen\"" - } - ], - "id": 1014, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12139:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12139:42:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1018, - "nodeType": "ExpressionStatement", - "src": "12139:42:0" - }, - { - "id": 1019, - "nodeType": "PlaceholderStatement", - "src": "12191:1:0" - } - ] - }, - "documentation": null, - "id": 1021, - "name": "onlyFrozen", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1013, - "nodeType": "ParameterList", - "parameters": [], - "src": "12126:2:0" - }, - "src": "12107:92:0", - "visibility": "internal" - }, - { - "body": { - "id": 1030, - "nodeType": "Block", - "src": "12229:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12247:7:0", - "subExpression": { - "argumentTypes": null, - "id": 1024, - "name": "frozen", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "12248:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e642069732066726f7a656e", - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12256:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", - "typeString": "literal_string \"CrowdFund is frozen\"" - }, - "value": "CrowdFund is frozen" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_21ebfed987d130de5e469bef5346c6c759f8769c3909e5f178aa85e98366503d", - "typeString": "literal_string \"CrowdFund is frozen\"" - } - ], - "id": 1023, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12239:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12239:39:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1028, - "nodeType": "ExpressionStatement", - "src": "12239:39:0" - }, - { - "id": 1029, - "nodeType": "PlaceholderStatement", - "src": "12288:1:0" - } - ] - }, - "documentation": null, - "id": 1031, - "name": "onlyUnfrozen", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1022, - "nodeType": "ParameterList", - "parameters": [], - "src": "12226:2:0" - }, - "src": "12205:91:0", - "visibility": "internal" - }, - { - "body": { - "id": 1039, - "nodeType": "Block", - "src": "12324:84:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1034, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12342:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "526169736520676f616c206973206e6f742072656163686564", - "id": 1035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12362:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", - "typeString": "literal_string \"Raise goal is not reached\"" - }, - "value": "Raise goal is not reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d65d4721f73624ca6e381e7ad4c000f40a20c0abe88c0be62360bb906d10ffbe", - "typeString": "literal_string \"Raise goal is not reached\"" - } - ], - "id": 1033, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12334:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12334:56:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1037, - "nodeType": "ExpressionStatement", - "src": "12334:56:0" - }, - { - "id": 1038, - "nodeType": "PlaceholderStatement", - "src": "12400:1:0" - } - ] - }, - "documentation": null, - "id": 1040, - "name": "onlyRaised", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1032, - "nodeType": "ParameterList", - "parameters": [], - "src": "12321:2:0" - }, - "src": "12302:106:0", - "visibility": "internal" - }, - { - "body": { - "id": 1053, - "nodeType": "Block", - "src": "12437:103:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1043, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "12455:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1044, - "name": "deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "12462:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12455:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 1047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "12474:19:0", - "subExpression": { - "argumentTypes": null, - "id": 1046, - "name": "isRaiseGoalReached", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12475:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12455:38:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43726f776446756e64206973206e6f74206f6e676f696e67", - "id": 1049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12495:26:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", - "typeString": "literal_string \"CrowdFund is not ongoing\"" - }, - "value": "CrowdFund is not ongoing" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_843cc2d7a1ba19041b40561b89d21c7571d29e5c5e2d0d1510f441aea3fc1747", - "typeString": "literal_string \"CrowdFund is not ongoing\"" - } - ], - "id": 1042, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12447:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12447:75:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1051, - "nodeType": "ExpressionStatement", - "src": "12447:75:0" - }, - { - "id": 1052, - "nodeType": "PlaceholderStatement", - "src": "12532:1:0" - } - ] - }, - "documentation": null, - "id": 1054, - "name": "onlyOnGoing", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1041, - "nodeType": "ParameterList", - "parameters": [], - "src": "12434:2:0" - }, - "src": "12414:126:0", - "visibility": "internal" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "12573:116:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1057, - "name": "contributors", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 68, - "src": "12591:12:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Contributor_$30_storage_$", - "typeString": "mapping(address => struct CrowdFund.Contributor storage ref)" - } - }, - "id": 1060, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1058, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "12604:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12604:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12591:24:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contributor_$30_storage", - "typeString": "struct CrowdFund.Contributor storage ref" - } - }, - "id": 1061, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributionAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 22, - "src": "12591:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12638:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12591:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f74206120636f6e7472696275746f72", - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12641:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", - "typeString": "literal_string \"Caller is not a contributor\"" - }, - "value": "Caller is not a contributor" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_27c7012fc5b199883f3d6c1e7d0d3c9cd967752b2ed8ba1703713f2d84425e7b", - "typeString": "literal_string \"Caller is not a contributor\"" - } - ], - "id": 1056, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12583:88:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1066, - "nodeType": "ExpressionStatement", - "src": "12583:88:0" - }, - { - "id": 1067, - "nodeType": "PlaceholderStatement", - "src": "12681:1:0" - } - ] - }, - "documentation": null, - "id": 1069, - "name": "onlyContributor", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1055, - "nodeType": "ParameterList", - "parameters": [], - "src": "12570:2:0" - }, - "src": "12546:143:0", - "visibility": "internal" - }, - { - "body": { - "id": 1078, - "nodeType": "Block", - "src": "12718:81:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1072, - "name": "isCallerTrustee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "12736:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", - "typeString": "function () view returns (bool)" - } - }, - "id": 1073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12736:17:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616c6c6572206973206e6f7420612074727573746565", - "id": 1074, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12755:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", - "typeString": "literal_string \"Caller is not a trustee\"" - }, - "value": "Caller is not a trustee" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_efecdf3be8b72bfbf67a07f441dfdb20b968592ad6d7fba48a91dfa72a34f2d8", - "typeString": "literal_string \"Caller is not a trustee\"" - } - ], - "id": 1071, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1250, - 1251 - ], - "referencedDeclaration": 1251, - "src": "12728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12728:53:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1076, - "nodeType": "ExpressionStatement", - "src": "12728:53:0" - }, - { - "id": 1077, - "nodeType": "PlaceholderStatement", - "src": "12791:1:0" - } - ] - }, - "documentation": null, - "id": 1079, - "name": "onlyTrustee", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1070, - "nodeType": "ParameterList", - "parameters": [], - "src": "12715:2:0" - }, - "src": "12695:104:0", - "visibility": "internal" - } - ], - "scope": 1081, - "src": "87:12715:0" - } - ], - "src": "0:12802:0" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.1", - "updatedAt": "2018-09-26T03:49:30.936Z" -} \ No newline at end of file diff --git a/contract/build/contracts/CrowdFundFactory.json b/contract/build/contracts/CrowdFundFactory.json deleted file mode 100644 index b42770e5..00000000 --- a/contract/build/contracts/CrowdFundFactory.json +++ /dev/null @@ -1,1566 +0,0 @@ -{ - "contractName": "CrowdFundFactory", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "newAddress", - "type": "address" - } - ], - "name": "ContractCreated", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "raiseGoalAmount", - "type": "uint256" - }, - { - "name": "payOutAddress", - "type": "address" - }, - { - "name": "trusteesAddresses", - "type": "address[]" - }, - { - "name": "allMilestones", - "type": "uint256[]" - }, - { - "name": "durationInSeconds", - "type": "uint256" - }, - { - "name": "milestoneVotingPeriodInSeconds", - "type": "uint256" - }, - { - "name": "immediateFirstMilestonePayout", - "type": "bool" - } - ], - "name": "createCrowdFund", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50613692806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132ee8061037983390190560060806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029a165627a7a7230582038c1809b6ce57218a64a17a9211e1b79cca7e3c5a544e99070a9b555c6cb52430029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806350f74ec014610046575b600080fd5b34801561005257600080fd5b5061013760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919080359060200190929190803515159060200190929190505050610179565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000808888888888888861018b610368565b808881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200186815260200185815260200184151515158152602001838103835288818151815260200191508051906020019060200280838360005b8381101561021d578082015181840152602081019050610202565b50505050905001838103825287818151815260200191508051906020019060200280838360005b8381101561025f578082015181840152602081019050610244565b505050509050019950505050505050505050604051809103906000f08015801561028d573d6000803e3d6000fd5b5090507fcf78cf0d6f3d8371e1075c69c492ab4ec5d8cf23a1a239b6a51a1d00be7ca31281604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a160008190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080915050979650505050505050565b6040516132ee8061037983390190560060806040523480156200001157600080fd5b50604051620032ee380380620032ee833981018060405281019080805190602001909291908051906020019092919080518201929190602001805182019291906020018051906020019092919080519060200190929190805190602001909291905050506000806000670de0b6b3a76400008a1015151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526169736520676f616c20697320736d616c6c6572207468616e20312065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001885110158015620001365750600a885111155b1515620001d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f5472757374656520616464726573736573206d757374206265206174206c656181526020017f7374203120616e64206e6f74206d6f7265207468616e2031300000000000000081525060400191505060405180910390fd5b6001875110158015620001e65750600a875111155b151562000281576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001807f4d696c6573746f6e6573206d757374206265206174206c65617374203120616e81526020017f64206e6f74206d6f7265207468616e203130000000000000000000000000000081525060400191505060405180910390fd5b60009250600091505b865182101562000416578682815181101515620002a357fe5b9060200190602002015190506000811115156200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4d696c6573746f6e6520616d6f756e74206d757374206265206772656174657281526020017f207468616e20300000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6200037181846200059b6401000000000262002ae5179091906401000000009004565b9250600c6080604051908101604052808381526020016000815260200160008152602001600015158152509080600181540180825580915050906001820390600052602060002090600402016000909192909190915060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff02191690831515021790555050505081806001019250506200028a565b8983141515620004b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d696c6573746f6e6520746f74616c206d75737420657175616c20726169736581526020017f20676f616c00000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60016006819055508960038190555088600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600b90805190602001906200051c929190620005b8565b508542016002819055508460018190555083600060036101000a81548160ff02191690831515021790555060008060026101000a81548160ff021916908315150217905550600060078190555060008060016101000a81548160ff0219169083151502179055506000600481905550505050505050505050506200068d565b60008183019050828110151515620005af57fe5b80905092915050565b82805482825590600052602060002090810192821562000634579160200282015b82811115620006335782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190620005d9565b5b50905062000643919062000647565b5090565b6200068a91905b808211156200068657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016200064e565b5090565b90565b612c51806200069d6000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063054f7d9c1461017a57806318329822146101a95780631f6d4942146101d45780631fe4d9dd1461024157806326e6074b1461027057806329dcb0cf1461029b5780632b99d7e4146102c657806337b028ef146102ff57806338af3eed1461032a57806347680fca1461038157806351cff8d9146103c6578063590e1ae31461040957806369d596fc14610420578063717d63a41461044f5780637923de2a146104bc5780637b3e5e7b1461051357806383197ef01461053e578063966778061461055557806396b6a34e146105ba5780639d5b06f7146105e75780639ec45bbe146106125780639f5557981461063f578063a3e9436c146106ac578063d6383230146106d7578063d7bb99ba14610702578063d9a992431461070c578063e88329691461073b578063e89e4ed61461076a578063f4163340146107c4575b600080fd5b34801561018657600080fd5b5061018f6107f3565b604051808215151515815260200191505060405180910390f35b3480156101b557600080fd5b506101be610806565b6040518082815260200191505060405180910390f35b3480156101e057600080fd5b50610215600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061080c565b604051808481526020018315151515815260200182151515158152602001935050505060405180910390f35b34801561024d57600080fd5b50610256610850565b604051808215151515815260200191505060405180910390f35b34801561027c57600080fd5b506102856108f1565b6040518082815260200191505060405180910390f35b3480156102a757600080fd5b506102b06108f7565b6040518082815260200191505060405180910390f35b3480156102d257600080fd5b506102fd600480360381019080803590602001909291908035151590602001909291905050506108fd565b005b34801561030b57600080fd5b50610314610e6f565b6040518082815260200191505060405180910390f35b34801561033657600080fd5b5061033f610e75565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561038d57600080fd5b506103ac60048036038101908080359060200190929190505050610e9b565b604051808215151515815260200191505060405180910390f35b3480156103d257600080fd5b50610407600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ebc565b005b34801561041557600080fd5b5061041e611231565b005b34801561042c57600080fd5b5061044d600480360381019080803515159060200190929190505050611445565b005b34801561045b57600080fd5b5061047a6004803603810190808035906020019092919050505061182a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104c857600080fd5b506104fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611868565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b506105286118b4565b6040518082815260200191505060405180910390f35b34801561054a57600080fd5b506105536118ba565b005b34801561056157600080fd5b506105a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b3d565b604051808215151515815260200191505060405180910390f35b3480156105c657600080fd5b506105e560048036038101908080359060200190929190505050611bb6565b005b3480156105f357600080fd5b506105fc61206b565b6040518082815260200191505060405180910390f35b34801561061e57600080fd5b5061063d60048036038101908080359060200190929190505050612071565b005b34801561064b57600080fd5b5061066a6004803603810190808035906020019092919050505061244a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b857600080fd5b506106c1612488565b6040518082815260200191505060405180910390f35b3480156106e357600080fd5b506106ec61248e565b6040518082815260200191505060405180910390f35b61070a6124af565b005b34801561071857600080fd5b50610721612a34565b604051808215151515815260200191505060405180910390f35b34801561074757600080fd5b50610750612a47565b604051808215151515815260200191505060405180910390f35b34801561077657600080fd5b5061079560048036038101908080359060200190929190505050612a5a565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b3480156107d057600080fd5b506107d9612aa6565b604051808215151515815260200191505060405180910390f35b600060019054906101000a900460ff1681565b60075481565b60096020528060005260406000206000915090508060000154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905083565b600080600090505b600b805490508110156108e857600b8181548110151561087457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156108db57600191506108ed565b8080600101915050610858565b600091505b5090565b60055481565b60025481565b6000806000806000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141515156109be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515610a42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515610ac7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010186815481101515610b1657fe5b90600052602060002090602091828204019190069054906101000a900460ff16935084151584151514151515610bda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f566f74652076616c7565206d75737420626520646966666572656e742074686181526020017f6e206578697374696e6720766f7465207374617465000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515610beb57fe5b90600052602060002090600402016002015411925042600c87815481101515610c1057fe5b90600052602060002090600402016002015411159150828015610c31575081155b9050801515610ca8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d696c6573746f6e6520766f74696e67206d757374206265206f70656e00000081525060200191505060405180910390fd5b84600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010187815481101515610cf857fe5b90600052602060002090602091828204019190066101000a81548160ff021916908315150217905550841515610dc657610d9d600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610d7d57fe5b906000526020600020906004020160010154612acc90919063ffffffff16565b600c87815481101515610dac57fe5b906000526020600020906004020160010181905550610e67565b8415610e6657610e41600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600c88815481101515610e2157fe5b906000526020600020906004020160010154612ae590919063ffffffff16565b600c87815481101515610e5057fe5b9060005260206000209060040201600101819055505b5b505050505050565b60065481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600454610eb4600284612b0190919063ffffffff16565b119050919050565b60008060008060019054906101000a900460ff161515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff169250821515156110b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f537065636966696564206164647265737320697320616c72656164792072656681526020017f756e64656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160016101000a81548160ff021916908315150217905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015491506111946005546111863073ffffffffffffffffffffffffffffffffffffffff163185612b0190919063ffffffff16565b612b3990919063ffffffff16565b90508373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156111dc573d6000803e3d6000fd5b508373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a250505050565b60008060008060019054906101000a900460ff161515156112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6112c2610850565b92506112cc612aa6565b91506112d9600754610e9b565b905082806112e45750815b806112ec5750805b1515611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f526571756972656420636f6e646974696f6e7320666f7220726566756e64206181526020017f7265206e6f74206d65740000000000000000000000000000000000000000000081525060400191505060405180910390fd5b82156113b45760008060006101000a81548160ff021916908360028111156113aa57fe5b0217905550611407565b81156113e25760016000806101000a81548160ff021916908360028111156113d857fe5b0217905550611406565b60026000806101000a81548160ff0219169083600281111561140057fe5b02179055505b5b6001600060016101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff1631600581905550505050565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151515611501576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f43616c6c6572206973206e6f74206120636f6e7472696275746f72000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611585576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615151561160a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050801515821515141515156116fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f4578697374696e6720766f7465207374617465206973206964656e746963616c81526020017f20746f20766f74652076616c756500000000000000000000000000000000000081525060400191505060405180910390fd5b81600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055508115156117c1576117b6600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612acc90919063ffffffff16565b600781905550611826565b81156118255761181e600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600754612ae590919063ffffffff16565b6007819055505b5b5050565b600b8181548110151561183957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60045481565b6000806118c5610850565b1515611939576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff1615156119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43726f776446756e64206973206e6f742066726f7a656e00000000000000000081525060200191505060405180910390fd5b600091505b600a80549050821015611b0257600a828154811015156119de57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160019054906101000a900460ff161515611af5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f4174206c65617374206f6e6520636f6e7472696275746f7220686173206e6f7481526020017f2079657420726566756e6465640000000000000000000000000000000000000081525060400191505060405180910390fd5b81806001019250506119c2565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010182815481101515611b8e57fe5b90600052602060002090602091828204019190069054906101000a900460ff16905092915050565b6000806000806000611bc6610850565b1515611c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206973206e6f742061207472757374656500000000000000000081525060200191505060405180910390fd5b600060029054906101000a900460ff161515611cbe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515611d43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b600c86815481101515611d5257fe5b906000526020600020906004020160030160009054906101000a900460ff16945042600c87815481101515611d8357fe5b906000526020600020906004020160020154119350611dc1600c87815481101515611daa57fe5b906000526020600020906004020160010154610e9b565b925084151515611e39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d696c6573746f6e6520616c726561647920706169640000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9150600090505b600c80549050811015611eb257600c81815481101515611e7d57fe5b906000526020600020906004020160030160009054906101000a900460ff1615611ea5578091505b8080600101915050611e61565b6001820186141515611f52576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001807f4d696c6573746f6e652072657175657374206d75737420626520666f7220666981526020017f72737420756e70616964206d696c6573746f6e6500000000000000000000000081525060400191505060405180910390fd5b6000600c87815481101515611f6357fe5b906000526020600020906004020160020154141561200657600086148015611f975750600060039054906101000a900460ff165b15611fc7576001600c87815481101515611fad57fe5b906000526020600020906004020160020181905550612001565b611fdc60015442612ae590919063ffffffff16565b600c87815481101515611feb57fe5b9060005260206000209060040201600201819055505b612063565b8380156120105750825b156120625761203d61202e6002600154612b0190919063ffffffff16565b42612ae590919063ffffffff16565b600c8781548110151561204c57fe5b9060005260206000209060040201600201819055505b5b505050505050565b60015481565b600080600080600060029054906101000a900460ff1615156120fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f526169736520676f616c206973206e6f7420726561636865640000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff16151515612180576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b42600c8681548110151561219057fe5b9060005260206000209060040201600201541093506121ce600c868154811015156121b757fe5b906000526020600020906004020160010154610e9b565b9250600c858154811015156121df57fe5b906000526020600020906004020160030160009054906101000a900460ff16915083801561220b575082155b8015612215575081155b156123af576001600c8681548110151561222b57fe5b906000526020600020906004020160030160006101000a81548160ff021916908315150217905550600c8581548110151561226257fe5b9060005260206000209060040201600001549050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122de573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5826040518082815260200191505060405180910390a2600161236986600c80549050612acc90919063ffffffff16565b14156123aa57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b612443565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f726571756972656420636f6e646974696f6e732077657265206e6f742073617481526020017f697366696564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5050505050565b600a8181548110151561245957fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60008060009054906101000a900460ff1660028111156124aa57fe5b905090565b600080600060025442111580156124d35750600060029054906101000a900460ff16155b1515612547576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f43726f776446756e64206973206e6f74206f6e676f696e67000000000000000081525060200191505060405180910390fd5b600060019054906101000a900460ff161515156125cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f43726f776446756e642069732066726f7a656e0000000000000000000000000081525060200191505060405180910390fd5b6125e134600454612ae590919063ffffffff16565b92506003548311151515612683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f436f6e747269627574696f6e206578636565647320746865207261697365206781526020017f6f616c2e0000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600654341015915060035483149050818061269b5750805b151561275b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604d8152602001807f6d73672e76616c75652067726561746572207468616e206d696e696d756d2c2081526020017f6f72206d73672e76616c7565203d3d2072656d61696e696e6720616d6f756e7481526020017f20746f206265207261697365640000000000000000000000000000000000000081525060600191505060405180910390fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154141561291657608060405190810160405280348152602001600c805490506040519080825280602002602001820160405280156127ec5781602001602082028038833980820191505090505b50815260200160001515815260200160001515815250600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001019080519060200190612867929190612b4f565b5060408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050600a3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506129b2565b61296b34600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154612ae590919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505b8260048190555060035460045414156129e1576001600060026101000a81548160ff0219169083151502179055505b3373ffffffffffffffffffffffffffffffffffffffff167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c4346040518082815260200191505060405180910390a2505050565b600060029054906101000a900460ff1681565b600060039054906101000a900460ff1681565b600c81815481101515612a6957fe5b90600052602060002090600402016000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60006002544210158015612ac75750600060029054906101000a900460ff16155b905090565b6000828211151515612ada57fe5b818303905092915050565b60008183019050828110151515612af857fe5b80905092915050565b600080831415612b145760009050612b33565b8183029050818382811515612b2557fe5b04141515612b2f57fe5b8090505b92915050565b60008183811515612b4657fe5b04905092915050565b82805482825590600052602060002090601f01602090048101928215612be45791602002820160005b83821115612bb557835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612b78565b8015612be25782816101000a81549060ff0219169055600101602081600001049283019260010302612bb5565b505b509050612bf19190612bf5565b5090565b612c2291905b80821115612c1e57600081816101000a81549060ff021916905550600101612bfb565b5090565b905600a165627a7a72305820b725d6ed533ba3c21fcb343e8c393171f8c562c1668224983554c10c88ce87060029a165627a7a7230582038c1809b6ce57218a64a17a9211e1b79cca7e3c5a544e99070a9b555c6cb52430029", - "sourceMap": "52:860:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:860:1;;;;;;;", - "deployedSourceMap": "52:860:1:-;;;;;;;;;;;;;;;;;;;;;;;;159:751;;8:9:-1;5:2;;;30:1;27;20:12;5:2;159:751:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;462:7;481:28;539:15;568:13;595:17;626:13;653:17;684:30;728:29;512:255;;:::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;512:255:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;512:255:1;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;512:255:1;481:286;;782:37;798:20;782:37;;;;;;;;;;;;;;;;;;;;;;829:10;845:20;829:37;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;829:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:20;876:27;;159:751;;;;;;;;;;:::o;52:860::-;;;;;;;;;;:::o", - "source": "pragma solidity ^0.4.24;\nimport \"./CrowdFund.sol\";\n\ncontract CrowdFundFactory {\n address[] crowdfunds;\n\n event ContractCreated(address newAddress);\n\n function createCrowdFund (\n uint raiseGoalAmount, \n address payOutAddress, \n address[] trusteesAddresses, \n uint[] allMilestones,\n uint durationInSeconds,\n uint milestoneVotingPeriodInSeconds,\n bool immediateFirstMilestonePayout\n ) public returns(address) {\n address newCrowdFundContract = new CrowdFund(\n raiseGoalAmount,\n payOutAddress,\n trusteesAddresses,\n allMilestones,\n durationInSeconds,\n milestoneVotingPeriodInSeconds,\n immediateFirstMilestonePayout\n );\n emit ContractCreated(newCrowdFundContract);\n crowdfunds.push(newCrowdFundContract);\n return newCrowdFundContract;\n }\n}", - "sourcePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", - "ast": { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", - "exportedSymbols": { - "CrowdFundFactory": [ - 1138 - ] - }, - "id": 1139, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1082, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", - "file": "./CrowdFund.sol", - "id": 1083, - "nodeType": "ImportDirective", - "scope": 1139, - "sourceUnit": 1081, - "src": "25:25:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 1080 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1138, - "linearizedBaseContracts": [ - 1138 - ], - "name": "CrowdFundFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1086, - "name": "crowdfunds", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "84:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "84:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1085, - "length": null, - "nodeType": "ArrayTypeName", - "src": "84:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 1090, - "name": "ContractCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "indexed": false, - "name": "newAddress", - "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "133:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:20:1" - }, - "src": "111:42:1" - }, - { - "body": { - "id": 1136, - "nodeType": "Block", - "src": "471:439:1", - "statements": [ - { - "assignments": [ - 1112 - ], - "declarations": [ - { - "constant": false, - "id": 1112, - "name": "newCrowdFundContract", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "481:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "481:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1123, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1115, - "name": "raiseGoalAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "539:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1116, - "name": "payOutAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "568:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1117, - "name": "trusteesAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1097, - "src": "595:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1118, - "name": "allMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1100, - "src": "626:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1119, - "name": "durationInSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "653:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "milestoneVotingPeriodInSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "684:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1121, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "728:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "512:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1080_$", - "typeString": "function (uint256,address,address[] memory,uint256[] memory,uint256,uint256,bool) returns (contract CrowdFund)" - }, - "typeName": { - "contractScope": null, - "id": 1113, - "name": "CrowdFund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1080, - "src": "516:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "512:255:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "481:286:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1125, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "798:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1124, - "name": "ContractCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "782:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "782:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "EmitStatement", - "src": "777:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1131, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "845:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1128, - "name": "crowdfunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "829:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "829:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "829:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "829:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1134, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "883:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1110, - "id": 1135, - "nodeType": "Return", - "src": "876:27:1" - } - ] - }, - "documentation": null, - "id": 1137, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createCrowdFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1092, - "name": "raiseGoalAmount", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "194:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1091, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "194:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1094, - "name": "payOutAddress", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "225:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1097, - "name": "trusteesAddresses", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "257:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1096, - "length": null, - "nodeType": "ArrayTypeName", - "src": "257:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1100, - "name": "allMilestones", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "295:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1098, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "295:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1099, - "length": null, - "nodeType": "ArrayTypeName", - "src": "295:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1102, - "name": "durationInSeconds", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "325:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1101, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "325:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1104, - "name": "milestoneVotingPeriodInSeconds", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "357:35:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "357:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1106, - "name": "immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "402:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1105, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "402:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "184:262:1" - }, - "payable": false, - "returnParameters": { - "id": 1110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1109, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "462:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:9:1" - }, - "scope": 1138, - "src": "159:751:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1139, - "src": "52:860:1" - } - ], - "src": "0:912:1" - }, - "legacyAST": { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFundFactory.sol", - "exportedSymbols": { - "CrowdFundFactory": [ - 1138 - ] - }, - "id": 1139, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1082, - "literals": [ - "solidity", - "^", - "0.4", - ".24" - ], - "nodeType": "PragmaDirective", - "src": "0:24:1" - }, - { - "absolutePath": "/Users/danielternyak2/ActiveDevelopment/grant-monorepo/contract/contracts/CrowdFund.sol", - "file": "./CrowdFund.sol", - "id": 1083, - "nodeType": "ImportDirective", - "scope": 1139, - "sourceUnit": 1081, - "src": "25:25:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 1080 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1138, - "linearizedBaseContracts": [ - 1138 - ], - "name": "CrowdFundFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1086, - "name": "crowdfunds", - "nodeType": "VariableDeclaration", - "scope": 1138, - "src": "84:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1084, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "84:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1085, - "length": null, - "nodeType": "ArrayTypeName", - "src": "84:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 1090, - "name": "ContractCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "indexed": false, - "name": "newAddress", - "nodeType": "VariableDeclaration", - "scope": 1090, - "src": "133:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "133:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "132:20:1" - }, - "src": "111:42:1" - }, - { - "body": { - "id": 1136, - "nodeType": "Block", - "src": "471:439:1", - "statements": [ - { - "assignments": [ - 1112 - ], - "declarations": [ - { - "constant": false, - "id": 1112, - "name": "newCrowdFundContract", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "481:28:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1111, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "481:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1123, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1115, - "name": "raiseGoalAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1092, - "src": "539:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1116, - "name": "payOutAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "568:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1117, - "name": "trusteesAddresses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1097, - "src": "595:17:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1118, - "name": "allMilestones", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1100, - "src": "626:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1119, - "name": "durationInSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1102, - "src": "653:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1120, - "name": "milestoneVotingPeriodInSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1104, - "src": "684:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1121, - "name": "immediateFirstMilestonePayout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "728:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "512:13:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_bool_$returns$_t_contract$_CrowdFund_$1080_$", - "typeString": "function (uint256,address,address[] memory,uint256[] memory,uint256,uint256,bool) returns (contract CrowdFund)" - }, - "typeName": { - "contractScope": null, - "id": 1113, - "name": "CrowdFund", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1080, - "src": "516:9:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - } - }, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "512:255:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CrowdFund_$1080", - "typeString": "contract CrowdFund" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "481:286:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1125, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "798:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1124, - "name": "ContractCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1090, - "src": "782:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "782:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1127, - "nodeType": "EmitStatement", - "src": "777:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1131, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "845:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1128, - "name": "crowdfunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "829:10:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 1130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "829:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "829:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1133, - "nodeType": "ExpressionStatement", - "src": "829:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 1134, - "name": "newCrowdFundContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1112, - "src": "883:20:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 1110, - "id": 1135, - "nodeType": "Return", - "src": "876:27:1" - } - ] - }, - "documentation": null, - "id": 1137, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createCrowdFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1092, - "name": "raiseGoalAmount", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "194:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1091, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "194:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1094, - "name": "payOutAddress", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "225:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "225:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1097, - "name": "trusteesAddresses", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "257:27:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1095, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1096, - "length": null, - "nodeType": "ArrayTypeName", - "src": "257:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1100, - "name": "allMilestones", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "295:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1098, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "295:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1099, - "length": null, - "nodeType": "ArrayTypeName", - "src": "295:6:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1102, - "name": "durationInSeconds", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "325:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1101, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "325:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1104, - "name": "milestoneVotingPeriodInSeconds", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "357:35:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1103, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "357:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1106, - "name": "immediateFirstMilestonePayout", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "402:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1105, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "402:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "184:262:1" - }, - "payable": false, - "returnParameters": { - "id": 1110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1109, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "462:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:9:1" - }, - "scope": 1138, - "src": "159:751:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1139, - "src": "52:860:1" - } - ], - "src": "0:912:1" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": { - "3": { - "events": {}, - "links": {}, - "address": "0x2bfade54e1afc13d50bcb14b8134aafc0be59558", - "transactionHash": "0xf9aa2d035873d9ae6f3bf1d3a254ca774c22b2cd37c3d92ee41218fe3677e5f2" - }, - "1537836920395": { - "events": {}, - "links": {}, - "address": "0xf313d4b4f8c2467d6552c51392076ba90aa233b3", - "transactionHash": "0x6158097c6dcb93aeaad4b21ea540bf2a97d52050c04d36e54558df1aff60bbb8" - } - }, - "schemaVersion": "2.0.1", - "updatedAt": "2018-09-26T04:00:55.909Z" -} \ No newline at end of file diff --git a/frontend/.envexample b/frontend/.envexample index 47777cc6..9e4b4151 100644 --- a/frontend/.envexample +++ b/frontend/.envexample @@ -5,4 +5,7 @@ FUND_ETH_ADDRESSES=0x4bbeEB066eD09B7AEd07bF39EEe0460DFa261520,0xDECAF9CD2367cdbb NO_DEV_TS_CHECK=true # Set the public host url (no trailing slash) -PUBLIC_HOST_URL=https://demo.grant.io \ No newline at end of file +PUBLIC_HOST_URL=https://demo.grant.io + +CROWD_FUND_URL = "https://eip-712.herokuapp.com/contract/crowd-fund" +CROWD_FUND_FACTORY_URL = "https://eip-712.herokuapp.com/contract/factory" \ No newline at end of file diff --git a/frontend/.nvmrc b/frontend/.nvmrc index e4ecad26..85943544 100644 --- a/frontend/.nvmrc +++ b/frontend/.nvmrc @@ -1 +1 @@ -8.11.4 \ No newline at end of file +8.13.0 \ No newline at end of file diff --git a/frontend/Procfile b/frontend/Procfile new file mode 100644 index 00000000..709e0a25 --- /dev/null +++ b/frontend/Procfile @@ -0,0 +1 @@ +web: yarn start \ No newline at end of file diff --git a/frontend/client/api/api.ts b/frontend/client/api/api.ts index 79df6f12..952cd471 100644 --- a/frontend/client/api/api.ts +++ b/frontend/client/api/api.ts @@ -1,9 +1,9 @@ import axios from './axios'; import { Proposal, TeamMember, Update } from 'types'; import { + formatProposalFromGet, formatTeamMemberForPost, formatTeamMemberFromGet, - formatProposalFromGet, } from 'utils/api'; import { PROPOSAL_CATEGORY } from './constants'; @@ -91,6 +91,16 @@ export function verifyEmail(code: string): Promise { return axios.post(`/api/v1/email/${code}/verify`); } +export async function fetchCrowdFundFactoryJSON(): Promise { + const res = await axios.get(process.env.CROWD_FUND_FACTORY_URL as string); + return res.data; +} + +export async function fetchCrowdFundJSON(): Promise { + const res = await axios.get(process.env.CROWD_FUND_URL as string); + return res.data; +} + export function postProposalUpdate( proposalId: number, title: string, diff --git a/frontend/client/lib/crowdFundContracts.ts b/frontend/client/lib/crowdFundContracts.ts index 58b9bc52..679765a9 100644 --- a/frontend/client/lib/crowdFundContracts.ts +++ b/frontend/client/lib/crowdFundContracts.ts @@ -1,6 +1,6 @@ import Web3 from 'web3'; import getContractInstance from './getContract'; -import CrowdFund from 'lib/contracts/CrowdFund.json'; +import { fetchCrowdFundJSON } from 'api/api'; const contractCache = {} as { [key: string]: any }; @@ -9,6 +9,12 @@ export async function getCrowdFundContract(web3: Web3 | null, deployedAddress: s throw new Error('getCrowdFundAddress: web3 was null but is required!'); } if (!contractCache[deployedAddress]) { + let CrowdFund; + if (process.env.CROWD_FUND_FACTORY_URL) { + CrowdFund = await fetchCrowdFundJSON(); + } else { + CrowdFund = await import('./contracts/CrowdFund.json'); + } try { contractCache[deployedAddress] = await getContractInstance( web3, diff --git a/frontend/client/modules/web3/sagas.ts b/frontend/client/modules/web3/sagas.ts index 6c683b10..01bbea98 100644 --- a/frontend/client/modules/web3/sagas.ts +++ b/frontend/client/modules/web3/sagas.ts @@ -1,18 +1,22 @@ import { SagaIterator } from 'redux-saga'; -import { put, all, fork, take, takeLatest, select, call } from 'redux-saga/effects'; -import { setWeb3, setAccounts, setContract } from './actions'; +import { all, call, fork, put, select, take, takeLatest } from 'redux-saga/effects'; +import { setAccounts, setContract, setWeb3 } from './actions'; import { selectWeb3 } from './selectors'; import { safeEnable } from 'utils/web3'; import types from './types'; +import { fetchCrowdFundFactoryJSON } from 'api/api'; /* tslint:disable no-var-requires --- TODO: find a better way to import contract */ -const CrowdFundFactory = require('lib/contracts/CrowdFundFactory.json'); +let CrowdFundFactory = require('lib/contracts/CrowdFundFactory.json'); export function* bootstrapWeb3(): SagaIterator { // Don't attempt to bootstrap web3 on SSR if (process.env.SERVER_SIDE_RENDER) { return; } + if (process.env.CROWD_FUND_FACTORY_URL) { + CrowdFundFactory = yield call(fetchCrowdFundFactoryJSON); + } yield put(setWeb3()); yield take(types.WEB3_FULFILLED); diff --git a/frontend/config/env.js b/frontend/config/env.js index 85696cc8..08c611c2 100644 --- a/frontend/config/env.js +++ b/frontend/config/env.js @@ -26,14 +26,29 @@ dotenvFiles.forEach(dotenvFile => { } }); -if (!process.env.PUBLIC_HOST_URL) { - if (process.env.NODE_ENV === 'production') { - throw new Error( - 'The process.env.PUBLIC_HOST_URL environment variable is required but was not specified.', - ); +const envProductionRequiredHandler = (envVariable, fallbackValue) => { + if (!process.env[envVariable]) { + if (process.env.NODE_ENV === 'production') { + throw new Error( + `The process.env.${envVariable} environment variable is required but was not specified.`, + ); + } + process.env[envVariable] = fallbackValue; } - process.env.PUBLIC_HOST_URL = 'http://localhost:' + (process.env.PORT || 3000); -} +}; + +envProductionRequiredHandler( + 'PUBLIC_HOST_URL', + 'http://localhost:' + (process.env.PORT || 3000), +); +envProductionRequiredHandler( + 'CROWD_FUND_URL', + 'https://eip-712.herokuapp.com/contract/crowd-fund', +); +envProductionRequiredHandler( + 'CROWD_FUND_FACTORY_URL', + 'https://eip-712.herokuapp.com/contract/factory', +); const appDirectory = fs.realpathSync(process.cwd()); process.env.NODE_PATH = (process.env.NODE_PATH || '') diff --git a/frontend/package.json b/frontend/package.json index 5322e8ee..9ef3cc1f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "grant", - "version": "1.0.1", + "version": "1.0.2", "main": "index.js", "license": "MIT", "scripts": { @@ -10,12 +10,16 @@ "lint": "tslint --project ./tsconfig.json --config ./tslint.json -e \"**/build/**\"", "start": "NODE_ENV=production node ./build/server/server.js", "now": "npm run build && now -e BACKEND_URL=https://grant-stage.herokuapp.com", + "heroku-postbuild": "yarn build", "tsc": "tsc", "link-contracts": "cd client/lib && ln -s ../../build/contracts contracts", "ganache": "ganache-cli -b 5", "truffle": "truffle exec ./bin/init-truffle.js && cd client/lib/contracts && truffle console", "storybook": "start-storybook -p 9001 -c .storybook" }, + "engines": { + "node": "8.13.0" + }, "husky": { "hooks": { "pre-commit": "lint-staged",