diff --git a/.env b/.env index ce3e2aa..c758979 100755 --- a/.env +++ b/.env @@ -1,9 +1,5 @@ # Development REACT_APP_DEV_ETHEREUM_PROVIDER=http://localhost:8545 -REACT_APP_DEV_STORE_PROVIDER=https://kleros.in -REACT_APP_DEV_ARBITRATOR_ADDRESS=
# Production REACT_APP_PROD_ETHEREUM_PROVIDER= -REACT_APP_PROD_STORE_PROVIDER= -REACT_APP_PROD_ARBITRATOR_ADDRESS=
diff --git a/.storybook/config.js b/.storybook/config.js index 678fd49..d7f5ee9 100755 --- a/.storybook/config.js +++ b/.storybook/config.js @@ -4,20 +4,23 @@ import { host } from 'storybook-host' import { combineReducers, applyMiddleware, createStore } from 'redux' import { Provider } from 'react-redux' import { MemoryRouter } from 'react-router-dom' +import ReduxToastr, { reducer as toastr } from 'react-redux-toastr' + +import GlobalComponents from '../src/bootstrap/global-components' import '../src/bootstrap/app.css' // Storybook Host addDecorator( host({ - title: 'Dapp Front Boilerplate UI-Kit', + title: 'OpenIICO UI-Kit', align: 'center middle' }) ) // Integration Wrapper const store = createStore( - combineReducers({}), + combineReducers({ toastr }), applyMiddleware(store => next => action => { console.log(action) return next(action) @@ -28,6 +31,7 @@ addDecorator(story => (
{console.log(store.getState())} {story()} +
)) diff --git a/.storybook/webpack.config.js b/.storybook/webpack.config.js index 7599486..702e7e6 100755 --- a/.storybook/webpack.config.js +++ b/.storybook/webpack.config.js @@ -1,5 +1,3 @@ -const { join } = require('path') - module.exports = { module: { rules: [ @@ -8,7 +6,7 @@ module.exports = { use: ['style-loader', 'css-loader'] }, { - test: /\.png$/, + test: /\.(woff|woff2|png)$/, use: ['url-loader'] } ] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7f3d560..63dec8a 100755 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,10 @@ See [kleros.md](https://kleros.gitbooks.io/kleros-md). Additionally, This project also uses [lessdux](https://github.com/kleros/lessdux) and [create-redux-form](https://github.com/kleros/create-redux-form). + +## Development Priorities + +1. Deploy contracts on a test net and decide on where to fetch the ABI from. `easy to delegate` +2. Finish code for interfacing with a "standard" compliant contract and display all the raw data needed for visualizations. +3. Finish the code for all user actions, i.e. bid, withdraw, etc. +4. Use raw data to create nice data visualizations using WebGL, D3, etc; previews; and summaries. `easy to delegate` diff --git a/README.md b/README.md index f943af6..d8f278e 100755 --- a/README.md +++ b/README.md @@ -14,14 +14,14 @@ Styled with Prettier

-A boilerplate for Ethereum dapps. +A dapp for participating in interactive coin offerings. ## Get Started -1. Clone this repo. -2. Install and set up the [MetaMask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) chrome extension. -3. Configure MetaMask on the Kovan Test Network. -4. Run `yarn` to install dependencies and then `yarn start` to start the dev server. +1. Clone this repo. +2. Install and set up the [MetaMask](https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en) chrome extension. +3. Configure MetaMask on the Kovan Test Network. +4. Run `yarn` to install dependencies and then `yarn start` to start the dev server. ## Other Scripts diff --git a/package.json b/package.json index c1b950f..04c0ae1 100755 --- a/package.json +++ b/package.json @@ -20,11 +20,11 @@ "start:scss": "yarn run build:scss && yarn run build:scss --watch", "start:js": "react-scripts start", "start:storybook": "start-storybook -p 9001 -c .storybook", - "storybook": "npm-run-all -p start:scss start:storybook", + "storybook": "run-p start:scss start:storybook", "build:scss": "node-sass-chokidar ./src -o ./src", "build:js": "react-scripts build", - "start": "npm-run-all -p start:scss start:js", - "build": "npm-run-all build:scss build:js", + "start": "run-p start:scss start:js", + "build": "yarn run build:scss && yarn run build:js", "build:analyze": "source-map-explorer build/static/js/main.*" }, "jest": { @@ -41,9 +41,9 @@ }, "devDependencies": { "@dump247/storybook-state": "^1.2.1", - "@storybook/addon-actions": "^3.3.11", + "@storybook/addon-actions": "^3.3.10", "@storybook/addon-storyshots": "^3.3.10", - "@storybook/addons": "^3.3.11", + "@storybook/addons": "^3.3.10", "@storybook/react": "^3.3.10", "@storybook/storybook-deployer": "^2.2.0", "coveralls": "^3.0.0", @@ -53,10 +53,10 @@ "esdoc-ecmascript-proposal-plugin": "^1.0.0", "esdoc-standard-plugin": "^1.0.0", "eslint-plugin-react": "^7.6.1", - "ethereumjs-testrpc": "^6.0.3", + "ganache-cli": "^6.1.0", "husky": "^0.14.3", "jest-enzyme": "^4.0.2", - "kleros-scripts": "^0.4.0", + "kleros-scripts": "^0.5.0", "node-sass-chokidar": "^0.0.3", "npm-run-all": "^4.1.2", "prettier": "^1.10.2", @@ -70,21 +70,24 @@ "timezone-mock": "^0.0.7" }, "dependencies": { - "create-redux-form": "^0.1.1", + "create-redux-form": "^0.1.2", "ethjs": "^0.3.3", - "ethjs-unit": "^0.1.6", "history": "^4.7.2", - "lessdux": "^0.1.2", + "lessdux": "^0.4.1", "normalize.css": "^7.0.0", "react": "^16.2.0", "react-addons-css-transition-group": "^15.6.2", "react-blockies": "^1.2.2", "react-dom": "^16.2.0", "react-helmet": "^5.2.0", + "react-minimal-pie-chart": "^3.0.1", "react-redux": "^5.0.6", + "react-redux-toastr": "^7.2.3", "react-router-dom": "^4.2.2", "react-router-redux": "^5.0.0-alpha.9", "react-scripts": "1.1.0", + "react-spinners": "^0.3.2", + "react-tooltip": "^3.4.0", "redux": "^3.7.2", "redux-form": "^7.2.3", "redux-saga": "^0.16.0" diff --git a/public/index.html b/public/index.html index 03a0840..d8eade3 100755 --- a/public/index.html +++ b/public/index.html @@ -20,7 +20,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - Dapp Front Boilerplate + Open IICO diff --git a/public/manifest.json b/public/manifest.json index 305c3b7..8815271 100755 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "Dapp Front Boilerplate", - "name": "Dapp Front Boilerplate", + "short_name": "Open IICO", + "name": "Open IICO", "icons": [ { "src": "favicon.ico", diff --git a/src/actions/iico.js b/src/actions/iico.js new file mode 100644 index 0000000..439689d --- /dev/null +++ b/src/actions/iico.js @@ -0,0 +1,56 @@ +import { createActions } from 'lessdux' + +/* Actions */ + +// IICO Data +export const IICOData = { + ...createActions('$IICO$_DATA', { withUpdate: true }), + CLEAR: 'CLEAR_$IICO$_DATA', + FINALIZE: 'FINALIZE_$IICO$_DATA' +} + +// IICO Bids +export const IICOBids = createActions('$IICO$_BIDS') + +// IICO Bid +export const IICOBid = { + ...createActions('$IICO$_BID', { + withCreate: true, + withUpdate: true + }), + WITHDRAW: 'WITHDRAW_$IICO$_BID', + REDEEM: 'REDEEM_$IICO$_BID' +} + +/* Action Creators */ + +// IICO Data +export const clearIICOData = () => ({ type: IICOData.CLEAR }) +export const fetchIICOData = address => ({ + type: IICOData.FETCH, + payload: { address } +}) +export const finalizeIICOData = (address, maxIterations) => ({ + type: IICOData.FINALIZE, + payload: { address, maxIterations } +}) + +// IICO Bids +export const fetchIICOBids = address => ({ + type: IICOBids.FETCH, + payload: { address } +}) + +// IICO Bid +export const createIICOBid = (address, amount, personalCap) => ({ + type: IICOBid.CREATE, + payload: { address, amount, personalCap } +}) +export const withdrawIICOBid = (address, contributorBidID) => ({ + type: IICOBid.WITHDRAW, + payload: { address, contributorBidID } +}) +export const redeemIICOBid = (address, contributorBidID) => ({ + type: IICOBid.REDEEM, + payload: { address, contributorBidID } +}) diff --git a/src/assets/contracts/IICO.json b/src/assets/contracts/IICO.json new file mode 100644 index 0000000..f7a9736 --- /dev/null +++ b/src/assets/contracts/IICO.json @@ -0,0 +1,26058 @@ +{ + "contractName": "IICO", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "tokensForSale", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "sumAcceptedVirtualContrib", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "cutOffBidID", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "contributorBidIDs", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "endTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "withdrawalLockTime", + "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": "bids", + "outputs": [ + { + "name": "prev", + "type": "uint256" + }, + { + "name": "next", + "type": "uint256" + }, + { + "name": "maxVal", + "type": "uint256" + }, + { + "name": "contrib", + "type": "uint256" + }, + { + "name": "bonus", + "type": "uint256" + }, + { + "name": "contributor", + "type": "address" + }, + { + "name": "withdrawn", + "type": "bool" + }, + { + "name": "redeemed", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "maxBonus", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastBidID", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "startTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "finalized", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "sumAcceptedContrib", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "endFullBonusTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "token", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_startTime", + "type": "uint256" + }, + { + "name": "_fullBonusLength", + "type": "uint256" + }, + { + "name": "_partialWithdrawalLength", + "type": "uint256" + }, + { + "name": "_withdrawalLockUpLength", + "type": "uint256" + }, + { + "name": "_maxBonus", + "type": "uint256" + }, + { + "name": "_beneficiary", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": false, + "inputs": [ + { + "name": "_token", + "type": "address" + } + ], + "name": "setToken", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxVal", + "type": "uint256" + }, + { + "name": "_next", + "type": "uint256" + } + ], + "name": "submitBid", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxVal", + "type": "uint256" + }, + { + "name": "_next", + "type": "uint256" + } + ], + "name": "searchAndBid", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_bidID", + "type": "uint256" + } + ], + "name": "withdraw", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_maxIt", + "type": "uint256" + } + ], + "name": "finalize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_bidID", + "type": "uint256" + } + ], + "name": "redeem", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_maxVal", + "type": "uint256" + }, + { + "name": "_nextStart", + "type": "uint256" + } + ], + "name": "search", + "outputs": [ + { + "name": "nextInsert", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "bonus", + "outputs": [ + { + "name": "b", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_contributor", + "type": "address" + } + ], + "name": "totalContrib", + "outputs": [ + { + "name": "contribution", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "valuationAndAmountCommitted", + "outputs": [ + { + "name": "valuation", + "type": "uint256" + }, + { + "name": "amountCommitted", + "type": "uint256" + }, + { + "name": "virtualValuation", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": + "0x606060405260006004557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600d55341561003857600080fd5b60405160c080611be083398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508560058190555084600554016006819055508360065401600781905550826007540160088190555081600b8190555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610100604051908101604052807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001600081526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000151581526020016000151581525060026000808152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160050160146101000a81548160ff02191690831515021790555060e08201518160050160156101000a81548160ff0219169083151502179055509050506101006040519081016040528060008152602001600081526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160001515815250600260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160050160146101000a81548160ff02191690831515021790555060e08201518160050160156101000a81548160ff0219169083151502179055509050505050505050506117c58061041b6000396000f300606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305261aea1461033457806312aef8c314610357578063144fa6d714610380578063152713b3146103b95780631ae9fe6a146103e25780631def6bad1461040b5780632e1a7d4d146104615780633197cbb61461048457806334f732e8146104ad57806338af3eed146104d65780634423c5f11461052b57806354c5b696146105c757806357f196fa146105f05780635e7c85b11461061957806375b4d78c1461066657806378e979251461068f5780638da5cb5b146106b8578063b3f05b971461070d578063b821da1b1461073a578063c68ee9cd1461075b578063ce160edd1461079b578063db006a75146107bc578063dc382cbf146107df578063e33a821e14610808578063f0d6cc701461083f578063fc0c546a14610868575b600080341415801561016857506005544210155b8015610175575060085442105b156101c9576101c47ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108bd565b610331565b6000341480156101e55750600c60009054906101000a900460ff165b1561033057600090505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561032f5760026000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561028957fe5b906000526020600020900154815260200190815260200160002060050160159054906101000a900460ff16151561031f5761031a600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561030957fe5b906000526020600020900154610af7565b610324565b600080fd5b8060010190506101ef565b5b5b50005b341561033f57600080fd5b6103556004808035906020019091905050610d4f565b005b341561036257600080fd5b61036a610f83565b6040518082815260200191505060405180910390f35b341561038b57600080fd5b6103b7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f89565b005b34156103c457600080fd5b6103cc611148565b6040518082815260200191505060405180910390f35b34156103ed57600080fd5b6103f561114e565b6040518082815260200191505060405180910390f35b341561041657600080fd5b61044b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611154565b6040518082815260200191505060405180910390f35b341561046c57600080fd5b6104826004808035906020019091905050611185565b005b341561048f57600080fd5b6104976112fb565b6040518082815260200191505060405180910390f35b34156104b857600080fd5b6104c0611301565b6040518082815260200191505060405180910390f35b34156104e157600080fd5b6104e9611307565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053657600080fd5b61054c600480803590602001909190505061132d565b604051808981526020018881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001821515151581526020019850505050505050505060405180910390f35b34156105d257600080fd5b6105da6113af565b6040518082815260200191505060405180910390f35b34156105fb57600080fd5b6106036113b5565b6040518082815260200191505060405180910390f35b341561062457600080fd5b610650600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113bb565b6040518082815260200191505060405180910390f35b341561067157600080fd5b610679611490565b6040518082815260200191505060405180910390f35b341561069a57600080fd5b6106a26114d9565b6040518082815260200191505060405180910390f35b34156106c357600080fd5b6106cb6114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071857600080fd5b610720611504565b604051808215151515815260200191505060405180910390f35b61075960048080359060200190919080359060200190919050506108bd565b005b341561076657600080fd5b6107856004808035906020019091908035906020019091905050611517565b6040518082815260200191505060405180910390f35b6107ba60048080359060200190919080359060200190919050506115a2565b005b34156107c757600080fd5b6107dd6004808035906020019091905050610af7565b005b34156107ea57600080fd5b6107f26115b9565b6040518082815260200191505060405180910390f35b341561081357600080fd5b61081b6115bf565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561084a57600080fd5b61085261171c565b6040518082815260200191505060405180910390f35b341561087357600080fd5b61087b611722565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000600260008581526020019081526020016000209250826000015491506002600083815260200190815260200160002090508060020154851015801561090a5750826002015485105b151561091557600080fd5b6005544210158015610928575060085442105b151561093357600080fd5b600460008154600101919050819055506004548160010181905550600454836000018190555061010060405190810160405280838152602001858152602001868152602001348152602001610986611490565b81526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160001515815250600260006004548152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160050160146101000a81548160ff02191690831515021790555060e08201518160050160156101000a81548160ff021916908315150217905550905050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281610ad99190611748565b91600052602060002090016000600454909190915055505050505050565b60008060026000848152602001908152602001600020915060026000600d5481526020019081526020016000209050600c60009054906101000a900460ff161515610b4157600080fd5b8160050160159054906101000a900460ff16151515610b5f57600080fd5b60018260050160156101000a81548160ff021916908315150217905550806002015482600201541180610ba7575080600201548260020154148015610ba65750600d548310155b5b15610ce157600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54633b9aca008660040154876003015402811515610c2b57fe5b04866003015401600a5402811515610c3f57fe5b046040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cc457600080fd5b5af11515610cd157600080fd5b5050506040518051905050610d4a565b8160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600301549081150290604051600060405180830381858888f193505050501515610d4957600080fd5b5b505050565b6000806000806000806008544210151515610d6957600080fd5b600c60009054906101000a900460ff16151515610d8557600080fd5b600d549550600e549450600f549350600092505b8683108015610db55750600c60009054906101000a900460ff16155b15610f65576002600087815260200190815260200160002091508160020154858360030154011015610e1a57816003015485019450633b9aca008260040154836003015402811515610e0357fe5b048260030154018401935081600001549550610f5a565b6001600c60006101000a81548160ff0219169083151502179055508482600201541015610e48576000610e50565b848260020154035b905081600301548110610e67578160030154610e69565b805b90508160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828460030154039081150290604051600060405180830381858888f1935050505050808260030181905550816003015485019450633b9aca008260040154836003015402811515610ef657fe5b0482600301540184019350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f19350505050505b826001019250610d99565b85600d8190555084600e8190555083600f8190555050505050505050565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe457600080fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561102b57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561112857600080fd5b5af1151561113557600080fd5b50505060405180519050600a8190555050565b600f5481565b600d5481565b60036020528160005260406000208181548110151561116f57fe5b9060005260206000209001600091509150505481565b6000806002600084815260200190815260200160002091508160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111fb57600080fd5b6007544210151561120b57600080fd5b8160050160149054906101000a900460ff1615151561122957600080fd5b60018260050160146101000a81548160ff02191690831515021790555060065442106112705760065460075403426007540383600301540281151561126a57fe5b04611276565b81600301545b90508160030154811115151561128857fe5b80826003016000828254039250508190555060038260040160008282548115156112ae57fe5b04925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156112f657600080fd5b505050565b60085481565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160149054906101000a900460ff16908060050160159054906101000a900460ff16905088565b600b5481565b60045481565b600080600090505b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561148a5760026000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561145d57fe5b906000526020600020900154815260200190815260200160002060030154820191508060010190506113c3565b50919050565b60006006544210156114a657600b5490506114d6565b6008544211156114b957600090506114d6565b600654600854034260085403600b54028115156114d257fe5b0490505b90565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900460ff1681565b6000806000806000808694505b831515611594576002600086815260200190815260200160002092508260000154915060026000838152602001908152602001600020905080600201548810156115705781945061158f565b826002015488101515611589578260010154945061158e565b600193505b5b611524565b849550505050505092915050565b6115b5826115b08484611517565b6108bd565b5050565b600e5481565b6000806000806000806000809350600260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000206000015492505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141515611704576002600084815260200190815260200160002091508315801561165c5750816002015487836003015401105b1561169c57816003015487019650633b9aca00826004015483600301540281151561168357fe5b04826003015401850194508160030154860195506116f8565b816003015487019650633b9aca0082600401548360030154028115156116be57fe5b04826003015401850194508315156116f75786826002015410156116e35760006116eb565b868260020154035b90508086019550600193505b5b81600001549250611607565b60075442101561171357600095505b50505050909192565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b81548183558181151161176f5781836000526020600020918201910161176e9190611774565b5b505050565b61179691905b8082111561179257600081600090555060010161177a565b5090565b905600a165627a7a72305820ab1b88d168ae7a680b8b397c60d3dd118c556affca856462097f71266c96cad60029", + "deployedBytecode": + "0x606060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806305261aea1461033457806312aef8c314610357578063144fa6d714610380578063152713b3146103b95780631ae9fe6a146103e25780631def6bad1461040b5780632e1a7d4d146104615780633197cbb61461048457806334f732e8146104ad57806338af3eed146104d65780634423c5f11461052b57806354c5b696146105c757806357f196fa146105f05780635e7c85b11461061957806375b4d78c1461066657806378e979251461068f5780638da5cb5b146106b8578063b3f05b971461070d578063b821da1b1461073a578063c68ee9cd1461075b578063ce160edd1461079b578063db006a75146107bc578063dc382cbf146107df578063e33a821e14610808578063f0d6cc701461083f578063fc0c546a14610868575b600080341415801561016857506005544210155b8015610175575060085442105b156101c9576101c47ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108bd565b610331565b6000341480156101e55750600c60009054906101000a900460ff165b1561033057600090505b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561032f5760026000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561028957fe5b906000526020600020900154815260200190815260200160002060050160159054906101000a900460ff16151561031f5761031a600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561030957fe5b906000526020600020900154610af7565b610324565b600080fd5b8060010190506101ef565b5b5b50005b341561033f57600080fd5b6103556004808035906020019091905050610d4f565b005b341561036257600080fd5b61036a610f83565b6040518082815260200191505060405180910390f35b341561038b57600080fd5b6103b7600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f89565b005b34156103c457600080fd5b6103cc611148565b6040518082815260200191505060405180910390f35b34156103ed57600080fd5b6103f561114e565b6040518082815260200191505060405180910390f35b341561041657600080fd5b61044b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611154565b6040518082815260200191505060405180910390f35b341561046c57600080fd5b6104826004808035906020019091905050611185565b005b341561048f57600080fd5b6104976112fb565b6040518082815260200191505060405180910390f35b34156104b857600080fd5b6104c0611301565b6040518082815260200191505060405180910390f35b34156104e157600080fd5b6104e9611307565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053657600080fd5b61054c600480803590602001909190505061132d565b604051808981526020018881526020018781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183151515158152602001821515151581526020019850505050505050505060405180910390f35b34156105d257600080fd5b6105da6113af565b6040518082815260200191505060405180910390f35b34156105fb57600080fd5b6106036113b5565b6040518082815260200191505060405180910390f35b341561062457600080fd5b610650600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506113bb565b6040518082815260200191505060405180910390f35b341561067157600080fd5b610679611490565b6040518082815260200191505060405180910390f35b341561069a57600080fd5b6106a26114d9565b6040518082815260200191505060405180910390f35b34156106c357600080fd5b6106cb6114df565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561071857600080fd5b610720611504565b604051808215151515815260200191505060405180910390f35b61075960048080359060200190919080359060200190919050506108bd565b005b341561076657600080fd5b6107856004808035906020019091908035906020019091905050611517565b6040518082815260200191505060405180910390f35b6107ba60048080359060200190919080359060200190919050506115a2565b005b34156107c757600080fd5b6107dd6004808035906020019091905050610af7565b005b34156107ea57600080fd5b6107f26115b9565b6040518082815260200191505060405180910390f35b341561081357600080fd5b61081b6115bf565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561084a57600080fd5b61085261171c565b6040518082815260200191505060405180910390f35b341561087357600080fd5b61087b611722565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000806000600260008581526020019081526020016000209250826000015491506002600083815260200190815260200160002090508060020154851015801561090a5750826002015485105b151561091557600080fd5b6005544210158015610928575060085442105b151561093357600080fd5b600460008154600101919050819055506004548160010181905550600454836000018190555061010060405190810160405280838152602001858152602001868152602001348152602001610986611490565b81526020013373ffffffffffffffffffffffffffffffffffffffff16815260200160001515815260200160001515815250600260006004548152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160050160146101000a81548160ff02191690831515021790555060e08201518160050160156101000a81548160ff021916908315150217905550905050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806001018281610ad99190611748565b91600052602060002090016000600454909190915055505050505050565b60008060026000848152602001908152602001600020915060026000600d5481526020019081526020016000209050600c60009054906101000a900460ff161515610b4157600080fd5b8160050160159054906101000a900460ff16151515610b5f57600080fd5b60018260050160156101000a81548160ff021916908315150217905550806002015482600201541180610ba7575080600201548260020154148015610ba65750600d548310155b5b15610ce157600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8360050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600f54633b9aca008660040154876003015402811515610c2b57fe5b04866003015401600a5402811515610c3f57fe5b046040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610cc457600080fd5b5af11515610cd157600080fd5b5050506040518051905050610d4a565b8160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc83600301549081150290604051600060405180830381858888f193505050501515610d4957600080fd5b5b505050565b6000806000806000806008544210151515610d6957600080fd5b600c60009054906101000a900460ff16151515610d8557600080fd5b600d549550600e549450600f549350600092505b8683108015610db55750600c60009054906101000a900460ff16155b15610f65576002600087815260200190815260200160002091508160020154858360030154011015610e1a57816003015485019450633b9aca008260040154836003015402811515610e0357fe5b048260030154018401935081600001549550610f5a565b6001600c60006101000a81548160ff0219169083151502179055508482600201541015610e48576000610e50565b848260020154035b905081600301548110610e67578160030154610e69565b805b90508160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc828460030154039081150290604051600060405180830381858888f1935050505050808260030181905550816003015485019450633b9aca008260040154836003015402811515610ef657fe5b0482600301540184019350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f19350505050505b826001019250610d99565b85600d8190555084600e8190555083600f8190555050505050505050565b600a5481565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe457600080fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561102b57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561112857600080fd5b5af1151561113557600080fd5b50505060405180519050600a8190555050565b600f5481565b600d5481565b60036020528160005260406000208181548110151561116f57fe5b9060005260206000209001600091509150505481565b6000806002600084815260200190815260200160002091508160050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111fb57600080fd5b6007544210151561120b57600080fd5b8160050160149054906101000a900460ff1615151561122957600080fd5b60018260050160146101000a81548160ff02191690831515021790555060065442106112705760065460075403426007540383600301540281151561126a57fe5b04611276565b81600301545b90508160030154811115151561128857fe5b80826003016000828254039250508190555060038260040160008282548115156112ae57fe5b04925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156112f657600080fd5b505050565b60085481565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60026020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160149054906101000a900460ff16908060050160159054906101000a900460ff16905088565b600b5481565b60045481565b600080600090505b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561148a5760026000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561145d57fe5b906000526020600020900154815260200190815260200160002060030154820191508060010190506113c3565b50919050565b60006006544210156114a657600b5490506114d6565b6008544211156114b957600090506114d6565b600654600854034260085403600b54028115156114d257fe5b0490505b90565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900460ff1681565b6000806000806000808694505b831515611594576002600086815260200190815260200160002092508260000154915060026000838152602001908152602001600020905080600201548810156115705781945061158f565b826002015488101515611589578260010154945061158e565b600193505b5b611524565b849550505050505092915050565b6115b5826115b08484611517565b6108bd565b5050565b600e5481565b6000806000806000806000809350600260007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81526020019081526020016000206000015492505b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141515611704576002600084815260200190815260200160002091508315801561165c5750816002015487836003015401105b1561169c57816003015487019650633b9aca00826004015483600301540281151561168357fe5b04826003015401850194508160030154860195506116f8565b816003015487019650633b9aca0082600401548360030154028115156116be57fe5b04826003015401850194508315156116f75786826002015410156116e35760006116eb565b868260020154035b90508086019550600193505b5b81600001549250611607565b60075442101561171357600095505b50505050909192565b60065481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b81548183558181151161176f5781836000526020600020918201910161176e9190611774565b5b505050565b61179691905b8082111561179257600081600090555060010161177a565b5090565b905600a165627a7a72305820ab1b88d168ae7a680b8b397c60d3dd118c556affca856462097f71266c96cad60029", + "sourceMap": + "1999:18219:0:-;;;3870:1;3846:25;;2359:2;4940:30;;6133:1049;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6311:10;6303:5;;:18;;;;;;;;;;;;;;;;;;6343:10;6331:9;:22;;;;6394:16;6382:9;;:28;6363:16;:47;;;;6460:24;6441:16;;:43;6420:18;:64;;;;6525:23;6504:18;;:44;6494:7;:54;;;;6569:9;6558:8;:20;;;;6602:12;6588:11;;:26;;;;;;;;;;;;;;;;;;6704:224;;;;;;;;;2359:2;6704:224;;;;2359:2;6704:224;;;;2231:1;6704:224;;;;6805:1;6704:224;;;;6827:1;6704:224;;;;6855:3;6704:224;;;;;;6883:5;6704:224;;;;;;6912:5;6704:224;;;;;6691:4;:10;2231:1;6691:10;;;;;;;;;;;:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6951:224;;;;;;;;;2231:1;6951:224;;;;2231:1;6951:224;;;;2359:2;6951:224;;;;7052:1;6951:224;;;;7074:1;6951:224;;;;7102:3;6951:224;;;;;;7130:5;6951:224;;;;;;7159:5;6951:224;;;;;6938:4;:10;2359:2;6938:10;;;;;;;;;;;:237;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6133:1049;;;;;;1999:18219;;;;;;", + "deployedSourceMap": + "1999:18219:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15521:6;15238:1;15225:9;:14;;:34;;;;;15250:9;;15243:3;:16;;15225:34;:51;;;;;15269:7;;15263:3;:13;15225:51;15221:615;;;15350:25;2486:2;2359;15350:9;:25::i;:::-;15221:615;;;15407:1;15394:9;:14;:27;;;;;15412:9;;;;;;;;;;;15394:27;15390:446;;;15530:1;15521:10;;15516:320;15537:17;:29;15555:10;15537:29;;;;;;;;;;;;;;;:36;;;;15533:1;:40;15516:320;;;15601:4;:38;15606:17;:29;15624:10;15606:29;;;;;;;;;;;;;;;15636:1;15606:32;;;;;;;;;;;;;;;;;;;15601:38;;;;;;;;;;;:47;;;;;;;;;;;;15600:48;15596:240;;;15670:40;15677:17;:29;15695:10;15677:29;;;;;;;;;;;;;;;15707:1;15677:32;;;;;;;;;;;;;;;;;;;15670:6;:40::i;:::-;15596:240;;;15828:8;;;15596:240;15575:3;;;;;15516:320;;;15390:446;15221:615;15184:659;1999:18219;11753:2286;;;;;;;;;;;;;;;;;;;;;;;;;;4372:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;5123:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4940:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3744:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10408:851;;;;;;;;;;;;;;;;;;;;;;;;;;4225:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4108:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2114:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3684:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4464:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3846:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18407:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17518:415;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3951:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2046:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4790:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8112:1065;;;;;;;;;;;;;;;;;;;;;;;;;;16401:847;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9993:121;;;;;;;;;;;;;;;;;;;;;;;;;;14284:698;;;;;;;;;;;;;;;;;;;;;;;;;;5042:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18876:1340;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4024:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4296:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8112:1065;8182:19;8225:9;8259:19;8204:4;:11;8209:5;8204:11;;;;;;;;;;;8182:33;;8237:7;:12;;;8225:24;;8281:4;:10;8286:4;8281:10;;;;;;;;;;;8259:32;;8320:7;:14;;;8309:7;:25;;:53;;;;;8348:7;:14;;;8338:7;:24;8309:53;8301:62;;;;;;;;8480:9;;8473:3;:16;;:33;;;;;8499:7;;8493:3;:13;8473:33;8465:42;;;;;;;;8559:9;;8557:11;;;;;;;;;;;8702:9;;8687:7;:12;;:24;;;;8736:9;;8721:7;:12;;:24;;;;8801:249;;;;;;;;;8825:4;8801:249;;;;8849:5;8801:249;;;;8876:7;8801:249;;;;8906:9;8801:249;;;;8936:7;:5;:7::i;:::-;8801:249;;;;8970:10;8801:249;;;;;;9005:5;8801:249;;;;;;9034:5;8801:249;;;;;8783:4;:15;8788:9;;8783:15;;;;;;;;;;;:267;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9125:17;:29;9143:10;9125:29;;;;;;;;;;;;;;;:45;;;;;;;;;;;:::i;:::-;;;;;;;;;;9160:9;;9125:45;;;;;;;8112:1065;;;;;:::o;14284:698::-;14330:15;14370:21;14348:4;:12;14353:6;14348:12;;;;;;;;;;;14330:30;;14394:4;:17;14399:11;;14394:17;;;;;;;;;;;14370:41;;14429:9;;;;;;;;;;;14421:18;;;;;;;;14458:3;:12;;;;;;;;;;;;14457:13;14449:22;;;;;;;;14495:4;14482:3;:12;;;:17;;;;;;;;;;;;;;;;;;14526:9;:16;;;14513:3;:10;;;:29;:90;;;;14561:9;:16;;;14547:3;:10;;;:30;:55;;;;;14591:11;;14581:6;:21;;14547:55;14513:90;14509:466;;;14656:5;;;;;;;;;;;:14;;;14671:3;:15;;;;;;;;;;;;14766:25;;4669:3;14735;:9;;;14721:3;:11;;;:23;14720:41;;;;;;;;14706:3;:11;;;:55;14689:13;;:73;14688:103;;;;;;;;14656:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14509:466;;;14938:3;:15;;;;;;;;;;;;:24;;:37;14963:3;:11;;;14938:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14509:466;14284:698;;;:::o;11753:2286::-;11981:21;12026:28;12085:35;12234:7;12294:15;12813:18;11816:7;;11809:3;:14;;11801:23;;;;;;;;11843:9;;;;;;;;;;;11842:10;11834:19;;;;;;;;12005:11;;11981:35;;12057:18;;12026:49;;12123:25;;12085:63;;12244:1;12234:11;;12229:1614;12252:6;12247:2;:11;:25;;;;;12263:9;;;;;;;;;;;12262:10;12247:25;12229:1614;;;12312:4;:22;12317:16;12312:22;;;;;;;;;;;12294:40;;12390:3;:10;;;12364:23;12352:3;:11;;;:35;:48;12348:1485;;;12491:3;:11;;;12457:45;;;;4669:3;12583;:9;;;12569:3;:11;;;:23;12568:41;;;;;;;;12554:3;:11;;;:55;12520:89;;;;12646:3;:8;;;12627:27;;12348:1485;;;12791:4;12779:9;;:16;;;;;;;;;;;;;;;;;;12848:23;12834:3;:10;;;:37;;:80;;12913:1;12834:80;;;12887:23;12874:3;:10;;;:36;12834:80;12813:101;;13077:3;:11;;;13061:13;:27;:57;;13107:3;:11;;;13061:57;;;13091:13;13061:57;13045:73;;13296:3;:15;;;;;;;;;;;;:20;;:47;13329:13;13317:3;:11;;;:25;13296:47;;;;;;;;;;;;;;;;;;;;;;;;13476:13;13462:3;:11;;:27;;;;13568:3;:11;;;13541:38;;;;4669:3;13660;:9;;;13646:3;:11;;;:23;13645:41;;;;;;;;13631:3;:11;;;:55;13597:89;;;;13704:11;;;;;;;;;;;:16;;:41;13721:23;13704:41;;;;;;;;;;;;;;;;;;;;;;;;12348:1485;12274:4;;;;;12229:1614;;;13894:16;13880:11;:30;;;;13941:23;13920:18;:44;;;;14002:30;13974:25;:58;;;;11753:2286;;;;;;;:::o;4372:25::-;;;;:::o;7344:168::-;5271:10;5262:19;;:5;;;;;;;;;;;:19;;;5254:28;;;;;;;;7429:3;7419:5;;;;;;;;;;;7411:21;;;7403:30;;;;;;;;7452:6;7444:5;;:14;;;;;;;;;;;;;;;;;;7484:5;;;;;;;;;;;:15;;;7500:4;7484:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7468:13;:37;;;;7344:168;:::o;5123:37::-;;;;:::o;4940:30::-;;;;:::o;3744:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10408:851::-;10456:15;10810:11;10474:4;:12;10479:6;10474:12;;;;;;;;;;;10456:30;;10518:3;:15;;;;;;;;;;;;10504:29;;:10;:29;;;10496:38;;;;;;;;10558:18;;10552:3;:24;10544:33;;;;;;;;10596:3;:13;;;;;;;;;;;;10595:14;10587:23;;;;;;;;10637:4;10621:3;:13;;;:20;;;;;;;;;;;;;;;;;;10831:16;;10825:3;:22;10824:125;;10932:16;;10911:18;;:37;10902:3;10881:18;;:24;10866:3;:11;;;:40;10865:84;;;;;;;;10824:125;;;10851:3;:11;;;10824:125;10810:139;;10976:3;:11;;;10966:6;:21;;10959:29;;;;;;11158:6;11143:3;:11;;;:21;;;;;;;;;;;11187:1;11174:3;:9;;;:14;;;;;;;;;;;;;;;;;;11225:10;:19;;:27;11245:6;11225:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10408:851;;;:::o;4225:19::-;;;;:::o;4108:30::-;;;;:::o;2114:26::-;;;;;;;;;;;;;:::o;3684:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4464:20::-;;;;:::o;3846:25::-;;;;:::o;18407:247::-;18476:17;18510:6;18519:1;18510:10;;18505:142;18526:17;:31;18544:12;18526:31;;;;;;;;;;;;;;;:38;;;;18522:1;:42;18505:142;;;18599:4;:40;18604:17;:31;18622:12;18604:31;;;;;;;;;;;;;;;18636:1;18604:34;;;;;;;;;;;;;;;;;;;18599:40;;;;;;;;;;;:48;;;18583:64;;;;18566:3;;;;;18505:142;;;18407:247;;;;:::o;17518:415::-;17559:6;17587:16;;17581:3;:22;17577:349;;;17639:8;;17632:15;;;;17577:349;17672:7;;17666:3;:13;17662:264;;;17734:1;17727:8;;;;17662:264;17909:16;;17899:7;;:26;17890:3;17880:7;;:13;17868:8;;:26;17867:59;;;;;;;;17860:66;;17518:415;;:::o;3951:21::-;;;;:::o;2046:20::-;;;;;;;;;;;;;:::o;4790:21::-;;;;;;;;;;;;;:::o;16401:847::-;16472:15;16499:9;16531:10;16623:19;16669:9;16707:19;16511:10;16499:22;;16552:668;16559:5;16558:6;16552:668;;;16645:4;:10;16650:4;16645:10;;;;;;;;;;;16623:32;;16681:7;:12;;;16669:24;;16729:4;:10;16734:4;16729:10;;;;;;;;;;;16707:32;;16768:7;:14;;;16758:7;:24;16754:455;;;16846:4;16839:11;;16754:455;;;16884:7;:14;;;16873:7;:25;;16869:340;;;17086:7;:12;;;17079:19;;16869:340;;;17205:4;17197:12;;16869:340;16754:455;16552:668;;;17237:4;17230:11;;16401:847;;;;;;;;;:::o;9993:121::-;10066:41;10076:7;10085:21;10092:7;10100:5;10085:6;:21::i;:::-;10066:9;:41::i;:::-;9993:121;;:::o;5042:30::-;;;;:::o;18876:1340::-;18936:14;18952:20;18974:21;19007:11;19036:21;19163:15;19764:18;19021:5;19007:19;;19060:4;:10;2359:2;19060:10;;;;;;;;;;;:15;;;19036:39;;19116:1034;2359:2;19123:16;:24;;19116:1034;;;19181:4;:22;19186:16;19181:22;;;;;;;;;;;19163:40;;19222:6;19221:7;:49;;;;;19259:3;:10;;;19247:9;19233:3;:11;;;:23;:36;19221:49;19217:855;;;19340:3;:11;;;19327:24;;;;4669:3;19418;:9;;;19404:3;:11;;;:23;19403:41;;;;;;;;19389:3;:11;;;:55;19369:75;;;;19481:3;:11;;;19462:30;;;;19217:855;;;19607:3;:11;;;19594:24;;;;4669:3;19685;:9;;;19671:3;:11;;;:23;19670:41;;;;;;;;19656:3;:11;;;:55;19636:75;;;;19734:6;19733:7;19729:329;;;19799:9;19785:3;:10;;;:23;;:52;;19836:1;19785:52;;;19824:9;19811:3;:10;;;:22;19785:52;19764:73;;19991:13;19972:32;;;;20035:4;20026:13;;19729:329;19217:855;20104:3;:8;;;20085:27;;19116:1034;;;20170:18;;20164:3;:24;20160:49;;;20208:1;20190:19;;20160:49;18876:1340;;;;;;;:::o;4024:28::-;;;;:::o;4296:18::-;;;;;;;;;;;;;:::o;1999:18219::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": + "/** @title Interactive Coin Offering\n * @author Clément Lesaege - \n */\n\npragma solidity ^0.4.18;\n\nimport \"zeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n/** @title Interactive Coin Offering\n * This contract implements the Interactive Coin Offering token sale as described in this paper:\n * https://people.cs.uchicago.edu/~teutsch/papers/ico.pdf\n * Implementation details and modifications compared to the paper:\n * -A fixed amount of tokens is sold. This allows more flexibility for the distribution of the remaining tokens (rounds, team tokens which can be preallocated, non-initial sell of some cryptographic assets).\n * -The valuation pointer is only moved when the sale is over. This greatly reduces the amount of write operations and code complexity. However, at least one party must make one or multiple calls to finalize the sale.\n * -Buckets are not used as they are not required and increase code complexity.\n * -The bid submitter must provide the insertion spot. A search of the insertion spot is still done in the contract just in case the one provided was wrong or other bids were added between when the TX got signed and executed, but giving the search starting point greatly lowers gas consumption.\n * -Automatic withdrawals are only possible at the end of the sale. This decreases code complexity and possible interactions between different parts of the code.\n * -We put a full bonus, free withdrawal period at the beginning. This allows everyone to have a chance to place bids with full bonus and avoids clogging the network just after the sale starts. Note that at this moment, no information can be taken for granted as parties can withdraw freely.\n * -Calling the fallback function while sending ETH places a bid with an infinite maximum valuation. This allows buyers who want to buy no matter the price not need to use a specific interface and just send ETH. Without ETH, a call to the fallback function redeems the bids of the caller.\n */\ncontract IICO {\n\n /* *** General *** */\n address public owner; // The one setting up the contract.\n address public beneficiary; // The address which will get the funds.\n\n /* *** Bid *** */\n uint constant HEAD = 0; // Minimum value used for both the maxVal and bidID of the head of the linked list.\n uint constant TAIL = uint(-1); // Maximum value used for both the maxVal and bidID of the tail of the linked list.\n uint constant INFINITY = uint(-2); // A value so high that a bid using it is guaranteed to succeed. Still lower than TAIL to be placed before TAIL.\n // A bid to buy tokens as long as the personal maximum valuation is not exceeded.\n // Bids are in a sorted doubly linked list.\n // They are sorted in ascending order by (maxVal,bidID) where bidID is the ID and key of the bid in the mapping.\n // The list contains two artificial bids HEAD and TAIL having respectively the minimum and maximum bidID and maxVal.\n struct Bid {\n /* *** Linked List Members *** */\n uint prev; // bidID of the previous element.\n uint next; // bidID of the next element.\n /* *** Bid Members *** */\n uint maxVal; // Maximum valuation in wei beyond which the contributor prefers refund.\n uint contrib; // Contribution in wei.\n uint bonus; // The numerator of the bonus that will be divided by BONUS_DIVISOR.\n address contributor; // The contributor who placed the bid.\n bool withdrawn; // True if the bid has been withdrawn.\n bool redeemed; // True if the ETH or tokens have been redeemed.\n }\n mapping (uint => Bid) public bids; // Map bidID to bid.\n mapping (address => uint[]) public contributorBidIDs; // Map contributor to a list of its bid ID.\n uint public lastBidID = 0; // The last bidID not accounting TAIL.\n\n /* *** Sale parameters *** */\n uint public startTime; // When the sale starts.\n uint public endFullBonusTime; // When the full bonus period ends.\n uint public withdrawalLockTime; // When the contributors can't withdraw their bids manually anymore.\n uint public endTime; // When the sale ends.\n ERC20 public token; // The token which is sold.\n uint public tokensForSale; // The amount of tokens which will be sold.\n uint public maxBonus; // The maximum bonus. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.\n uint constant BONUS_DIVISOR = 1E9; // The quantity we need to divide by to normalize the bonus.\n\n /* *** Finalization variables *** */\n bool public finalized; // True when the cutting bid has been found. The following variables are final only after finalized==true.\n uint public cutOffBidID = TAIL; // The first accepted bid. All bids after it are accepted.\n uint public sumAcceptedContrib; // The sum of accepted contributions.\n uint public sumAcceptedVirtualContrib; // The sum of virtual (taking into account bonuses) contributions.\n\n modifier onlyOwner{ require(owner == msg.sender); _; }\n\n /* *** Functions Modifying the state *** */\n\n /** @dev Constructor. First contract set up (tokens will also need to be transferred to the contract and then setToken needs to be called to finish the setup).\n * @param _startTime Time the sale will start in seconds since the Unix Epoch.\n * @param _fullBonusLength Amount of seconds the sale lasts in the full bonus period.\n * @param _partialWithdrawalLength Amount of seconds the sale lasts in the partial withdrawal period.\n * @param _withdrawalLockUpLength Amount of seconds the sale lasts in the withdrawal lockup period.\n * @param _maxBonus The maximum bonus. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.\n * @param _beneficiary The party which will get the funds of the token sale.\n */\n function IICO(uint _startTime, uint _fullBonusLength, uint _partialWithdrawalLength, uint _withdrawalLockUpLength, uint _maxBonus, address _beneficiary) public {\n owner = msg.sender;\n startTime = _startTime;\n endFullBonusTime = startTime + _fullBonusLength;\n withdrawalLockTime = endFullBonusTime + _partialWithdrawalLength;\n endTime = withdrawalLockTime + _withdrawalLockUpLength;\n maxBonus = _maxBonus;\n beneficiary = _beneficiary;\n\n // Add the virtual bids. This simplifies other functions.\n bids[HEAD] = Bid({\n prev: TAIL,\n next: TAIL,\n maxVal: HEAD,\n contrib: 0,\n bonus: 0,\n contributor: 0x0,\n withdrawn: false,\n redeemed: false\n });\n bids[TAIL] = Bid({\n prev: HEAD,\n next: HEAD,\n maxVal: TAIL,\n contrib: 0,\n bonus: 0,\n contributor: 0x0,\n withdrawn: false,\n redeemed: false\n });\n }\n\n /** @dev Set the token. Must only be called after the IICO contract receives the tokens to be sold.\n * @param _token The token to be sold.\n */\n function setToken(ERC20 _token) public onlyOwner {\n require(address(token) == 0x0);\n\n token = _token;\n tokensForSale = token.balanceOf(this);\n }\n\n /** @dev Submit a bid. The caller must give the exact position the bid must be inserted into in the list.\n * In practice, use searchAndBid to avoid the position being incorrect due to a new bid being inserted and changing the position the bid must be inserted at.\n * @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n * @param _next The bidID of the next bid in the list.\n */\n function submitBid(uint _maxVal, uint _next) public payable {\n Bid storage nextBid = bids[_next];\n uint prev = nextBid.prev;\n Bid storage prevBid = bids[prev];\n require(_maxVal >= prevBid.maxVal && _maxVal < nextBid.maxVal); // The new bid maxVal is higher than the previous one and strictly lower than the next one.\n require(now >= startTime && now < endTime); // Check that the bids are still open.\n\n ++lastBidID; // Increment the lastBidID. It will be the new bid's ID.\n // Update the pointers of neighboring bids.\n prevBid.next = lastBidID;\n nextBid.prev = lastBidID;\n\n // Insert the bid.\n bids[lastBidID] = Bid({\n prev: prev,\n next: _next,\n maxVal: _maxVal,\n contrib: msg.value,\n bonus: bonus(),\n contributor: msg.sender,\n withdrawn: false,\n redeemed: false\n });\n\n // Add the bid to the list of bids by this contributor.\n contributorBidIDs[msg.sender].push(lastBidID);\n }\n\n\n /** @dev Search for the correct insertion spot and submit a bid.\n * This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n * The UI must first call search to find the best point to start the search so it consumes the least amount of gas possible.\n * Using this function instead of calling submitBid directly prevents it from failing in the case where new bids are added before the transaction is executed.\n * @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n * @param _next The bidID of the next bid in the list.\n */\n function searchAndBid(uint _maxVal, uint _next) public payable {\n submitBid(_maxVal, search(_maxVal,_next));\n }\n\n /** @dev Withdraw a bid. Can only be called before the end of the withdrawal lock period.\n * Withdrawing a bid divides its bonus by 3.\n * For retrieving ETH after an automatic withdrawal, use the redeem function.\n * @param _bidID The ID of the bid to withdraw.\n */\n function withdraw(uint _bidID) public {\n Bid storage bid = bids[_bidID];\n require(msg.sender == bid.contributor);\n require(now < withdrawalLockTime);\n require(!bid.withdrawn);\n\n bid.withdrawn = true;\n\n // Before endFullBonusTime, everything is refunded. Otherwise, an amount decreasing linearly from endFullBonusTime to withdrawalLockTime is refunded.\n uint refund = (now < endFullBonusTime) ? bid.contrib : (bid.contrib * (withdrawalLockTime - now)) / (withdrawalLockTime - endFullBonusTime);\n assert(refund <= bid.contrib); // Make sure that we don't refund more than the contribution. Would a bug arise, we prefer blocking withdrawal than letting someone steal money.\n bid.contrib -= refund;\n bid.bonus /= 3; // Divide the bonus by 3.\n\n msg.sender.transfer(refund);\n }\n\n /** @dev Finalize by finding the cut-off bid.\n * Since the amount of bids is not bounded, this function may have to be called multiple times.\n * The function is O(min(n,_maxIt)) where n is the amount of bids. In total it will perform O(n) computations, possibly in multiple calls.\n * Each call only has a O(1) storage write operations.\n * @param _maxIt The maximum amount of bids to go through. This value must be set in order to not exceed the gas limit.\n */\n function finalize(uint _maxIt) public {\n require(now >= endTime);\n require(!finalized);\n\n // Make local copies of the finalization variables in order to avoid modifying storage in order to save gas.\n uint localCutOffBidID = cutOffBidID;\n uint localSumAcceptedContrib = sumAcceptedContrib;\n uint localSumAcceptedVirtualContrib = sumAcceptedVirtualContrib;\n\n // Search for the cut-off bid while adding the contributions.\n for (uint it = 0; it < _maxIt && !finalized; ++it) {\n Bid storage bid = bids[localCutOffBidID];\n if (bid.contrib+localSumAcceptedContrib < bid.maxVal) { // We haven't found the cut-off yet.\n localSumAcceptedContrib += bid.contrib;\n localSumAcceptedVirtualContrib += bid.contrib + (bid.contrib * bid.bonus) / BONUS_DIVISOR;\n localCutOffBidID = bid.prev; // Go to the previous bid.\n } else { // We found the cut-off. This bid will be taken partially.\n finalized = true;\n uint contribCutOff = bid.maxVal >= localSumAcceptedContrib ? bid.maxVal - localSumAcceptedContrib : 0; // The amount of the contribution of the cut-off bid that can stay in the sale without spilling over the maxVal.\n contribCutOff = contribCutOff < bid.contrib ? contribCutOff : bid.contrib; // The amount that stays in the sale should not be more than the original contribution. This line is not required but it is added as an extra security measure.\n bid.contributor.send(bid.contrib-contribCutOff); // Send the non-accepted part. Use send in order to not block if the contributor's fallback reverts.\n bid.contrib = contribCutOff; // Update the contribution value.\n localSumAcceptedContrib += bid.contrib;\n localSumAcceptedVirtualContrib += bid.contrib + (bid.contrib * bid.bonus) / BONUS_DIVISOR;\n beneficiary.send(localSumAcceptedContrib); // Use send in order to not block if the contributor's fallback reverts.\n }\n }\n\n // Update storage.\n cutOffBidID = localCutOffBidID;\n sumAcceptedContrib = localSumAcceptedContrib;\n sumAcceptedVirtualContrib = localSumAcceptedVirtualContrib;\n }\n\n /** @dev Redeem a bid. If the bid is accepted, send the tokens, otherwise refund the ETH.\n * Note that anyone can call this function, not only the party which made the bid.\n * @param _bidID ID of the bid to withdraw.\n */\n function redeem(uint _bidID) public {\n Bid storage bid = bids[_bidID];\n Bid storage cutOffBid = bids[cutOffBidID];\n require(finalized);\n require(!bid.redeemed);\n\n bid.redeemed=true;\n if (bid.maxVal > cutOffBid.maxVal || (bid.maxVal == cutOffBid.maxVal && _bidID >= cutOffBidID)) // Give tokens if the bid is accepted.\n token.transfer(bid.contributor, (tokensForSale * (bid.contrib + (bid.contrib * bid.bonus) / BONUS_DIVISOR)) / sumAcceptedVirtualContrib);\n else // Reimburse ETH otherwise.\n bid.contributor.transfer(bid.contrib);\n }\n\n /** @dev Fallback. Make a bid if ETH are sent. Redeem all the bids of the contributor otherwise.\n * This allows users to bid and get their tokens back using only send operations.\n */\n function () public payable {\n if (msg.value != 0 && now >= startTime && now < endTime) // Make a bid with an infinite maxVal if some ETH was sent.\n submitBid(INFINITY, TAIL);\n else if (msg.value == 0 && finalized) // Else, redeem all the non redeemed bids if no ETH was sent.\n for (uint i = 0; i < contributorBidIDs[msg.sender].length; ++i)\n if (!bids[contributorBidIDs[msg.sender][i]].redeemed)\n redeem(contributorBidIDs[msg.sender][i]);\n else // Otherwise, no actions are possible.\n revert();\n }\n\n /* *** Constant and View *** */\n\n /** @dev Search for the correct insertion spot of a bid.\n * This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n * @param _maxVal The maximum valuation given by the contributor. Or INFINITY if no maximum valuation is given.\n * @param _nextStart The bidID of the next bid from the initial position to start the search from.\n * @return nextInsert The bidID of the next bid from the position the bid must be inserted at.\n */\n function search(uint _maxVal, uint _nextStart) constant public returns(uint nextInsert) {\n uint next = _nextStart;\n bool found;\n\n while(!found) { // While we aren't at the insertion point.\n Bid storage nextBid = bids[next];\n uint prev = nextBid.prev;\n Bid storage prevBid = bids[prev];\n\n if (_maxVal < prevBid.maxVal) // It should be inserted before.\n next = prev;\n else if (_maxVal >= nextBid.maxVal) // It should be inserted after. The second value we sort by is bidID. Those are increasing, thus if the next bid is of the same maxVal, we should insert after it.\n next = nextBid.next;\n else // We found the insertion point.\n found = true;\n }\n\n return next;\n }\n\n /** @dev Return the current bonus. The bonus only changes in 1/BONUS_DIVISOR increments.\n * @return b The bonus expressed in 1/BONUS_DIVISOR. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.\n */\n function bonus() public constant returns(uint b) {\n if (now < endFullBonusTime) // Full bonus.\n return maxBonus;\n else if (now > endTime) // Assume no bonus after end.\n return 0;\n else // Compute the bonus decreasing linearly from endFullBonusTime to endTime.\n return (maxBonus * (endTime - now)) / (endTime - endFullBonusTime);\n }\n\n /** @dev Get the total contribution of an address.\n * This can be used for a KYC threshold.\n * This function is O(n) where n is the amount of bids made by the contributor.\n * This means that the contributor can make totalContrib(contributor) revert due to an out of gas error on purpose.\n * @param _contributor The contributor whose contribution will be returned.\n * @return contribution The total contribution of the contributor.\n */\n function totalContrib(address _contributor) public constant returns (uint contribution) {\n for (uint i = 0; i < contributorBidIDs[_contributor].length; ++i)\n contribution += bids[contributorBidIDs[_contributor][i]].contrib;\n }\n\n /* *** Interface Views *** */\n\n /**\n * @dev Get the current valuation and the amount of ETH committed to the sale.\n * @return The current valuation and the amount of ETH committed to the sale.\n */\n function valuationAndAmountCommitted() public view returns (uint valuation, uint amountCommitted, uint virtualValuation) {\n bool capped = false;\n uint localCutOffBidID = bids[TAIL].prev;\n\n // Loop over all bids\n while (localCutOffBidID != TAIL) {\n Bid storage bid = bids[localCutOffBidID];\n if (!capped && (bid.contrib + valuation < bid.maxVal)) { // We haven't found the cut-off yet.\n valuation += bid.contrib;\n virtualValuation += bid.contrib + (bid.contrib * bid.bonus) / BONUS_DIVISOR;\n amountCommitted += bid.contrib;\n } else { // We found the cut-off bid. This bid will be taken partially.\n valuation += bid.contrib;\n virtualValuation += bid.contrib + (bid.contrib * bid.bonus) / BONUS_DIVISOR;\n if (!capped) {\n uint contribCutOff = bid.maxVal >= valuation ? bid.maxVal - valuation : 0; // The amount of the contribution of the cut-off bid that can stay in the sale without spilling over the maxVal.\n amountCommitted += contribCutOff;\n capped = true;\n }\n }\n localCutOffBidID = bid.prev; // Go to the previous bid.\n }\n\n if (now < withdrawalLockTime) amountCommitted = 0;\n }\n}\n", + "sourcePath": + "/Users/epiqueras/Work/kleros/openiico-contract/contracts/IICO.sol", + "ast": { + "absolutePath": + "/Users/epiqueras/Work/kleros/openiico-contract/contracts/IICO.sol", + "exportedSymbols": { + "IICO": [959] + }, + "id": 960, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": ["solidity", "^", "0.4", ".18"], + "nodeType": "PragmaDirective", + "src": "95:24:0" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 960, + "sourceUnit": 1003, + "src": "121:59:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": + "@title Interactive Coin Offering\n This contract implements the Interactive Coin Offering token sale as described in this paper:\n https://people.cs.uchicago.edu/~teutsch/papers/ico.pdf\n Implementation details and modifications compared to the paper:\n -A fixed amount of tokens is sold. This allows more flexibility for the distribution of the remaining tokens (rounds, team tokens which can be preallocated, non-initial sell of some cryptographic assets).\n -The valuation pointer is only moved when the sale is over. This greatly reduces the amount of write operations and code complexity. However, at least one party must make one or multiple calls to finalize the sale.\n -Buckets are not used as they are not required and increase code complexity.\n -The bid submitter must provide the insertion spot. A search of the insertion spot is still done in the contract just in case the one provided was wrong or other bids were added between when the TX got signed and executed, but giving the search starting point greatly lowers gas consumption.\n -Automatic withdrawals are only possible at the end of the sale. This decreases code complexity and possible interactions between different parts of the code.\n -We put a full bonus, free withdrawal period at the beginning. This allows everyone to have a chance to place bids with full bonus and avoids clogging the network just after the sale starts. Note that at this moment, no information can be taken for granted as parties can withdraw freely.\n -Calling the fallback function while sending ETH places a bid with an infinite maximum valuation. This allows buyers who want to buy no matter the price not need to use a specific interface and just send ETH. Without ETH, a call to the fallback function redeems the bids of the caller.", + "fullyImplemented": true, + "id": 959, + "linearizedBaseContracts": [959], + "name": "IICO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2046:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2046:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6, + "name": "beneficiary", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2114:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 9, + "name": "HEAD", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2210:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2210:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2231:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 15, + "name": "TAIL", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2333:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2333:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2359:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2360: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" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2354:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2354:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 21, + "name": "INFINITY", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2456:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2456:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2486:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2487:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-2_by_1", + "typeString": "int_const -2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-2_by_1", + "typeString": "int_const -2" + } + ], + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2481:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2481:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "canonicalName": "IICO.Bid", + "id": 38, + "members": [ + { + "constant": false, + "id": 23, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3043:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3043:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "name": "next", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3107:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3107:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 27, + "name": "maxVal", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3209:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3209:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "name": "contrib", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3312:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3312:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3366:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3366:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "name": "contributor", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3465:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "name": "withdrawn", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3534:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 34, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3534:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "name": "redeemed", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3603:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 36, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3603:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Bid", + "nodeType": "StructDefinition", + "scope": 959, + "src": "2980:699:0", + "visibility": "public" + }, + { + "constant": false, + "id": 42, + "name": "bids", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3684:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": "mapping(uint256 => struct IICO.Bid storage ref)" + }, + "typeName": { + "id": 41, + "keyType": { + "id": 39, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3684:21:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": "mapping(uint256 => struct IICO.Bid storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 40, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "3701:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 47, + "name": "contributorBidIDs", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3744:52:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + }, + "typeName": { + "id": 46, + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3753:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3744:27:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + }, + "valueType": { + "baseType": { + "id": 44, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3764:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3764:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 50, + "name": "lastBidID", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3846:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3846:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3870:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 52, + "name": "startTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3951:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 51, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3951:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 54, + "name": "endFullBonusTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4024:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 53, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4024:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 56, + "name": "withdrawalLockTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4108:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4108:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 58, + "name": "endTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4225:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 57, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4225:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 60, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4296:18:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 59, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1002, + "src": "4296:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 62, + "name": "tokensForSale", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4372:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4372:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 64, + "name": "maxBonus", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4464:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4464:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 67, + "name": "BONUS_DIVISOR", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4639:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4639:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "314539", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4669:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1E9" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "name": "finalized", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4790:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 68, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4790:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 72, + "name": "cutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4940:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4940:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "id": 71, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "4966:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 74, + "name": "sumAcceptedContrib", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "5042:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5042:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 76, + "name": "sumAcceptedVirtualContrib", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "5123:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5123:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "5252:36:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 79, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "5262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 80, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "5271:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5271:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 78, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "5254:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5254:28:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 84, + "nodeType": "ExpressionStatement", + "src": "5254:28:0" + }, + { + "id": 85, + "nodeType": "PlaceholderStatement", + "src": "5284:1:0" + } + ] + }, + "documentation": null, + "id": 87, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [], + "src": "5252:0:0" + }, + "src": "5234:54:0", + "visibility": "internal" + }, + { + "body": { + "id": 167, + "nodeType": "Block", + "src": "6293:889:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 102, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "6303:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 103, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "6311:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6311:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6303:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 106, + "nodeType": "ExpressionStatement", + "src": "6303:18:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 107, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "6331:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 108, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "6343:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6331:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 110, + "nodeType": "ExpressionStatement", + "src": "6331:22:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 111, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "6363:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 112, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "6382:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 113, + "name": "_fullBonusLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "6394:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6382:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6363:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 116, + "nodeType": "ExpressionStatement", + "src": "6363:47:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 117, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6420:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 118, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "6441:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 119, + "name": "_partialWithdrawalLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "6460:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6441:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6420:64:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 122, + "nodeType": "ExpressionStatement", + "src": "6420:64:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 123, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 124, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6504:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 125, + "name": "_withdrawalLockUpLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "6525:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6504:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6494:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 128, + "nodeType": "ExpressionStatement", + "src": "6494:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 129, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "6558:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 130, + "name": "_maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "6569:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6558:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 132, + "nodeType": "ExpressionStatement", + "src": "6558:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 133, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "6588:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 134, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 99, + "src": "6602:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6588:26:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 136, + "nodeType": "ExpressionStatement", + "src": "6588:26:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 137, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6691:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 139, + "indexExpression": { + "argumentTypes": null, + "id": 138, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6696:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6691:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 141, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6728:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 142, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 143, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6778:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6805:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6827:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307830", + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6883:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6912:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 140, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "6704:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "6704:224:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "6691:237:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "6691:237:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 152, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6938:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 154, + "indexExpression": { + "argumentTypes": null, + "id": 153, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6943:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6938:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 156, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6975:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 157, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6999:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 158, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "7025:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7052:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7074:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307830", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7102:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7130:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7159:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 155, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "6951:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "6951:224:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "6938:237:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 166, + "nodeType": "ExpressionStatement", + "src": "6938:237:0" + } + ] + }, + "documentation": + "@dev Constructor. First contract set up (tokens will also need to be transferred to the contract and then setToken needs to be called to finish the setup).\n @param _startTime Time the sale will start in seconds since the Unix Epoch.\n @param _fullBonusLength Amount of seconds the sale lasts in the full bonus period.\n @param _partialWithdrawalLength Amount of seconds the sale lasts in the partial withdrawal period.\n @param _withdrawalLockUpLength Amount of seconds the sale lasts in the withdrawal lockup period.\n @param _maxBonus The maximum bonus. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.\n @param _beneficiary The party which will get the funds of the token sale.", + "id": 168, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "IICO", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "name": "_startTime", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6147:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 88, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "name": "_fullBonusLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6164:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6164:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "name": "_partialWithdrawalLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6187:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 92, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6187:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "name": "_withdrawalLockUpLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6218:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "name": "_maxBonus", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6248:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6264:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 98, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6146:139:0" + }, + "payable": false, + "returnParameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [], + "src": "6293:0:0" + }, + "scope": 959, + "src": "6133:1049:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 194, + "nodeType": "Block", + "src": "7393:119:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 177, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7419:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + ], + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7411:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7411:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7429:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "7411:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 175, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "7403:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:30:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "7403:30:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 183, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7444:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 184, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "7452:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "src": "7444:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "7444:14:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 187, + "name": "tokensForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "7468:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 190, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "7500:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IICO_$959", + "typeString": "contract IICO" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IICO_$959", + "typeString": "contract IICO" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7484:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1016, + "src": "7484:15:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": + "function (address) view external returns (uint256)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7468:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 193, + "nodeType": "ExpressionStatement", + "src": "7468:37:0" + } + ] + }, + "documentation": + "@dev Set the token. Must only be called after the IICO contract receives the tokens to be sold.\n @param _token The token to be sold.", + "id": 195, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 173, + "modifierName": { + "argumentTypes": null, + "id": 172, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "7383:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7383:9:0" + } + ], + "name": "setToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "7362:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 169, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1002, + "src": "7362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7361:14:0" + }, + "payable": false, + "returnParameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [], + "src": "7393:0:0" + }, + "scope": 959, + "src": "7344:168:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 282, + "nodeType": "Block", + "src": "8172:1005:0", + "statements": [ + { + "assignments": [203], + "declarations": [ + { + "constant": false, + "id": 203, + "name": "nextBid", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8182:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 202, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "8182:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 204, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8204:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 206, + "indexExpression": { + "argumentTypes": null, + "id": 205, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "8209:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8204:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8182:33:0" + }, + { + "assignments": [209], + "declarations": [ + { + "constant": false, + "id": 209, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8225:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8225:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 212, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 210, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8237:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8237:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8225:24:0" + }, + { + "assignments": [214], + "declarations": [ + { + "constant": false, + "id": 214, + "name": "prevBid", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8259:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 213, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "8259:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 215, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8281:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 217, + "indexExpression": { + "argumentTypes": null, + "id": 216, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 209, + "src": "8286:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8281:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8259:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 220, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8309:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 221, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "8320:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "8320:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8309:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 224, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8338:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8348:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 226, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "8348:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8338:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8309:53:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 219, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "8301:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8301:62:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 230, + "nodeType": "ExpressionStatement", + "src": "8301:62:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 232, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "8473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 233, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "8480:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8473:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 235, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "8493:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 236, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "8499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8493:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8473:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 231, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "8465:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8465:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "8465:42:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "8557:11:0", + "subExpression": { + "argumentTypes": null, + "id": 241, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 243, + "nodeType": "ExpressionStatement", + "src": "8557:11:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 244, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "8687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "next", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "8687:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 247, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8702:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8687:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 249, + "nodeType": "ExpressionStatement", + "src": "8687:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 250, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8721:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 253, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8736:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 255, + "nodeType": "ExpressionStatement", + "src": "8721:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 256, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8783:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 258, + "indexExpression": { + "argumentTypes": null, + "id": 257, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8783:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 260, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 209, + "src": "8825:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 261, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "8849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 262, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 263, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "8906:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8906:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 265, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "8936:5:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8936:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 267, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "8970:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8970:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9005:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9034:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 259, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "8801:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "8801:249:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "8783:267:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 273, + "nodeType": "ExpressionStatement", + "src": "8783:267:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 279, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "9160:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 274, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "9125:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 277, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 275, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "9143:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9143:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9125:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9125:34:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9125:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "nodeType": "ExpressionStatement", + "src": "9125:45:0" + } + ] + }, + "documentation": + "@dev Submit a bid. The caller must give the exact position the bid must be inserted into in the list.\n In practice, use searchAndBid to avoid the position being incorrect due to a new bid being inserted and changing the position the bid must be inserted at.\n @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n @param _next The bidID of the next bid in the list.", + "id": 283, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "submitBid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8131:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 196, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8131:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 199, + "name": "_next", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8145:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8130:26:0" + }, + "payable": true, + "returnParameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [], + "src": "8172:0:0" + }, + "scope": 959, + "src": "8112:1065:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 298, + "nodeType": "Block", + "src": "10056:58:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 291, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "10076:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "10092:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 294, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "10100:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 292, + "name": "search", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "10085:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": + "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10085:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 290, + "name": "submitBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "10066:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10066:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 297, + "nodeType": "ExpressionStatement", + "src": "10066:41:0" + } + ] + }, + "documentation": + "@dev Search for the correct insertion spot and submit a bid.\n This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n The UI must first call search to find the best point to start the search so it consumes the least amount of gas possible.\n Using this function instead of calling submitBid directly prevents it from failing in the case where new bids are added before the transaction is executed.\n @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n @param _next The bidID of the next bid in the list.", + "id": 299, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "searchAndBid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 285, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 299, + "src": "10015:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 284, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10015:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 287, + "name": "_next", + "nodeType": "VariableDeclaration", + "scope": 299, + "src": "10029:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10014:26:0" + }, + "payable": true, + "returnParameters": { + "id": 289, + "nodeType": "ParameterList", + "parameters": [], + "src": "10056:0:0" + }, + "scope": 959, + "src": "9993:121:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "10446:813:0", + "statements": [ + { + "assignments": [305], + "declarations": [ + { + "constant": false, + "id": 305, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10456:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 304, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "10456:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 309, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 306, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "10474:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 308, + "indexExpression": { + "argumentTypes": null, + "id": 307, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "10479:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10474:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10456:30:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 311, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "10504:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10504:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 313, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10518:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "10518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10504:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 310, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10496:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10496:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 317, + "nodeType": "ExpressionStatement", + "src": "10496:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 319, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10552:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 320, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10558:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10552:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 318, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10544:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10544:33:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "ExpressionStatement", + "src": "10544:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10595:14:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 325, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10596:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawn", + "nodeType": "MemberAccess", + "referencedDeclaration": 35, + "src": "10596:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10587:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10587:23:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 329, + "nodeType": "ExpressionStatement", + "src": "10587:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 330, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10621:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "withdrawn", + "nodeType": "MemberAccess", + "referencedDeclaration": 35, + "src": "10621:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10621:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 335, + "nodeType": "ExpressionStatement", + "src": "10621:20:0" + }, + { + "assignments": [337], + "declarations": [ + { + "constant": false, + "id": 337, + "name": "refund", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10810:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 358, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 338, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10825:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 339, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "10831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10825:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 341, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10824:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 344, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10866:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10866:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 346, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10881:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 347, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10881:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 349, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10866:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 351, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10865:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 352, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10911:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 353, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "10932:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10911:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 355, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10910:39:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10865:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10824:125:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 342, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10851:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 343, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10851:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10810:139:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 360, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "10966:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 361, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10976:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10976:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10966:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 359, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "10959:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10959:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 365, + "nodeType": "ExpressionStatement", + "src": "10959:29:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 366, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "11143:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 368, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "11143:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 369, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "11158:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11143:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 371, + "nodeType": "ExpressionStatement", + "src": "11143:21:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 372, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "11174:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 374, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "11174:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "33", + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11187:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11174:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "11174:14:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 383, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "11245:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "11225:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11225:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11225:19:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11225:27:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "11225:27:0" + } + ] + }, + "documentation": + "@dev Withdraw a bid. Can only be called before the end of the withdrawal lock period.\n Withdrawing a bid divides its bonus by 3.\n For retrieving ETH after an automatic withdrawal, use the redeem function.\n @param _bidID The ID of the bid to withdraw.", + "id": 387, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "name": "_bidID", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10426:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10426:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10425:13:0" + }, + "payable": false, + "returnParameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [], + "src": "10446:0:0" + }, + "scope": 959, + "src": "10408:851:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 552, + "nodeType": "Block", + "src": "11791:2248:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 393, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "11809:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 394, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "11816:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11809:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 392, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "11801:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11801:23:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 397, + "nodeType": "ExpressionStatement", + "src": "11801:23:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11842:10:0", + "subExpression": { + "argumentTypes": null, + "id": 399, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "11843:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 398, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "11834:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11834:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 402, + "nodeType": "ExpressionStatement", + "src": "11834:19:0" + }, + { + "assignments": [404], + "declarations": [ + { + "constant": false, + "id": 404, + "name": "localCutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "11981:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 403, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11981:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 406, + "initialValue": { + "argumentTypes": null, + "id": 405, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "12005:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11981:35:0" + }, + { + "assignments": [408], + "declarations": [ + { + "constant": false, + "id": 408, + "name": "localSumAcceptedContrib", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12026:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12026:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 410, + "initialValue": { + "argumentTypes": null, + "id": 409, + "name": "sumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 74, + "src": "12057:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12026:49:0" + }, + { + "assignments": [412], + "declarations": [ + { + "constant": false, + "id": 412, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12085:35:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 414, + "initialValue": { + "argumentTypes": null, + "id": 413, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "12123:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12085:63:0" + }, + { + "body": { + "id": 538, + "nodeType": "Block", + "src": "12280:1563:0", + "statements": [ + { + "assignments": [429], + "declarations": [ + { + "constant": false, + "id": 429, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12294:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 428, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "12294:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 433, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 430, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "12312:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 432, + "indexExpression": { + "argumentTypes": null, + "id": 431, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "12317:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12312:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12294:40:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 434, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12352:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 435, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12352:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 436, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12364:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 438, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12390:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 439, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12390:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 536, + "nodeType": "Block", + "src": "12702:1131:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 466, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "12779:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12791:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "12779:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "12779:16:0" + }, + { + "assignments": [471], + "declarations": [ + { + "constant": false, + "id": 471, + "name": "contribCutOff", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12813:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 470, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12813:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 482, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 472, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12834:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12834:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 474, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12848:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12834:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12913:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12834:80:0", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 476, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12874:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12874:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 478, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12887:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12874:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12813:101:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 483, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13045:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 484, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13061:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 485, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13077:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13077:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13061:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13107:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13107:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13061:57:0", + "trueExpression": { + "argumentTypes": null, + "id": 488, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13091:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13045:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "13045:73:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 499, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13317:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13317:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 501, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13329:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13317:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 494, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13296:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 497, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "13296:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13296:20:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (uint256) returns (bool)" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13296:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 504, + "nodeType": "ExpressionStatement", + "src": "13296:47:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 505, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13462:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13462:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 508, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13476:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13462:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 510, + "nodeType": "ExpressionStatement", + "src": "13462:27:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 511, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13541:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 512, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13568:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 513, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13541:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 515, + "nodeType": "ExpressionStatement", + "src": "13541:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 516, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "13597:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 517, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13631:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13631:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 519, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13646:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 520, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13646:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 521, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13660:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "13660:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13646:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 524, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13645:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 525, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "13673:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13645:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13631:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13597:89:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 529, + "nodeType": "ExpressionStatement", + "src": "13597:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 533, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13721:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 530, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "13704:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13704:16:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (uint256) returns (bool)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13704:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "13704:41:0" + } + ] + }, + "id": 537, + "nodeType": "IfStatement", + "src": "12348:1485:0", + "trueBody": { + "id": 465, + "nodeType": "Block", + "src": "12402:294:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 441, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12457:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 442, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12491:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12491:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12457:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 445, + "nodeType": "ExpressionStatement", + "src": "12457:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 446, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "12520:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 447, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12554:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12554:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 449, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12569:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 450, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12569:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 451, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12583:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 452, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "12583:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12569:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12568:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 455, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "12596:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12568:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12554:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12520:89:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 459, + "nodeType": "ExpressionStatement", + "src": "12520:89:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 460, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "12627:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 461, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12646:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 462, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "12646:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12627:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 464, + "nodeType": "ExpressionStatement", + "src": "12627:27:0" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 419, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "12247:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 420, + "name": "_maxIt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "12252:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12247:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12262:10:0", + "subExpression": { + "argumentTypes": null, + "id": 422, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "12263:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12247:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 539, + "initializationExpression": { + "assignments": [416], + "declarations": [ + { + "constant": false, + "id": 416, + "name": "it", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12234:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 418, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12244:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12234:11:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "12274:4:0", + "subExpression": { + "argumentTypes": null, + "id": 425, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "12276:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 427, + "nodeType": "ExpressionStatement", + "src": "12274:4:0" + }, + "nodeType": "ForStatement", + "src": "12229:1614:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 540, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "13880:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 541, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "13894:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13880:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "13880:30:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 544, + "name": "sumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 74, + "src": "13920:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 545, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13941:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13920:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "13920:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 548, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "13974:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 549, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "14002:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13974:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 551, + "nodeType": "ExpressionStatement", + "src": "13974:58:0" + } + ] + }, + "documentation": + "@dev Finalize by finding the cut-off bid.\n Since the amount of bids is not bounded, this function may have to be called multiple times.\n The function is O(min(n,_maxIt)) where n is the amount of bids. In total it will perform O(n) computations, possibly in multiple calls.\n Each call only has a O(1) storage write operations.\n @param _maxIt The maximum amount of bids to go through. This value must be set in order to not exceed the gas limit.", + "id": 553, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "finalize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "name": "_maxIt", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "11771:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11771:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11770:13:0" + }, + "payable": false, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "11791:0:0" + }, + "scope": 959, + "src": "11753:2286:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "14320:662:0", + "statements": [ + { + "assignments": [559], + "declarations": [ + { + "constant": false, + "id": 559, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14330:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 558, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "14330:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 563, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 560, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "14348:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 562, + "indexExpression": { + "argumentTypes": null, + "id": 561, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "14353:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14348:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14330:30:0" + }, + { + "assignments": [565], + "declarations": [ + { + "constant": false, + "id": 565, + "name": "cutOffBid", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14370:21:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 564, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "14370:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 569, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 566, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "14394:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 568, + "indexExpression": { + "argumentTypes": null, + "id": 567, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "14399:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14394:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14370:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "14429:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "14421:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14421:18:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 573, + "nodeType": "ExpressionStatement", + "src": "14421:18:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14457:13:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 575, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14458:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 576, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "14458:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "14449:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14449:22:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 579, + "nodeType": "ExpressionStatement", + "src": "14449:22:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 580, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "14482:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14495:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14482:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 585, + "nodeType": "ExpressionStatement", + "src": "14482:17:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 586, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14513:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14513:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "cutOffBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "14526:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 589, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14526:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14513:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 591, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14547:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14547:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 593, + "name": "cutOffBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "14561:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14561:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14547:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 596, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "14581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 597, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "14591:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14581:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14547:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 600, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14546:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14513:90:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 631, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14963:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14963:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 626, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14938:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 629, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "14938:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14938:24:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14938:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "ExpressionStatement", + "src": "14938:37:0" + }, + "id": 635, + "nodeType": "IfStatement", + "src": "14509:466:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 605, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14671:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 606, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "14671:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 607, + "name": "tokensForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "14689:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 608, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14706:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14706:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 610, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14721:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14721:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 612, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14735:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "14735:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14721:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 615, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14720:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 616, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "14748:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14720:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14706:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 619, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14705:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14689:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 621, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14688:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 622, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "14766:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14688:103:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 602, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "14656:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1025, + "src": "14656:14:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (address,uint256) external returns (bool)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14656:136:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "14656:136:0" + } + } + ] + }, + "documentation": + "@dev Redeem a bid. If the bid is accepted, send the tokens, otherwise refund the ETH.\n Note that anyone can call this function, not only the party which made the bid.\n @param _bidID ID of the bid to withdraw.", + "id": 637, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "name": "_bidID", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14300:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14300:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14299:13:0" + }, + "payable": false, + "returnParameters": { + "id": 557, + "nodeType": "ParameterList", + "parameters": [], + "src": "14320:0:0" + }, + "scope": 959, + "src": "14284:698:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 703, + "nodeType": "Block", + "src": "15211:632:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15225:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15225:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15238:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15225:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 644, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "15243:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 645, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "15250:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15225:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 648, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "15263:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 649, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "15269:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15263:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15225:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15394:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15394:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15407:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15394:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 661, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "15412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15394:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 701, + "nodeType": "IfStatement", + "src": "15390:446:0", + "trueBody": { + "body": { + "condition": { + "argumentTypes": null, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15600:48:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 677, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "15601:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 684, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 678, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15606:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 681, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 679, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15624:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15624:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15606:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 683, + "indexExpression": { + "argumentTypes": null, + "id": 682, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15636:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15606:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15601:38:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "15601:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 696, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1051, + "src": "15828:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15828:8:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 698, + "nodeType": "ExpressionStatement", + "src": "15828:8:0" + }, + "id": 699, + "nodeType": "IfStatement", + "src": "15596:240:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 688, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15677:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 691, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 689, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15695:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15695:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15677:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 693, + "indexExpression": { + "argumentTypes": null, + "id": 692, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15707:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15677:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 687, + "name": "redeem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "15670:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15670:40:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 695, + "nodeType": "ExpressionStatement", + "src": "15670:40:0" + } + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 667, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15533:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15537:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 671, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 669, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15555:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15555:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15537:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15537:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15533:40:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 700, + "initializationExpression": { + "assignments": [664], + "declarations": [ + { + "constant": false, + "id": 664, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "15521:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 666, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15530:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15521:10:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "15575:3:0", + "subExpression": { + "argumentTypes": null, + "id": 674, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15577:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 676, + "nodeType": "ExpressionStatement", + "src": "15575:3:0" + }, + "nodeType": "ForStatement", + "src": "15516:320:0" + } + }, + "id": 702, + "nodeType": "IfStatement", + "src": "15221:615:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 653, + "name": "INFINITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "15360:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "15370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 652, + "name": "submitBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "15350:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15350:25:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "15350:25:0" + } + } + ] + }, + "documentation": + "@dev Fallback. Make a bid if ETH are sent. Redeem all the bids of the contributor otherwise.\n This allows users to bid and get their tokens back using only send operations.", + "id": 704, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [], + "src": "15193:2:0" + }, + "payable": true, + "returnParameters": { + "id": 639, + "nodeType": "ParameterList", + "parameters": [], + "src": "15211:0:0" + }, + "scope": 959, + "src": "15184:659:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "16489:759:0", + "statements": [ + { + "assignments": [714], + "declarations": [ + { + "constant": false, + "id": 714, + "name": "next", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16499:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 713, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 716, + "initialValue": { + "argumentTypes": null, + "id": 715, + "name": "_nextStart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "16511:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16499:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 718, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16531:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 717, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16531:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 719, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "16531:10:0" + }, + { + "body": { + "id": 762, + "nodeType": "Block", + "src": "16566:654:0", + "statements": [ + { + "assignments": [723], + "declarations": [ + { + "constant": false, + "id": 723, + "name": "nextBid", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16623:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 722, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "16623:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 727, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 724, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "16645:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 726, + "indexExpression": { + "argumentTypes": null, + "id": 725, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "16650:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16645:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16623:32:0" + }, + { + "assignments": [729], + "declarations": [ + { + "constant": false, + "id": 729, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16669:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16669:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 732, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 730, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "16681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 731, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "16681:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16669:24:0" + }, + { + "assignments": [734], + "declarations": [ + { + "constant": false, + "id": 734, + "name": "prevBid", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16707:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 733, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "16707:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 738, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 735, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "16729:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 737, + "indexExpression": { + "argumentTypes": null, + "id": 736, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "16734:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16729:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16707:32:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 739, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "16758:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 740, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "16768:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 741, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "16768:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16758:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 747, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "16873:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 748, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "16884:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "16884:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 756, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 718, + "src": "17197:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17205:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "17197:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 759, + "nodeType": "ExpressionStatement", + "src": "17197:12:0" + }, + "id": 760, + "nodeType": "IfStatement", + "src": "16869:340:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 751, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "17079:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 752, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "17086:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 753, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "next", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "17086:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17079:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 755, + "nodeType": "ExpressionStatement", + "src": "17079:19:0" + } + }, + "id": 761, + "nodeType": "IfStatement", + "src": "16754:455:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 743, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "16839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 744, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "16846:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16839:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 746, + "nodeType": "ExpressionStatement", + "src": "16839:11:0" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16558:6:0", + "subExpression": { + "argumentTypes": null, + "id": 720, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 718, + "src": "16559:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 763, + "nodeType": "WhileStatement", + "src": "16552:668:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "17237:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 712, + "id": 765, + "nodeType": "Return", + "src": "17230:11:0" + } + ] + }, + "documentation": + "@dev Search for the correct insertion spot of a bid.\n This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n @param _maxVal The maximum valuation given by the contributor. Or INFINITY if no maximum valuation is given.\n @param _nextStart The bidID of the next bid from the initial position to start the search from.\n @return nextInsert The bidID of the next bid from the position the bid must be inserted at.", + "id": 767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "search", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 709, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16417:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16417:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "name": "_nextStart", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16431:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16431:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16416:31:0" + }, + "payable": false, + "returnParameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 711, + "name": "nextInsert", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16472:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16472:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16471:17:0" + }, + "scope": 959, + "src": "16401:847:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "17567:366:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 772, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17581:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 773, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "17587:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17581:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 777, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17666:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 778, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17672:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17666:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 782, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "17868:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 783, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17880:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 784, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 786, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17879:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17868:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 788, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17867:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 789, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17899:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 790, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "17909:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17899:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 792, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17898:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17867:59:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 771, + "id": 794, + "nodeType": "Return", + "src": "17860:66:0" + }, + "id": 795, + "nodeType": "IfStatement", + "src": "17662:264:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17734:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 771, + "id": 781, + "nodeType": "Return", + "src": "17727:8:0" + } + }, + "id": 796, + "nodeType": "IfStatement", + "src": "17577:349:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 775, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "17639:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 771, + "id": 776, + "nodeType": "Return", + "src": "17632:15:0" + } + } + ] + }, + "documentation": + "@dev Return the current bonus. The bonus only changes in 1/BONUS_DIVISOR increments.\n @return b The bonus expressed in 1/BONUS_DIVISOR. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.", + "id": 798, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "bonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "17532:2:0" + }, + "payable": false, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "17559:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17559:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17558:8:0" + }, + "scope": 959, + "src": "17518:415:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 830, + "nodeType": "Block", + "src": "18495:159:0", + "statements": [ + { + "body": { + "expression": { + "argumentTypes": null, + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 818, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "18583:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 819, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "18599:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 825, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 820, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "18604:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 822, + "indexExpression": { + "argumentTypes": null, + "id": 821, + "name": "_contributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "18622:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18604:31:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 824, + "indexExpression": { + "argumentTypes": null, + "id": 823, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18636:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18604:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18599:40:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "18599:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18583:64:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 828, + "nodeType": "ExpressionStatement", + "src": "18583:64:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 809, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18522:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 810, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "18526:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 812, + "indexExpression": { + "argumentTypes": null, + "id": 811, + "name": "_contributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "18544:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18526:31:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18526:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18522:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 829, + "initializationExpression": { + "assignments": [806], + "declarations": [ + { + "constant": false, + "id": 806, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18510:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18510:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18519:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "18510:10:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "18566:3:0", + "subExpression": { + "argumentTypes": null, + "id": 815, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18568:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "18566:3:0" + }, + "nodeType": "ForStatement", + "src": "18505:142:0" + } + ] + }, + "documentation": + "@dev Get the total contribution of an address.\n This can be used for a KYC threshold.\n This function is O(n) where n is the amount of bids made by the contributor.\n This means that the contributor can make totalContrib(contributor) revert due to an out of gas error on purpose.\n @param _contributor The contributor whose contribution will be returned.\n @return contribution The total contribution of the contributor.", + "id": 831, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalContrib", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "name": "_contributor", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18429:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18429:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18428:22:0" + }, + "payable": false, + "returnParameters": { + "id": 804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 803, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18476:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 802, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18475:19:0" + }, + "scope": 959, + "src": "18407:247:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "18997:1219:0", + "statements": [ + { + "assignments": [841], + "declarations": [ + { + "constant": false, + "id": 841, + "name": "capped", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19007:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 840, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19007:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 843, + "initialValue": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19021:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19007:19:0" + }, + { + "assignments": [845], + "declarations": [ + { + "constant": false, + "id": 845, + "name": "localCutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19036:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 844, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19036:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 850, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 846, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "19060:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 848, + "indexExpression": { + "argumentTypes": null, + "id": 847, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "19065:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19060:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "19060:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19036:39:0" + }, + { + "body": { + "id": 947, + "nodeType": "Block", + "src": "19149:1001:0", + "statements": [ + { + "assignments": [855], + "declarations": [ + { + "constant": false, + "id": 855, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19163:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 854, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "19163:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 859, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "19181:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "19186:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19181:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19163:40:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19221:7:0", + "subExpression": { + "argumentTypes": null, + "id": 860, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "19222:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 862, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19233:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19233:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 864, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19247:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19233:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 866, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19259:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19259:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19233:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 869, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19232:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19221:49:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 940, + "nodeType": "Block", + "src": "19513:559:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 896, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19594:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 897, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19607:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 898, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19607:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19594:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 900, + "nodeType": "ExpressionStatement", + "src": "19594:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 901, + "name": "virtualValuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "19636:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 902, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19656:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19656:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 904, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19671:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 905, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19671:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 906, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19685:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "19685:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19671:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 909, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19670:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 910, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "19698:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19670:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19656:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19636:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 914, + "nodeType": "ExpressionStatement", + "src": "19636:75:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19733:7:0", + "subExpression": { + "argumentTypes": null, + "id": 915, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "19734:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 939, + "nodeType": "IfStatement", + "src": "19729:329:0", + "trueBody": { + "id": 938, + "nodeType": "Block", + "src": "19742:316:0", + "statements": [ + { + "assignments": [918], + "declarations": [ + { + "constant": false, + "id": 918, + "name": "contribCutOff", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19764:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 917, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19764:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 929, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 919, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19785:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19785:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 921, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19799:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19785:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19836:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19785:52:0", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 923, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19811:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 924, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19811:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 925, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19824:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19811:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19764:73:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 930, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "19972:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 931, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 918, + "src": "19991:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19972:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 933, + "nodeType": "ExpressionStatement", + "src": "19972:32:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 934, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "20026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20035:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "20026:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 937, + "nodeType": "ExpressionStatement", + "src": "20026:13:0" + } + ] + } + } + ] + }, + "id": 941, + "nodeType": "IfStatement", + "src": "19217:855:0", + "trueBody": { + "id": 895, + "nodeType": "Block", + "src": "19272:235:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 871, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19327:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 872, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19340:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19340:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19327:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 875, + "nodeType": "ExpressionStatement", + "src": "19327:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 876, + "name": "virtualValuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "19369:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 877, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19389:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19389:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 879, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19404:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 880, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19404:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 881, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19418:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "19418:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19404:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 884, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19403:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 885, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "19431:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19403:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19389:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19369:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 889, + "nodeType": "ExpressionStatement", + "src": "19369:75:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 890, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "19462:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 891, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19481:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 892, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19481:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19462:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "19462:30:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 942, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "20085:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 943, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "20104:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 944, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "20104:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20085:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 946, + "nodeType": "ExpressionStatement", + "src": "20085:27:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 851, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "19123:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 852, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "19143:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19123:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 948, + "nodeType": "WhileStatement", + "src": "19116:1034:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 949, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "20164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 950, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "20170:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20164:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 956, + "nodeType": "IfStatement", + "src": "20160:49:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 952, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "20190:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20208:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20190:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 955, + "nodeType": "ExpressionStatement", + "src": "20190:19:0" + } + } + ] + }, + "documentation": + "@dev Get the current valuation and the amount of ETH committed to the sale.\n@return The current valuation and the amount of ETH committed to the sale.", + "id": 958, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "valuationAndAmountCommitted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [], + "src": "18912:2:0" + }, + "payable": false, + "returnParameters": { + "id": 839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "name": "valuation", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18936:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 833, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18936:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "name": "amountCommitted", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18952:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 835, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18952:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 838, + "name": "virtualValuation", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18974:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 837, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18974:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18935:61:0" + }, + "scope": 959, + "src": "18876:1340:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 960, + "src": "1999:18219:0" + } + ], + "src": "95:20124:0" + }, + "legacyAST": { + "absolutePath": + "/Users/epiqueras/Work/kleros/openiico-contract/contracts/IICO.sol", + "exportedSymbols": { + "IICO": [959] + }, + "id": 960, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": ["solidity", "^", "0.4", ".18"], + "nodeType": "PragmaDirective", + "src": "95:24:0" + }, + { + "absolutePath": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "file": "zeppelin-solidity/contracts/token/ERC20/ERC20.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 960, + "sourceUnit": 1003, + "src": "121:59:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": + "@title Interactive Coin Offering\n This contract implements the Interactive Coin Offering token sale as described in this paper:\n https://people.cs.uchicago.edu/~teutsch/papers/ico.pdf\n Implementation details and modifications compared to the paper:\n -A fixed amount of tokens is sold. This allows more flexibility for the distribution of the remaining tokens (rounds, team tokens which can be preallocated, non-initial sell of some cryptographic assets).\n -The valuation pointer is only moved when the sale is over. This greatly reduces the amount of write operations and code complexity. However, at least one party must make one or multiple calls to finalize the sale.\n -Buckets are not used as they are not required and increase code complexity.\n -The bid submitter must provide the insertion spot. A search of the insertion spot is still done in the contract just in case the one provided was wrong or other bids were added between when the TX got signed and executed, but giving the search starting point greatly lowers gas consumption.\n -Automatic withdrawals are only possible at the end of the sale. This decreases code complexity and possible interactions between different parts of the code.\n -We put a full bonus, free withdrawal period at the beginning. This allows everyone to have a chance to place bids with full bonus and avoids clogging the network just after the sale starts. Note that at this moment, no information can be taken for granted as parties can withdraw freely.\n -Calling the fallback function while sending ETH places a bid with an infinite maximum valuation. This allows buyers who want to buy no matter the price not need to use a specific interface and just send ETH. Without ETH, a call to the fallback function redeems the bids of the caller.", + "fullyImplemented": true, + "id": 959, + "linearizedBaseContracts": [959], + "name": "IICO", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 4, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2046:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2046:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6, + "name": "beneficiary", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2114:26:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2114:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 9, + "name": "HEAD", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2210:22:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2210:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2231:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 15, + "name": "TAIL", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2333:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2333:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2359:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2360: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" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-1_by_1", + "typeString": "int_const -1" + } + ], + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2354:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2354:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 21, + "name": "INFINITY", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "2456:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2456:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 19, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "2486:2:0", + "subExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2487:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "typeDescriptions": { + "typeIdentifier": "t_rational_-2_by_1", + "typeString": "int_const -2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_-2_by_1", + "typeString": "int_const -2" + } + ], + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2481:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint" + }, + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2481:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "canonicalName": "IICO.Bid", + "id": 38, + "members": [ + { + "constant": false, + "id": 23, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3043:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3043:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "name": "next", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3107:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3107:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 27, + "name": "maxVal", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3209:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3209:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "name": "contrib", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3312:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 28, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3312:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "name": "bonus", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3366:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3366:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "name": "contributor", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3465:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3465:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "name": "withdrawn", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3534:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 34, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3534:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "name": "redeemed", + "nodeType": "VariableDeclaration", + "scope": 38, + "src": "3603:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 36, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3603:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Bid", + "nodeType": "StructDefinition", + "scope": 959, + "src": "2980:699:0", + "visibility": "public" + }, + { + "constant": false, + "id": 42, + "name": "bids", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3684:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": "mapping(uint256 => struct IICO.Bid storage ref)" + }, + "typeName": { + "id": 41, + "keyType": { + "id": 39, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3684:21:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": "mapping(uint256 => struct IICO.Bid storage ref)" + }, + "valueType": { + "contractScope": null, + "id": 40, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "3701:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 47, + "name": "contributorBidIDs", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3744:52:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + }, + "typeName": { + "id": 46, + "keyType": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3753:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3744:27:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(address => uint256[] storage ref)" + }, + "valueType": { + "baseType": { + "id": 44, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3764:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 45, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3764:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 50, + "name": "lastBidID", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3846:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 48, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3846:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3870:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 52, + "name": "startTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "3951:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 51, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3951:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 54, + "name": "endFullBonusTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4024:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 53, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4024:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 56, + "name": "withdrawalLockTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4108:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4108:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 58, + "name": "endTime", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4225:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 57, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4225:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 60, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4296:18:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 59, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1002, + "src": "4296:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 62, + "name": "tokensForSale", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4372:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 61, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4372:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 64, + "name": "maxBonus", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4464:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 63, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4464:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 67, + "name": "BONUS_DIVISOR", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4639:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 65, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4639:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "314539", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4669:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000_by_1", + "typeString": "int_const 1000000000" + }, + "value": "1E9" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "name": "finalized", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4790:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 68, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4790:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 72, + "name": "cutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "4940:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 70, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4940:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "id": 71, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "4966:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 74, + "name": "sumAcceptedContrib", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "5042:30:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 73, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5042:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 76, + "name": "sumAcceptedVirtualContrib", + "nodeType": "VariableDeclaration", + "scope": 959, + "src": "5123:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5123:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 86, + "nodeType": "Block", + "src": "5252:36:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 79, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "5262:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 80, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "5271:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5271:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5262:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 78, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "5254:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5254:28:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 84, + "nodeType": "ExpressionStatement", + "src": "5254:28:0" + }, + { + "id": 85, + "nodeType": "PlaceholderStatement", + "src": "5284:1:0" + } + ] + }, + "documentation": null, + "id": 87, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [], + "src": "5252:0:0" + }, + "src": "5234:54:0", + "visibility": "internal" + }, + { + "body": { + "id": 167, + "nodeType": "Block", + "src": "6293:889:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 102, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "6303:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 103, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "6311:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6311:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6303:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 106, + "nodeType": "ExpressionStatement", + "src": "6303:18:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 107, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "6331:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 108, + "name": "_startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 89, + "src": "6343:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6331:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 110, + "nodeType": "ExpressionStatement", + "src": "6331:22:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 111, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "6363:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 112, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "6382:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 113, + "name": "_fullBonusLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 91, + "src": "6394:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6382:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6363:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 116, + "nodeType": "ExpressionStatement", + "src": "6363:47:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 117, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6420:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 118, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "6441:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 119, + "name": "_partialWithdrawalLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "6460:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6441:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6420:64:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 122, + "nodeType": "ExpressionStatement", + "src": "6420:64:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 123, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "6494:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 124, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "6504:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 125, + "name": "_withdrawalLockUpLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "6525:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6504:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6494:54:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 128, + "nodeType": "ExpressionStatement", + "src": "6494:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 129, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "6558:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 130, + "name": "_maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "6569:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6558:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 132, + "nodeType": "ExpressionStatement", + "src": "6558:20:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 133, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "6588:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 134, + "name": "_beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 99, + "src": "6602:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6588:26:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 136, + "nodeType": "ExpressionStatement", + "src": "6588:26:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 137, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6691:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 139, + "indexExpression": { + "argumentTypes": null, + "id": 138, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6696:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6691:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 141, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6728:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 142, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6752:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 143, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6778:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6805:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6827:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307830", + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6855:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6883:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6912:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 140, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "6704:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "6704:224:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "6691:237:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "6691:237:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 152, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "6938:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 154, + "indexExpression": { + "argumentTypes": null, + "id": 153, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "6943:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6938:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 156, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6975:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 157, + "name": "HEAD", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "6999:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 158, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "7025:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7052:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7074:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "307830", + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7102:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7130:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7159:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 155, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "6951:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "6951:224:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "6938:237:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 166, + "nodeType": "ExpressionStatement", + "src": "6938:237:0" + } + ] + }, + "documentation": + "@dev Constructor. First contract set up (tokens will also need to be transferred to the contract and then setToken needs to be called to finish the setup).\n @param _startTime Time the sale will start in seconds since the Unix Epoch.\n @param _fullBonusLength Amount of seconds the sale lasts in the full bonus period.\n @param _partialWithdrawalLength Amount of seconds the sale lasts in the partial withdrawal period.\n @param _withdrawalLockUpLength Amount of seconds the sale lasts in the withdrawal lockup period.\n @param _maxBonus The maximum bonus. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.\n @param _beneficiary The party which will get the funds of the token sale.", + "id": 168, + "implemented": true, + "isConstructor": true, + "isDeclaredConst": false, + "modifiers": [], + "name": "IICO", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 89, + "name": "_startTime", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6147:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 88, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6147:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "name": "_fullBonusLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6164:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6164:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "name": "_partialWithdrawalLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6187:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 92, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6187:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "name": "_withdrawalLockUpLength", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6218:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 94, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "name": "_maxBonus", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6248:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "name": "_beneficiary", + "nodeType": "VariableDeclaration", + "scope": 168, + "src": "6264:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 98, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6146:139:0" + }, + "payable": false, + "returnParameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [], + "src": "6293:0:0" + }, + "scope": 959, + "src": "6133:1049:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 194, + "nodeType": "Block", + "src": "7393:119:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 177, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7419:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + ], + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7411:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7411:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "307830", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7429:3:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x0" + }, + "src": "7411:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 175, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "7403:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:30:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 182, + "nodeType": "ExpressionStatement", + "src": "7403:30:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 183, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7444:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 184, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "7452:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "src": "7444:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "7444:14:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 187, + "name": "tokensForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "7468:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 190, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1062, + "src": "7500:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IICO_$959", + "typeString": "contract IICO" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IICO_$959", + "typeString": "contract IICO" + } + ], + "expression": { + "argumentTypes": null, + "id": 188, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "7484:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 1016, + "src": "7484:15:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": + "function (address) view external returns (uint256)" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7484:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7468:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 193, + "nodeType": "ExpressionStatement", + "src": "7468:37:0" + } + ] + }, + "documentation": + "@dev Set the token. Must only be called after the IICO contract receives the tokens to be sold.\n @param _token The token to be sold.", + "id": 195, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [ + { + "arguments": [], + "id": 173, + "modifierName": { + "argumentTypes": null, + "id": 172, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 87, + "src": "7383:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7383:9:0" + } + ], + "name": "setToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 195, + "src": "7362:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + }, + "typeName": { + "contractScope": null, + "id": 169, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1002, + "src": "7362:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7361:14:0" + }, + "payable": false, + "returnParameters": { + "id": 174, + "nodeType": "ParameterList", + "parameters": [], + "src": "7393:0:0" + }, + "scope": 959, + "src": "7344:168:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 282, + "nodeType": "Block", + "src": "8172:1005:0", + "statements": [ + { + "assignments": [203], + "declarations": [ + { + "constant": false, + "id": 203, + "name": "nextBid", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8182:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 202, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "8182:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 204, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8204:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 206, + "indexExpression": { + "argumentTypes": null, + "id": 205, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "8209:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8204:11:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8182:33:0" + }, + { + "assignments": [209], + "declarations": [ + { + "constant": false, + "id": 209, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8225:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 208, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8225:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 212, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 210, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8237:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8237:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8225:24:0" + }, + { + "assignments": [214], + "declarations": [ + { + "constant": false, + "id": 214, + "name": "prevBid", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8259:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 213, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "8259:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 218, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 215, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8281:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 217, + "indexExpression": { + "argumentTypes": null, + "id": 216, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 209, + "src": "8286:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8281:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8259:32:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 220, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8309:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 221, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "8320:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 222, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "8320:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8309:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 224, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8338:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 225, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8348:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 226, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "8348:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8338:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8309:53:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 219, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "8301:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8301:62:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 230, + "nodeType": "ExpressionStatement", + "src": "8301:62:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 232, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "8473:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 233, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "8480:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8473:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 235, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "8493:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 236, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "8499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8493:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8473:33:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 231, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "8465:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8465:42:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "8465:42:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "8557:11:0", + "subExpression": { + "argumentTypes": null, + "id": 241, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8559:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 243, + "nodeType": "ExpressionStatement", + "src": "8557:11:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 244, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 214, + "src": "8687:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "next", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "8687:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 247, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8702:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8687:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 249, + "nodeType": "ExpressionStatement", + "src": "8687:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 250, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 203, + "src": "8721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "8721:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 253, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8736:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8721:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 255, + "nodeType": "ExpressionStatement", + "src": "8721:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 256, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "8783:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 258, + "indexExpression": { + "argumentTypes": null, + "id": 257, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "8788:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8783:15:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 260, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 209, + "src": "8825:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 261, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "8849:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 262, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "8876:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 263, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "8906:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8906:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 265, + "name": "bonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "8936:5:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8936:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 267, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "8970:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8970:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9005:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9034:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": null, + "id": 259, + "name": "Bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "8801:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_type$_t_struct$_Bid_$38_storage_ptr_$", + "typeString": "type(struct IICO.Bid storage pointer)" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "prev", + "next", + "maxVal", + "contrib", + "bonus", + "contributor", + "withdrawn", + "redeemed" + ], + "nodeType": "FunctionCall", + "src": "8801:249:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_memory", + "typeString": "struct IICO.Bid memory" + } + }, + "src": "8783:267:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 273, + "nodeType": "ExpressionStatement", + "src": "8783:267:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 279, + "name": "lastBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 50, + "src": "9160:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 274, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "9125:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 277, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 275, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "9143:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9143:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9125:29:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9125:34:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9125:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 281, + "nodeType": "ExpressionStatement", + "src": "9125:45:0" + } + ] + }, + "documentation": + "@dev Submit a bid. The caller must give the exact position the bid must be inserted into in the list.\n In practice, use searchAndBid to avoid the position being incorrect due to a new bid being inserted and changing the position the bid must be inserted at.\n @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n @param _next The bidID of the next bid in the list.", + "id": 283, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "submitBid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 197, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8131:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 196, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8131:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 199, + "name": "_next", + "nodeType": "VariableDeclaration", + "scope": 283, + "src": "8145:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 198, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8145:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8130:26:0" + }, + "payable": true, + "returnParameters": { + "id": 201, + "nodeType": "ParameterList", + "parameters": [], + "src": "8172:0:0" + }, + "scope": 959, + "src": "8112:1065:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 298, + "nodeType": "Block", + "src": "10056:58:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 291, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "10076:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 293, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "10092:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 294, + "name": "_next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "10100:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 292, + "name": "search", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "10085:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": + "function (uint256,uint256) view returns (uint256)" + } + }, + "id": 295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10085:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 290, + "name": "submitBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "10066:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10066:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 297, + "nodeType": "ExpressionStatement", + "src": "10066:41:0" + } + ] + }, + "documentation": + "@dev Search for the correct insertion spot and submit a bid.\n This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n The UI must first call search to find the best point to start the search so it consumes the least amount of gas possible.\n Using this function instead of calling submitBid directly prevents it from failing in the case where new bids are added before the transaction is executed.\n @param _maxVal The maximum valuation given by the contributor. If the amount raised is higher, the bid is cancelled and the contributor refunded because it prefers a refund instead of this level of dilution. To buy no matter what, use INFINITY.\n @param _next The bidID of the next bid in the list.", + "id": 299, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "searchAndBid", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 285, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 299, + "src": "10015:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 284, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10015:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 287, + "name": "_next", + "nodeType": "VariableDeclaration", + "scope": 299, + "src": "10029:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10029:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10014:26:0" + }, + "payable": true, + "returnParameters": { + "id": 289, + "nodeType": "ParameterList", + "parameters": [], + "src": "10056:0:0" + }, + "scope": 959, + "src": "9993:121:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "10446:813:0", + "statements": [ + { + "assignments": [305], + "declarations": [ + { + "constant": false, + "id": 305, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10456:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 304, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "10456:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 309, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 306, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "10474:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 308, + "indexExpression": { + "argumentTypes": null, + "id": 307, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "10479:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10474:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10456:30:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 311, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "10504:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10504:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 313, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10518:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 314, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "10518:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10504:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 310, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10496:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10496:38:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 317, + "nodeType": "ExpressionStatement", + "src": "10496:38:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 319, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10552:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 320, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10558:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10552:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 318, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10544:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10544:33:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 323, + "nodeType": "ExpressionStatement", + "src": "10544:33:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10595:14:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 325, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10596:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 326, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "withdrawn", + "nodeType": "MemberAccess", + "referencedDeclaration": 35, + "src": "10596:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "10587:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10587:23:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 329, + "nodeType": "ExpressionStatement", + "src": "10587:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 330, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10621:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "withdrawn", + "nodeType": "MemberAccess", + "referencedDeclaration": 35, + "src": "10621:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10621:20:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 335, + "nodeType": "ExpressionStatement", + "src": "10621:20:0" + }, + { + "assignments": [337], + "declarations": [ + { + "constant": false, + "id": 337, + "name": "refund", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10810:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 336, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10810:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 358, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 338, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10825:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 339, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "10831:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10825:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 341, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10824:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 344, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10866:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10866:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 346, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10881:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 347, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "10902:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10881:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 349, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10866:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 351, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10865:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 352, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "10911:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 353, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "10932:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10911:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 355, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10910:39:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10865:84:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10824:125:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 342, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10851:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 343, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10851:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10810:139:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 360, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "10966:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 361, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "10976:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "10976:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10966:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 359, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "10959:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10959:29:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 365, + "nodeType": "ExpressionStatement", + "src": "10959:29:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 366, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "11143:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 368, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "11143:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 369, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "11158:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11143:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 371, + "nodeType": "ExpressionStatement", + "src": "11143:21:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 372, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "11174:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 374, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "11174:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "33", + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11187:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "11174:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 377, + "nodeType": "ExpressionStatement", + "src": "11174:14:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 383, + "name": "refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 337, + "src": "11245:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 378, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "11225:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11225:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11225:19:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11225:27:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "11225:27:0" + } + ] + }, + "documentation": + "@dev Withdraw a bid. Can only be called before the end of the withdrawal lock period.\n Withdrawing a bid divides its bonus by 3.\n For retrieving ETH after an automatic withdrawal, use the redeem function.\n @param _bidID The ID of the bid to withdraw.", + "id": 387, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "name": "_bidID", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "10426:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 300, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10426:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10425:13:0" + }, + "payable": false, + "returnParameters": { + "id": 303, + "nodeType": "ParameterList", + "parameters": [], + "src": "10446:0:0" + }, + "scope": 959, + "src": "10408:851:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 552, + "nodeType": "Block", + "src": "11791:2248:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 393, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "11809:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 394, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "11816:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11809:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 392, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "11801:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11801:23:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 397, + "nodeType": "ExpressionStatement", + "src": "11801:23:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11842:10:0", + "subExpression": { + "argumentTypes": null, + "id": 399, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "11843:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 398, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "11834:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11834:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 402, + "nodeType": "ExpressionStatement", + "src": "11834:19:0" + }, + { + "assignments": [404], + "declarations": [ + { + "constant": false, + "id": 404, + "name": "localCutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "11981:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 403, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11981:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 406, + "initialValue": { + "argumentTypes": null, + "id": 405, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "12005:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11981:35:0" + }, + { + "assignments": [408], + "declarations": [ + { + "constant": false, + "id": 408, + "name": "localSumAcceptedContrib", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12026:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 407, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12026:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 410, + "initialValue": { + "argumentTypes": null, + "id": 409, + "name": "sumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 74, + "src": "12057:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12026:49:0" + }, + { + "assignments": [412], + "declarations": [ + { + "constant": false, + "id": 412, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12085:35:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 411, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12085:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 414, + "initialValue": { + "argumentTypes": null, + "id": 413, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "12123:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12085:63:0" + }, + { + "body": { + "id": 538, + "nodeType": "Block", + "src": "12280:1563:0", + "statements": [ + { + "assignments": [429], + "declarations": [ + { + "constant": false, + "id": 429, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12294:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 428, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "12294:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 433, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 430, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "12312:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 432, + "indexExpression": { + "argumentTypes": null, + "id": 431, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "12317:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12312:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12294:40:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 434, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12352:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 435, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12352:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 436, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12364:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 438, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12390:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 439, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12390:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12352:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 536, + "nodeType": "Block", + "src": "12702:1131:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 466, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "12779:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12791:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "12779:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 469, + "nodeType": "ExpressionStatement", + "src": "12779:16:0" + }, + { + "assignments": [471], + "declarations": [ + { + "constant": false, + "id": 471, + "name": "contribCutOff", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12813:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 470, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12813:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 482, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 472, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12834:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 473, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12834:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 474, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12848:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12834:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12913:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12834:80:0", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 476, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12874:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "12874:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 478, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12887:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12874:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12813:101:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 483, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13045:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 484, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13061:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 485, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13077:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13077:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13061:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 489, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13107:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13107:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "13061:57:0", + "trueExpression": { + "argumentTypes": null, + "id": 488, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13091:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13045:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 493, + "nodeType": "ExpressionStatement", + "src": "13045:73:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 499, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13317:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 500, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13317:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 501, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13329:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13317:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 494, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13296:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 497, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "13296:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13296:20:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (uint256) returns (bool)" + } + }, + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13296:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 504, + "nodeType": "ExpressionStatement", + "src": "13296:47:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 505, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13462:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13462:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 508, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "13476:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13462:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 510, + "nodeType": "ExpressionStatement", + "src": "13462:27:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 511, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13541:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 512, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13568:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 513, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13568:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13541:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 515, + "nodeType": "ExpressionStatement", + "src": "13541:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 516, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "13597:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 517, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13631:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13631:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 519, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13646:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 520, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "13646:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 521, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "13660:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 522, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "13660:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13646:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 524, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13645:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 525, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "13673:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13645:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13631:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13597:89:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 529, + "nodeType": "ExpressionStatement", + "src": "13597:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 533, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13721:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 530, + "name": "beneficiary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "13704:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13704:16:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (uint256) returns (bool)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13704:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 535, + "nodeType": "ExpressionStatement", + "src": "13704:41:0" + } + ] + }, + "id": 537, + "nodeType": "IfStatement", + "src": "12348:1485:0", + "trueBody": { + "id": 465, + "nodeType": "Block", + "src": "12402:294:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 441, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "12457:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 442, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12491:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 443, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12491:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12457:45:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 445, + "nodeType": "ExpressionStatement", + "src": "12457:45:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 446, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "12520:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 447, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12554:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12554:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 449, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12569:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 450, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "12569:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 451, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12583:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 452, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "12583:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12569:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12568:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 455, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "12596:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12568:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12554:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12520:89:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 459, + "nodeType": "ExpressionStatement", + "src": "12520:89:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 460, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "12627:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 461, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 429, + "src": "12646:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 462, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "12646:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12627:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 464, + "nodeType": "ExpressionStatement", + "src": "12627:27:0" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 419, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "12247:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 420, + "name": "_maxIt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "12252:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12247:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12262:10:0", + "subExpression": { + "argumentTypes": null, + "id": 422, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "12263:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12247:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 539, + "initializationExpression": { + "assignments": [416], + "declarations": [ + { + "constant": false, + "id": 416, + "name": "it", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "12234:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 415, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12234:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 418, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12244:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12234:11:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "12274:4:0", + "subExpression": { + "argumentTypes": null, + "id": 425, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "12276:2:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 427, + "nodeType": "ExpressionStatement", + "src": "12274:4:0" + }, + "nodeType": "ForStatement", + "src": "12229:1614:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 540, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "13880:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 541, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "13894:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13880:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 543, + "nodeType": "ExpressionStatement", + "src": "13880:30:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 544, + "name": "sumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 74, + "src": "13920:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 545, + "name": "localSumAcceptedContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "13941:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13920:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "13920:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 548, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "13974:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 549, + "name": "localSumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 412, + "src": "14002:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13974:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 551, + "nodeType": "ExpressionStatement", + "src": "13974:58:0" + } + ] + }, + "documentation": + "@dev Finalize by finding the cut-off bid.\n Since the amount of bids is not bounded, this function may have to be called multiple times.\n The function is O(min(n,_maxIt)) where n is the amount of bids. In total it will perform O(n) computations, possibly in multiple calls.\n Each call only has a O(1) storage write operations.\n @param _maxIt The maximum amount of bids to go through. This value must be set in order to not exceed the gas limit.", + "id": 553, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "finalize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "name": "_maxIt", + "nodeType": "VariableDeclaration", + "scope": 553, + "src": "11771:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11771:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11770:13:0" + }, + "payable": false, + "returnParameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "11791:0:0" + }, + "scope": 959, + "src": "11753:2286:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "14320:662:0", + "statements": [ + { + "assignments": [559], + "declarations": [ + { + "constant": false, + "id": 559, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14330:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 558, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "14330:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 563, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 560, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "14348:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 562, + "indexExpression": { + "argumentTypes": null, + "id": 561, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "14353:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14348:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14330:30:0" + }, + { + "assignments": [565], + "declarations": [ + { + "constant": false, + "id": 565, + "name": "cutOffBid", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14370:21:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 564, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "14370:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 569, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 566, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "14394:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 568, + "indexExpression": { + "argumentTypes": null, + "id": 567, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "14399:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14394:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14370:41:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 571, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "14429:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "14421:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14421:18:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 573, + "nodeType": "ExpressionStatement", + "src": "14421:18:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14457:13:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 575, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14458:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 576, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "14458:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "14449:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14449:22:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 579, + "nodeType": "ExpressionStatement", + "src": "14449:22:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 580, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14482:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "14482:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14495:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14482:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 585, + "nodeType": "ExpressionStatement", + "src": "14482:17:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 586, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14513:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14513:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 588, + "name": "cutOffBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "14526:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 589, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14526:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14513:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 591, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14547:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 592, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14547:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 593, + "name": "cutOffBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "14561:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 594, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "14561:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14547:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 596, + "name": "_bidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "14581:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 597, + "name": "cutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 72, + "src": "14591:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14581:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14547:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 600, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14546:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14513:90:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 631, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14963:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14963:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 626, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14938:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 629, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "14938:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14938:24:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14938:37:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 634, + "nodeType": "ExpressionStatement", + "src": "14938:37:0" + }, + "id": 635, + "nodeType": "IfStatement", + "src": "14509:466:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 605, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14671:3:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 606, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 33, + "src": "14671:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 607, + "name": "tokensForSale", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 62, + "src": "14689:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 608, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14706:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 609, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14706:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 610, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14721:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "14721:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 612, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "14735:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 613, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "14735:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14721:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 615, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14720:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 616, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "14748:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14720:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14706:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 619, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14705:57:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14689:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 621, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14688:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 622, + "name": "sumAcceptedVirtualContrib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "14766:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14688:103:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 602, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 60, + "src": "14656:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$1002", + "typeString": "contract ERC20" + } + }, + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1025, + "src": "14656:14:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": + "function (address,uint256) external returns (bool)" + } + }, + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14656:136:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 625, + "nodeType": "ExpressionStatement", + "src": "14656:136:0" + } + } + ] + }, + "documentation": + "@dev Redeem a bid. If the bid is accepted, send the tokens, otherwise refund the ETH.\n Note that anyone can call this function, not only the party which made the bid.\n @param _bidID ID of the bid to withdraw.", + "id": 637, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "redeem", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 556, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "name": "_bidID", + "nodeType": "VariableDeclaration", + "scope": 637, + "src": "14300:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14300:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14299:13:0" + }, + "payable": false, + "returnParameters": { + "id": 557, + "nodeType": "ParameterList", + "parameters": [], + "src": "14320:0:0" + }, + "scope": 959, + "src": "14284:698:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 703, + "nodeType": "Block", + "src": "15211:632:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15225:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15225:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15238:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15225:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 644, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "15243:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 645, + "name": "startTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 52, + "src": "15250:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15243:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15225:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 648, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "15263:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 649, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "15269:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15263:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15225:51:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15394:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15394:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15407:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15394:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "id": 661, + "name": "finalized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 69, + "src": "15412:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15394:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 701, + "nodeType": "IfStatement", + "src": "15390:446:0", + "trueBody": { + "body": { + "condition": { + "argumentTypes": null, + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15600:48:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 677, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "15601:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 684, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 678, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15606:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 681, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 679, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15624:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15624:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15606:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 683, + "indexExpression": { + "argumentTypes": null, + "id": 682, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15636:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15606:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15601:38:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "redeemed", + "nodeType": "MemberAccess", + "referencedDeclaration": 37, + "src": "15601:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 696, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1051, + "src": "15828:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15828:8:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 698, + "nodeType": "ExpressionStatement", + "src": "15828:8:0" + }, + "id": 699, + "nodeType": "IfStatement", + "src": "15596:240:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 688, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15677:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 691, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 689, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15695:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15695:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15677:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 693, + "indexExpression": { + "argumentTypes": null, + "id": 692, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15707:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15677:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 687, + "name": "redeem", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 637, + "src": "15670:6:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15670:40:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 695, + "nodeType": "ExpressionStatement", + "src": "15670:40:0" + } + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 667, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15533:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 668, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "15537:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 671, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 669, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "15555:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15555:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15537:29:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15537:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15533:40:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 700, + "initializationExpression": { + "assignments": [664], + "declarations": [ + { + "constant": false, + "id": 664, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 704, + "src": "15521:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 663, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15521:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 666, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15530:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15521:10:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "15575:3:0", + "subExpression": { + "argumentTypes": null, + "id": 674, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 664, + "src": "15577:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 676, + "nodeType": "ExpressionStatement", + "src": "15575:3:0" + }, + "nodeType": "ForStatement", + "src": "15516:320:0" + } + }, + "id": 702, + "nodeType": "IfStatement", + "src": "15221:615:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 653, + "name": "INFINITY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "15360:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 654, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "15370:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 652, + "name": "submitBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "15350:9:0", + "typeDescriptions": { + "typeIdentifier": + "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15350:25:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "15350:25:0" + } + } + ] + }, + "documentation": + "@dev Fallback. Make a bid if ETH are sent. Redeem all the bids of the contributor otherwise.\n This allows users to bid and get their tokens back using only send operations.", + "id": 704, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [], + "src": "15193:2:0" + }, + "payable": true, + "returnParameters": { + "id": 639, + "nodeType": "ParameterList", + "parameters": [], + "src": "15211:0:0" + }, + "scope": 959, + "src": "15184:659:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 766, + "nodeType": "Block", + "src": "16489:759:0", + "statements": [ + { + "assignments": [714], + "declarations": [ + { + "constant": false, + "id": 714, + "name": "next", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16499:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 713, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16499:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 716, + "initialValue": { + "argumentTypes": null, + "id": 715, + "name": "_nextStart", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "16511:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16499:22:0" + }, + { + "assignments": [], + "declarations": [ + { + "constant": false, + "id": 718, + "name": "found", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16531:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 717, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16531:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 719, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "16531:10:0" + }, + { + "body": { + "id": 762, + "nodeType": "Block", + "src": "16566:654:0", + "statements": [ + { + "assignments": [723], + "declarations": [ + { + "constant": false, + "id": 723, + "name": "nextBid", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16623:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 722, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "16623:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 727, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 724, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "16645:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 726, + "indexExpression": { + "argumentTypes": null, + "id": 725, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "16650:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16645:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16623:32:0" + }, + { + "assignments": [729], + "declarations": [ + { + "constant": false, + "id": 729, + "name": "prev", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16669:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 728, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16669:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 732, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 730, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "16681:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 731, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "16681:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16669:24:0" + }, + { + "assignments": [734], + "declarations": [ + { + "constant": false, + "id": 734, + "name": "prevBid", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16707:19:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 733, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "16707:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 738, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 735, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "16729:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 737, + "indexExpression": { + "argumentTypes": null, + "id": 736, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "16734:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16729:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16707:32:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 739, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "16758:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 740, + "name": "prevBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 734, + "src": "16768:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 741, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "16768:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16758:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 747, + "name": "_maxVal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "16873:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 748, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "16884:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "16884:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16873:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "id": 758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 756, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 718, + "src": "17197:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17205:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "17197:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 759, + "nodeType": "ExpressionStatement", + "src": "17197:12:0" + }, + "id": 760, + "nodeType": "IfStatement", + "src": "16869:340:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 751, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "17079:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 752, + "name": "nextBid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 723, + "src": "17086:7:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 753, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "next", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "17086:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17079:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 755, + "nodeType": "ExpressionStatement", + "src": "17079:19:0" + } + }, + "id": 761, + "nodeType": "IfStatement", + "src": "16754:455:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 743, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "16839:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 744, + "name": "prev", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "16846:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16839:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 746, + "nodeType": "ExpressionStatement", + "src": "16839:11:0" + } + } + ] + }, + "condition": { + "argumentTypes": null, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16558:6:0", + "subExpression": { + "argumentTypes": null, + "id": 720, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 718, + "src": "16559:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 763, + "nodeType": "WhileStatement", + "src": "16552:668:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 764, + "name": "next", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 714, + "src": "17237:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 712, + "id": 765, + "nodeType": "Return", + "src": "17230:11:0" + } + ] + }, + "documentation": + "@dev Search for the correct insertion spot of a bid.\n This function is O(n), where n is the amount of bids between the initial search position and the insertion position.\n @param _maxVal The maximum valuation given by the contributor. Or INFINITY if no maximum valuation is given.\n @param _nextStart The bidID of the next bid from the initial position to start the search from.\n @return nextInsert The bidID of the next bid from the position the bid must be inserted at.", + "id": 767, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "search", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 709, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "name": "_maxVal", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16417:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16417:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 708, + "name": "_nextStart", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16431:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 707, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16431:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16416:31:0" + }, + "payable": false, + "returnParameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 711, + "name": "nextInsert", + "nodeType": "VariableDeclaration", + "scope": 767, + "src": "16472:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16472:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16471:17:0" + }, + "scope": 959, + "src": "16401:847:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "17567:366:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 772, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17581:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 773, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "17587:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17581:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 777, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17666:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 778, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17672:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17666:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 782, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "17868:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 783, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17880:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 784, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "17890:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 786, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17879:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17868:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 788, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17867:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 789, + "name": "endTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "17899:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 790, + "name": "endFullBonusTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 54, + "src": "17909:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17899:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 792, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17898:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17867:59:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 771, + "id": 794, + "nodeType": "Return", + "src": "17860:66:0" + }, + "id": 795, + "nodeType": "IfStatement", + "src": "17662:264:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17734:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 771, + "id": 781, + "nodeType": "Return", + "src": "17727:8:0" + } + }, + "id": 796, + "nodeType": "IfStatement", + "src": "17577:349:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 775, + "name": "maxBonus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 64, + "src": "17639:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 771, + "id": 776, + "nodeType": "Return", + "src": "17632:15:0" + } + } + ] + }, + "documentation": + "@dev Return the current bonus. The bonus only changes in 1/BONUS_DIVISOR increments.\n @return b The bonus expressed in 1/BONUS_DIVISOR. Will be normalized by BONUS_DIVISOR. For example for a 20% bonus, _maxBonus must be 0.2 * BONUS_DIVISOR.", + "id": 798, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "bonus", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 768, + "nodeType": "ParameterList", + "parameters": [], + "src": "17532:2:0" + }, + "payable": false, + "returnParameters": { + "id": 771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 770, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "17559:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17559:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17558:8:0" + }, + "scope": 959, + "src": "17518:415:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 830, + "nodeType": "Block", + "src": "18495:159:0", + "statements": [ + { + "body": { + "expression": { + "argumentTypes": null, + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 818, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 803, + "src": "18583:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 819, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "18599:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 825, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 820, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "18604:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 822, + "indexExpression": { + "argumentTypes": null, + "id": 821, + "name": "_contributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "18622:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18604:31:0", + "typeDescriptions": { + "typeIdentifier": + "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 824, + "indexExpression": { + "argumentTypes": null, + "id": 823, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18636:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18604:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18599:40:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "18599:48:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18583:64:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 828, + "nodeType": "ExpressionStatement", + "src": "18583:64:0" + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 809, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18522:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 810, + "name": "contributorBidIDs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 47, + "src": "18526:17:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": + "mapping(address => uint256[] storage ref)" + } + }, + "id": 812, + "indexExpression": { + "argumentTypes": null, + "id": 811, + "name": "_contributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "18544:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18526:31:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18526:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18522:42:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 829, + "initializationExpression": { + "assignments": [806], + "declarations": [ + { + "constant": false, + "id": 806, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18510:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18510:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18519:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "18510:10:0" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "18566:3:0", + "subExpression": { + "argumentTypes": null, + "id": 815, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "18568:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 817, + "nodeType": "ExpressionStatement", + "src": "18566:3:0" + }, + "nodeType": "ForStatement", + "src": "18505:142:0" + } + ] + }, + "documentation": + "@dev Get the total contribution of an address.\n This can be used for a KYC threshold.\n This function is O(n) where n is the amount of bids made by the contributor.\n This means that the contributor can make totalContrib(contributor) revert due to an out of gas error on purpose.\n @param _contributor The contributor whose contribution will be returned.\n @return contribution The total contribution of the contributor.", + "id": 831, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "totalContrib", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "name": "_contributor", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18429:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18429:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18428:22:0" + }, + "payable": false, + "returnParameters": { + "id": 804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 803, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 831, + "src": "18476:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 802, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18476:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18475:19:0" + }, + "scope": 959, + "src": "18407:247:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "18997:1219:0", + "statements": [ + { + "assignments": [841], + "declarations": [ + { + "constant": false, + "id": 841, + "name": "capped", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19007:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 840, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19007:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 843, + "initialValue": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19021:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19007:19:0" + }, + { + "assignments": [845], + "declarations": [ + { + "constant": false, + "id": 845, + "name": "localCutOffBidID", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19036:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 844, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19036:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 850, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 846, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "19060:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 848, + "indexExpression": { + "argumentTypes": null, + "id": 847, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "19065:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19060:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "id": 849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "19060:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19036:39:0" + }, + { + "body": { + "id": 947, + "nodeType": "Block", + "src": "19149:1001:0", + "statements": [ + { + "assignments": [855], + "declarations": [ + { + "constant": false, + "id": 855, + "name": "bid", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19163:15:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + }, + "typeName": { + "contractScope": null, + "id": 854, + "name": "Bid", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 38, + "src": "19163:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 859, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 856, + "name": "bids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "19181:4:0", + "typeDescriptions": { + "typeIdentifier": + "t_mapping$_t_uint256_$_t_struct$_Bid_$38_storage_$", + "typeString": + "mapping(uint256 => struct IICO.Bid storage ref)" + } + }, + "id": 858, + "indexExpression": { + "argumentTypes": null, + "id": 857, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "19186:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19181:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bid_$38_storage", + "typeString": "struct IICO.Bid storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19163:40:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19221:7:0", + "subExpression": { + "argumentTypes": null, + "id": 860, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "19222:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 862, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19233:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19233:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 864, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19247:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19233:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 866, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19259:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19259:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19233:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 869, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19232:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "19221:49:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 940, + "nodeType": "Block", + "src": "19513:559:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 896, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19594:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 897, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19607:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 898, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19607:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19594:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 900, + "nodeType": "ExpressionStatement", + "src": "19594:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 901, + "name": "virtualValuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "19636:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 902, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19656:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 903, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19656:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 904, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19671:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 905, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19671:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 906, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19685:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "19685:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19671:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 909, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19670:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 910, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "19698:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19670:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19656:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19636:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 914, + "nodeType": "ExpressionStatement", + "src": "19636:75:0" + }, + { + "condition": { + "argumentTypes": null, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "19733:7:0", + "subExpression": { + "argumentTypes": null, + "id": 915, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "19734:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 939, + "nodeType": "IfStatement", + "src": "19729:329:0", + "trueBody": { + "id": 938, + "nodeType": "Block", + "src": "19742:316:0", + "statements": [ + { + "assignments": [918], + "declarations": [ + { + "constant": false, + "id": 918, + "name": "contribCutOff", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "19764:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 917, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19764:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 929, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 919, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19785:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 920, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19785:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 921, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19799:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19785:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19836:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "19785:52:0", + "trueExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 923, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19811:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 924, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "maxVal", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "19811:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 925, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19824:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19811:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19764:73:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 930, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "19972:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 931, + "name": "contribCutOff", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 918, + "src": "19991:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19972:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 933, + "nodeType": "ExpressionStatement", + "src": "19972:32:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 934, + "name": "capped", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "20026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20035:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "20026:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 937, + "nodeType": "ExpressionStatement", + "src": "20026:13:0" + } + ] + } + } + ] + }, + "id": 941, + "nodeType": "IfStatement", + "src": "19217:855:0", + "trueBody": { + "id": 895, + "nodeType": "Block", + "src": "19272:235:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 871, + "name": "valuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 834, + "src": "19327:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 872, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19340:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 873, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19340:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19327:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 875, + "nodeType": "ExpressionStatement", + "src": "19327:24:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 876, + "name": "virtualValuation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 838, + "src": "19369:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 877, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19389:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19389:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 879, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19404:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 880, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19404:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 881, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19418:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bonus", + "nodeType": "MemberAccess", + "referencedDeclaration": 31, + "src": "19418:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19404:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 884, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19403:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 885, + "name": "BONUS_DIVISOR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "19431:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19403:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19389:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19369:75:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 889, + "nodeType": "ExpressionStatement", + "src": "19369:75:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 890, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "19462:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 891, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19481:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": + "struct IICO.Bid storage pointer" + } + }, + "id": 892, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contrib", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "19481:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19462:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 894, + "nodeType": "ExpressionStatement", + "src": "19462:30:0" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 942, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "20085:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 943, + "name": "bid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "20104:3:0", + "typeDescriptions": { + "typeIdentifier": + "t_struct$_Bid_$38_storage_ptr", + "typeString": "struct IICO.Bid storage pointer" + } + }, + "id": 944, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "prev", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "20104:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20085:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 946, + "nodeType": "ExpressionStatement", + "src": "20085:27:0" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 851, + "name": "localCutOffBidID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "19123:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 852, + "name": "TAIL", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "19143:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19123:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 948, + "nodeType": "WhileStatement", + "src": "19116:1034:0" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 949, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1049, + "src": "20164:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 950, + "name": "withdrawalLockTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "20170:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20164:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 956, + "nodeType": "IfStatement", + "src": "20160:49:0", + "trueBody": { + "expression": { + "argumentTypes": null, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 952, + "name": "amountCommitted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 836, + "src": "20190:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20208:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20190:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 955, + "nodeType": "ExpressionStatement", + "src": "20190:19:0" + } + } + ] + }, + "documentation": + "@dev Get the current valuation and the amount of ETH committed to the sale.\n@return The current valuation and the amount of ETH committed to the sale.", + "id": 958, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "valuationAndAmountCommitted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 832, + "nodeType": "ParameterList", + "parameters": [], + "src": "18912:2:0" + }, + "payable": false, + "returnParameters": { + "id": 839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 834, + "name": "valuation", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18936:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 833, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18936:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 836, + "name": "amountCommitted", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18952:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 835, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18952:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 838, + "name": "virtualValuation", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "18974:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 837, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18974:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18935:61:0" + }, + "scope": 959, + "src": "18876:1340:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 960, + "src": "1999:18219:0" + } + ], + "src": "95:20124:0" + }, + "compiler": { + "name": "solc", + "version": "0.4.21+commit.dfe3193c.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-04-23T14:32:15.773Z" +} diff --git a/src/assets/fonts/metropolis-bold-webfont.woff b/src/assets/fonts/metropolis-bold-webfont.woff new file mode 100755 index 0000000..0199d2e Binary files /dev/null and b/src/assets/fonts/metropolis-bold-webfont.woff differ diff --git a/src/assets/fonts/metropolis-bold-webfont.woff2 b/src/assets/fonts/metropolis-bold-webfont.woff2 new file mode 100755 index 0000000..af6cede Binary files /dev/null and b/src/assets/fonts/metropolis-bold-webfont.woff2 differ diff --git a/src/assets/fonts/metropolis-bolditalic-webfont.woff b/src/assets/fonts/metropolis-bolditalic-webfont.woff new file mode 100755 index 0000000..05d9f63 Binary files /dev/null and b/src/assets/fonts/metropolis-bolditalic-webfont.woff differ diff --git a/src/assets/fonts/metropolis-bolditalic-webfont.woff2 b/src/assets/fonts/metropolis-bolditalic-webfont.woff2 new file mode 100755 index 0000000..949fd0f Binary files /dev/null and b/src/assets/fonts/metropolis-bolditalic-webfont.woff2 differ diff --git a/src/assets/fonts/metropolis-light-webfont.woff b/src/assets/fonts/metropolis-light-webfont.woff new file mode 100755 index 0000000..86bedfb Binary files /dev/null and b/src/assets/fonts/metropolis-light-webfont.woff differ diff --git a/src/assets/fonts/metropolis-light-webfont.woff2 b/src/assets/fonts/metropolis-light-webfont.woff2 new file mode 100755 index 0000000..df46a6c Binary files /dev/null and b/src/assets/fonts/metropolis-light-webfont.woff2 differ diff --git a/src/assets/fonts/metropolis-lightitalic-webfont.woff b/src/assets/fonts/metropolis-lightitalic-webfont.woff new file mode 100755 index 0000000..bf5199d Binary files /dev/null and b/src/assets/fonts/metropolis-lightitalic-webfont.woff differ diff --git a/src/assets/fonts/metropolis-lightitalic-webfont.woff2 b/src/assets/fonts/metropolis-lightitalic-webfont.woff2 new file mode 100755 index 0000000..4bf252f Binary files /dev/null and b/src/assets/fonts/metropolis-lightitalic-webfont.woff2 differ diff --git a/src/assets/fonts/metropolis-regular-webfont.woff b/src/assets/fonts/metropolis-regular-webfont.woff new file mode 100755 index 0000000..8981b9e Binary files /dev/null and b/src/assets/fonts/metropolis-regular-webfont.woff differ diff --git a/src/assets/fonts/metropolis-regular-webfont.woff2 b/src/assets/fonts/metropolis-regular-webfont.woff2 new file mode 100755 index 0000000..8996ec4 Binary files /dev/null and b/src/assets/fonts/metropolis-regular-webfont.woff2 differ diff --git a/src/assets/fonts/metropolis-regularitalic-webfont.woff b/src/assets/fonts/metropolis-regularitalic-webfont.woff new file mode 100755 index 0000000..5e0a8fc Binary files /dev/null and b/src/assets/fonts/metropolis-regularitalic-webfont.woff differ diff --git a/src/assets/fonts/metropolis-regularitalic-webfont.woff2 b/src/assets/fonts/metropolis-regularitalic-webfont.woff2 new file mode 100755 index 0000000..99891eb Binary files /dev/null and b/src/assets/fonts/metropolis-regularitalic-webfont.woff2 differ diff --git a/src/assets/images/logo.png b/src/assets/images/logo.png new file mode 100644 index 0000000..ae3dd34 Binary files /dev/null and b/src/assets/images/logo.png differ diff --git a/src/bootstrap/app.js b/src/bootstrap/app.js index cc7d8b9..0ab702a 100755 --- a/src/bootstrap/app.js +++ b/src/bootstrap/app.js @@ -1,32 +1,49 @@ import React from 'react' import PropTypes from 'prop-types' import { Helmet } from 'react-helmet' -import { Provider } from 'react-redux' +import { Provider, connect } from 'react-redux' import { ConnectedRouter } from 'react-router-redux' import { Switch, Route } from 'react-router-dom' -import Balance from '../containers/balance' +import NavBar from '../components/nav-bar' +import Home from '../containers/home' +import IICO from '../containers/iico' import PageNotFound from '../components/page-not-found' import Initializer from './initializer' +import GlobalComponents from './global-components' import './app.css' +const ConnectedNavBar = connect(state => ({ + accounts: state.wallet.accounts, + balance: state.wallet.balance +}))(({ accounts, balance }) => ( + +)) + const App = ({ store, history, testElement }) => (
- Kleros Dapp + Open IICO +
- + +
{testElement} +
@@ -43,6 +60,7 @@ App.propTypes = { } App.defaultProps = { + // Testing testElement: null } diff --git a/src/bootstrap/app.scss b/src/bootstrap/app.scss index 20f78d6..a74584f 100755 --- a/src/bootstrap/app.scss +++ b/src/bootstrap/app.scss @@ -1,18 +1,21 @@ @import '~normalize.css'; +@import '~react-redux-toastr/lib/css/react-redux-toastr.min.css'; @import '~create-redux-form/animations/carousel.css'; @import '../styles/_colors.scss'; +@import '../styles/_typography.scss'; +@import '../styles/_toastr.scss'; @import '../styles/_form.scss'; // Global Overrides * { box-sizing: border-box !important; - font-family: 'Roboto', sans-serif !important; + font-family: 'Metropolis', sans-serif !important; scroll-behavior: smooth !important; } // Document Root html { - color: $text; + color: $dark2; font-size: 16px; } @@ -29,9 +32,14 @@ body, width: 100%; } +// React Router Root +#router-root { + padding-top: 70px; +} + // Scroll Root #scroll-root { - background: $background; + background: $light2; display: flex; flex-direction: column; overflow: scroll; @@ -42,5 +50,5 @@ body, // Horizontal Rule hr { - border: 1px solid #e6ebed; + border: 1px solid $light3; } diff --git a/src/bootstrap/configure-store.js b/src/bootstrap/configure-store.js index 208c7e4..63e0ba3 100755 --- a/src/bootstrap/configure-store.js +++ b/src/bootstrap/configure-store.js @@ -3,6 +3,7 @@ import { applyMiddleware, compose, createStore } from 'redux' import createSagaMiddleware from 'redux-saga' import { routerMiddleware } from 'react-router-redux' import createHistory from 'history/createBrowserHistory' +import ReactTooltip from 'react-tooltip' import rootReducer from '../reducers' import rootSaga from '../sagas' @@ -55,6 +56,14 @@ export default function configureStore( }) } + // Reattach tooltips if necessary + middleware.push(store => next => action => { + const prevState = store.getState() + const result = next(action) + if (prevState !== store.getState()) ReactTooltip.rebuild() + return result + }) + middleware.push(sagaMiddleware, routerMiddleware(history)) enhancers.unshift(applyMiddleware(...middleware)) store = createStore(rootReducer, initialState, composeEnhancers(...enhancers)) diff --git a/src/bootstrap/dapp-api.js b/src/bootstrap/dapp-api.js index 7fcaa94..2cf24f8 100755 --- a/src/bootstrap/dapp-api.js +++ b/src/bootstrap/dapp-api.js @@ -1,15 +1,17 @@ import Eth from 'ethjs' +import IICO from '../assets/contracts/IICO' + const env = process.env.NODE_ENV === 'production' ? 'PROD' : 'DEV' const ETHEREUM_PROVIDER = process.env[`REACT_APP_${env}_ETHEREUM_PROVIDER`] -const STORE_PROVIDER = process.env[`REACT_APP_${env}_STORE_PROVIDER`] -const ARBITRATOR_ADDRESS = process.env[`REACT_APP_${env}_ARBITRATOR_ADDRESS`] let eth if (process.env.NODE_ENV === 'test') - eth = new Eth(require('ethereumjs-testrpc').provider()) + eth = new Eth(require('ganache-cli').provider()) else if (window.web3 && window.web3.currentProvider) eth = new Eth(window.web3.currentProvider) else eth = new Eth.HttpProvider(ETHEREUM_PROVIDER) -export { eth, ETHEREUM_PROVIDER, STORE_PROVIDER, ARBITRATOR_ADDRESS } +const IICOContractFactory = eth.contract(IICO.abi) // TODO: Put this on NPM or load dynamically? + +export { eth, IICOContractFactory } diff --git a/src/bootstrap/global-components.js b/src/bootstrap/global-components.js new file mode 100644 index 0000000..c0828ed --- /dev/null +++ b/src/bootstrap/global-components.js @@ -0,0 +1,16 @@ +import React from 'react' +import ReactTooltip from 'react-tooltip' +import ReduxToastr from 'react-redux-toastr' + +export default () => ( +
+ + +
+) diff --git a/src/bootstrap/initializer.js b/src/bootstrap/initializer.js index b3a6f11..b9dcf0a 100755 --- a/src/bootstrap/initializer.js +++ b/src/bootstrap/initializer.js @@ -16,6 +16,7 @@ class Initializer extends PureComponent { // Action Dispatchers fetchAccounts: PropTypes.func.isRequired, + fetchBalance: PropTypes.func.isRequired, // State children: PropTypes.oneOfType([ @@ -31,6 +32,13 @@ class Initializer extends PureComponent { fetchAccounts() } + componentDidUpdate(prevProps) { + const { accounts: prevAccounts } = prevProps + const { accounts, fetchBalance } = this.props + if (accounts.data && accounts.data[0] && prevAccounts !== accounts) + fetchBalance() + } + render() { const { isWeb3Loaded } = this.state const { accounts, children } = this.props @@ -38,7 +46,7 @@ class Initializer extends PureComponent { return ( } extraValues={[accounts.data && accounts.data[0]]} @@ -52,5 +60,8 @@ export default connect( state => ({ accounts: state.wallet.accounts }), - { fetchAccounts: walletActions.fetchAccounts } + { + fetchAccounts: walletActions.fetchAccounts, + fetchBalance: walletActions.fetchBalance + } )(Initializer) diff --git a/src/components/__snapshots__/storyshots.test.js.snap b/src/components/__snapshots__/storyshots.test.js.snap index 992bc56..eb4815b 100755 --- a/src/components/__snapshots__/storyshots.test.js.snap +++ b/src/components/__snapshots__/storyshots.test.js.snap @@ -42,7 +42,7 @@ exports[`Storyshots Button disabled 1`] = ` } } > - Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
CLICK ME -
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; @@ -307,7 +346,7 @@ exports[`Storyshots Button primary 1`] = ` } } > - Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
CLICK ME -
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; @@ -572,7 +650,7 @@ exports[`Storyshots Button with lots of text 1`] = ` } } > - Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
CLICK ME, CLICK ME, CLICK ME -
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Identicon with placeholder seed 1`] = ` +exports[`Storyshots Chain Hash default 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- [Identicon] -
+ + + 0x5b5d...a6f4 + +
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Page Not Found default 1`] = ` +exports[`Storyshots Chain Number default 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
-
- 404. This is not the page you are looking for. -
-
+ 0.00 +
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Requires MetaMask needs unlock 1`] = ` +exports[`Storyshots Circle default 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- - This is a decentralized application. In order to use this site please - - - unlock - - MetaMask - -
-
+ className="Circle" + style={ + Object { + "background": "#eee", + "height": 30, + "width": 30, + } + } + />
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Requires MetaMask not found 1`] = ` +exports[`Storyshots Form header 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- - This is a decentralized application. In order to use this site please - - - download - - MetaMask - -
+

+ PLACEHOLDER +

+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Text Input default 1`] = ` +exports[`Storyshots Identicon with placeholder seed 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- -
- EMAIL -
+
+ [Identicon]
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Text Input error 1`] = ` +exports[`Storyshots Nav Bar with a lot of routes, (scrollable) 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
- -
- EMAIL -
- Please enter a valid email. + + Logo + + +
+
+
+ [Identicon] +
+
+
+ 10 ETH +
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Text Input touched 1`] = ` +exports[`Storyshots Nav Bar with routes 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- EMAIL + + Logo + + +
+
+
+ [Identicon] +
+
+
+ 10 ETH +
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; -exports[`Storyshots Text Input valid 1`] = ` +exports[`Storyshots Page Not Found default 1`] = `
- Dapp Front Boilerplate UI-Kit + OpenIICO UI-Kit
-
- EMAIL + 404. This is not the page you are looking for.
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Pie Chart activated 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Requires MetaMask needs unlock 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+
+ + This is a decentralized application. In order to use this site please + + + unlock + + MetaMask + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Requires MetaMask not found 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+
+ + This is a decentralized application. In order to use this site please + + + download + + MetaMask + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Slider default 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+
+
+
+

+ Jan 1st, 2018 +

+

+ Today +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Stat Block default 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+

+ Label + : +

+

+ 300 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Stat Block with no label 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+

+ 300 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Stat Row default 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+
+
+

+ Label 1 + : +

+

+ 300 +

+
+
+

+ Label 2 + : +

+

+ 300 +

+
+
+

+ Label 3 + : +

+

+ 300 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Stat Row with box shadow 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+
+
+

+ Label 1 + : +

+

+ 300 +

+
+
+

+ Label 2 + : +

+

+ 300 +

+
+
+

+ Label 3 + : +

+

+ 300 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Text Input default 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ +
+ EMAIL +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Text Input error 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ +
+ EMAIL +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Text Input touched 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ +
+ EMAIL +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Text Input valid 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ +
+ EMAIL +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast confirm 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast error 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast info 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast message 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast success 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Toast warning 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + TOAST + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Typography headings 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+

+ Heading 1 +

+

+ Heading 2 +

+

+ Heading 3 +

+

+ Heading 4 +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Typography paragraphs 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque sapien nunc, eleifend et sem nec, iaculis tincidunt felis. +

+

+ Duis sed eros ut lacus maximus sodales id ut nibh. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Phasellus accumsan convallis laoreet. +

+

+ Duis et mauris vestibulum, auctor lacus porttitor, pellentesque arcu. Sed scelerisque dolor in orci luctus semper. Mauris turpis magna, congue vitae sollicitudin vel, pretium nec arcu. +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
+
+`; + +exports[`Storyshots Typography small 1`] = ` +
+
+
+

+ OpenIICO UI-Kit +

+
+
+
+
+
+ + small + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+ + +
`; diff --git a/src/components/button/button.scss b/src/components/button/button.scss index 1e63a01..5acdbf3 100755 --- a/src/components/button/button.scss +++ b/src/components/button/button.scss @@ -3,17 +3,13 @@ /* @define Button */ .Button { // stylelint-disable-next-line declaration-colon-newline-after - background: linear-gradient( - 0deg, - $buttonGradientStart 0%, - $buttonGradientEnd 100% - ); - border-radius: 4px; - box-shadow: 0 1px 0 0 $buttonBoxShadow; + background: $primary; + border-radius: 5px; + box-shadow: 0 2px 0 0 $primary; cursor: pointer; - height: 50px; + height: 60px; min-width: 200px; - padding: 0 20px; + padding: 0 18px; text-align: center; &.is-disabled { @@ -23,8 +19,8 @@ } &-label { - color: $buttonText; - line-height: 50px; - margin: 0; + color: $light; + font-size: 20px; + line-height: 60px; } } diff --git a/src/components/button/index.js b/src/components/button/index.js index fc4ed04..50aa027 100755 --- a/src/components/button/index.js +++ b/src/components/button/index.js @@ -12,11 +12,11 @@ const Button = ({ ...rest }) => (
-
{children}
+ {children}
) diff --git a/src/components/chain-hash/index.js b/src/components/chain-hash/index.js new file mode 100644 index 0000000..7acb6d8 --- /dev/null +++ b/src/components/chain-hash/index.js @@ -0,0 +1,21 @@ +import React from 'react' +import PropTypes from 'prop-types' + +const ChainHash = ({ children }) => ( + + + {children.slice(0, 6) + '...' + children.slice(children.length - 4)} + + +) + +ChainHash.propTypes = { + // State + children: PropTypes.string.isRequired +} + +export default ChainHash diff --git a/src/components/chain-number/chain-number.scss b/src/components/chain-number/chain-number.scss new file mode 100644 index 0000000..18b6ad8 --- /dev/null +++ b/src/components/chain-number/chain-number.scss @@ -0,0 +1,6 @@ +@import '../../styles/_colors.scss'; + +/* @define ChainNumber */ +.ChainNumber { + color: $info; +} diff --git a/src/components/chain-number/index.js b/src/components/chain-number/index.js new file mode 100644 index 0000000..538cc2d --- /dev/null +++ b/src/components/chain-number/index.js @@ -0,0 +1,17 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import './chain-number.css' + +const ChainNumber = ({ children }) => ( + + {children.toFixed(2)} + +) + +ChainNumber.propTypes = { + // State + children: PropTypes.number.isRequired +} + +export default ChainNumber diff --git a/src/components/circle/circle.scss b/src/components/circle/circle.scss new file mode 100644 index 0000000..a96a669 --- /dev/null +++ b/src/components/circle/circle.scss @@ -0,0 +1,4 @@ +/* @define Circle */ +.Circle { + border-radius: 50%; +} diff --git a/src/components/circle/index.js b/src/components/circle/index.js new file mode 100644 index 0000000..15a9bae --- /dev/null +++ b/src/components/circle/index.js @@ -0,0 +1,19 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import './circle.css' + +const Circle = ({ size, color }) => ( +
+) + +Circle.propTypes = { + // State + size: PropTypes.number.isRequired, + color: PropTypes.string.isRequired +} + +export default Circle diff --git a/src/components/form-header/form-header.scss b/src/components/form-header/form-header.scss new file mode 100644 index 0000000..9280265 --- /dev/null +++ b/src/components/form-header/form-header.scss @@ -0,0 +1,9 @@ +@import '../../styles/_colors.scss'; + +/* @define FormHeader */ +.FormHeader { + border-bottom: 1px solid $dark3; + margin: 0 -30px 29px; + padding: 28px 30px; + width: calc(100% + 60px); +} diff --git a/src/components/form-header/index.js b/src/components/form-header/index.js new file mode 100644 index 0000000..203d2ca --- /dev/null +++ b/src/components/form-header/index.js @@ -0,0 +1,17 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import './form-header.css' + +const FormHeader = ({ title }) => ( +
+

{title}

+
+) + +FormHeader.propTypes = { + // State + title: PropTypes.string.isRequired +} + +export default FormHeader diff --git a/src/components/nav-bar/index.js b/src/components/nav-bar/index.js new file mode 100644 index 0000000..3b6b0bd --- /dev/null +++ b/src/components/nav-bar/index.js @@ -0,0 +1,65 @@ +import React from 'react' +import PropTypes from 'prop-types' +import { NavLink } from 'react-router-dom' +import { RenderIf } from 'lessdux' + +import * as walletSelectors from '../../reducers/wallet' +import Identicon from '../../components/identicon' +import logo from '../../assets/images/logo.png' + +import './nav-bar.css' + +const NavBar = ({ accounts, balance, routes }) => ( +
+ + Logo + +
+ {routes.map(r => ( + + {r.name} + + ))} +
+
+
+ } + failedLoading="..." + /> +
+
+ +
+
+
+) + +NavBar.propTypes = { + // Redux State + accounts: walletSelectors.accountsShape.isRequired, + balance: walletSelectors.balanceShape.isRequired, + + // State + routes: PropTypes.arrayOf( + PropTypes.shape({ + name: PropTypes.string.isRequired, + to: PropTypes.string.isRequired + }).isRequired + ).isRequired +} + +export default NavBar diff --git a/src/components/nav-bar/nav-bar.scss b/src/components/nav-bar/nav-bar.scss new file mode 100644 index 0000000..81a7fa2 --- /dev/null +++ b/src/components/nav-bar/nav-bar.scss @@ -0,0 +1,57 @@ +@import '../../styles/_colors.scss'; + +/* @define NavBar */ +.NavBar { + align-items: center; + background: $light2; + border-bottom: 1px solid transparentize($dark4, 0.8); + display: flex; + height: 70px; + padding: 0 8%; + position: absolute; + top: 0; + width: 100%; + + &-logo { + height: 40px; + width: 40px; + } + + &-tabs { + align-items: center; + display: flex; + height: 100%; + margin: 0 50px 0 25px; + overflow-x: scroll; + text-overflow: ellipsis; + white-space: nowrap; + + &-tab { + color: $dark; + font-size: 15px; + font-weight: 300; + padding: 0 25px; + + &:hover, + &.is-active { + color: $dark3; + } + } + } + + &-buttons { + align-items: center; + color: $dark; + display: flex; + margin-left: auto; + + &-button { + border-radius: 18px; + cursor: pointer; + height: 36px; + margin-right: 20px; + overflow: hidden; + width: 36px; + } + } +} diff --git a/src/components/pie-chart/index.js b/src/components/pie-chart/index.js new file mode 100644 index 0000000..454cf3d --- /dev/null +++ b/src/components/pie-chart/index.js @@ -0,0 +1,35 @@ +import React from 'react' +import PropTypes from 'prop-types' +import ReactMinimalPieChart from 'react-minimal-pie-chart' + +import './pie-chart.css' + +const PieChart = ({ slice, total, size }) => ( + +) + +PieChart.propTypes = { + // State + slice: PropTypes.number.isRequired, + total: PropTypes.number.isRequired, + size: PropTypes.number.isRequired +} + +export default PieChart diff --git a/src/components/pie-chart/pie-chart.scss b/src/components/pie-chart/pie-chart.scss new file mode 100644 index 0000000..ff31000 --- /dev/null +++ b/src/components/pie-chart/pie-chart.scss @@ -0,0 +1,4 @@ +/* @define PieChart */ +.PieChart { + margin: auto; +} diff --git a/src/components/requires-meta-mask/index.js b/src/components/requires-meta-mask/index.js index 1d18c05..8d3d4db 100755 --- a/src/components/requires-meta-mask/index.js +++ b/src/components/requires-meta-mask/index.js @@ -21,10 +21,12 @@ const RequiresMetaMask = ({ needsUnlock }) => ( ) RequiresMetaMask.propTypes = { + // State needsUnlock: PropTypes.bool } RequiresMetaMask.defaultProps = { + // State needsUnlock: false } diff --git a/src/components/slider/index.js b/src/components/slider/index.js new file mode 100644 index 0000000..ebbd9cf --- /dev/null +++ b/src/components/slider/index.js @@ -0,0 +1,74 @@ +import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' + +import './slider.css' + +class Slider extends PureComponent { + static propTypes = { + // State + startLabel: PropTypes.string.isRequired, + endLabel: PropTypes.string.isRequired, + initialPercent: PropTypes.number.isRequired, + + // Handlers + calcValue: PropTypes.func.isRequired + } + + state = { + left: 0, + value: null + } + + barRef = null + + getBarRef = ref => { + const { initialPercent, calcValue } = this.props + + this.barRef = ref + + /* istanbul ignore if */ + if (this.barRef && process.env.NODE_ENV !== 'test') + this.setState({ + left: this.barRef.getBoundingClientRect().width * initialPercent, + value: calcValue(initialPercent) + }) + } + + handleBarMouseMove = event => { + const { calcValue } = this.props + + const boundingClientRect = this.barRef.getBoundingClientRect() + const left = event.pageX - boundingClientRect.left + const percent = left / boundingClientRect.width + this.setState({ + left, + value: calcValue(percent) + }) + } + + render() { + const { startLabel, endLabel } = this.props + const { left, value } = this.state + return ( +
+
+
+ {value && ( +
+

{value}

+
+ )} +
+

{startLabel}

+

{endLabel}

+
+
+ ) + } +} + +export default Slider diff --git a/src/components/slider/slider.scss b/src/components/slider/slider.scss new file mode 100644 index 0000000..6e32e57 --- /dev/null +++ b/src/components/slider/slider.scss @@ -0,0 +1,35 @@ +@import '../../styles/_colors.scss'; + +/* @define Slider */ +.Slider { + padding-top: 5px; + position: relative; + + &-bar { + background: $light2; + height: 15px; + } + + &-thumb { + background: $primary; + height: 25px; + left: 0; + position: absolute; + top: 0; + transform: translateX(-50%); + width: 5px; + } + + &-value { + left: 0; + padding: 5px; + position: absolute; + top: -27px; + transform: translateX(-50%); + } + + &-labels { + display: flex; + justify-content: space-between; + } +} diff --git a/src/components/stat-block/index.js b/src/components/stat-block/index.js new file mode 100644 index 0000000..142f00e --- /dev/null +++ b/src/components/stat-block/index.js @@ -0,0 +1,45 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import './stat-block.css' + +const StatBlock = ({ label, value, noBackground, noFlex, flexBasis }) => ( +
+ {label &&

{label}:

} +

+ {value} +

+
+) + +StatBlock.propTypes = { + // State + label: PropTypes.string, + value: PropTypes.node.isRequired, + + // Modifiers + noBackground: PropTypes.bool, + noFlex: PropTypes.bool, + flexBasis: PropTypes.number +} + +StatBlock.defaultProps = { + // State + label: null, + + // Modifiers + noBackground: false, + noFlex: false, + flexBasis: null +} + +export default StatBlock diff --git a/src/components/stat-block/stat-block.scss b/src/components/stat-block/stat-block.scss new file mode 100644 index 0000000..f9adb03 --- /dev/null +++ b/src/components/stat-block/stat-block.scss @@ -0,0 +1,26 @@ +@import '../../styles/_colors.scss'; + +/* @define StatBlock */ +.StatBlock { + display: flex; + flex: 1; + flex-direction: column; + justify-content: flex-end; + margin: 10px; + + &--withNoLabel { + background: $light2; + border-radius: 5px; + padding: 21px 47px; + } + + &--noFlex { + flex: initial; + } + + &-value { + &--withNoLabel { + margin: 0; + } + } +} diff --git a/src/components/stat-row/index.js b/src/components/stat-row/index.js new file mode 100644 index 0000000..ebaa921 --- /dev/null +++ b/src/components/stat-row/index.js @@ -0,0 +1,25 @@ +import React from 'react' +import PropTypes from 'prop-types' + +import './stat-row.css' + +const StatRow = ({ children, withBoxShadow }) => ( +
+
{children}
+
+) + +StatRow.propTypes = { + // State + children: PropTypes.arrayOf(PropTypes.node.isRequired).isRequired, + + // Modifiers + withBoxShadow: PropTypes.bool +} + +StatRow.defaultProps = { + // Modifiers + withBoxShadow: false +} + +export default StatRow diff --git a/src/components/stat-row/stat-row.scss b/src/components/stat-row/stat-row.scss new file mode 100644 index 0000000..5ba536d --- /dev/null +++ b/src/components/stat-row/stat-row.scss @@ -0,0 +1,26 @@ +@import '../../styles/_colors.scss'; + +/* @define StatRow */ +.StatRow { + border-bottom: 2px solid $light3; + padding: 25.5px 0 0 0; + width: 100%; + + &--withBoxShadow { + background: $light; + border: none; + /* stylelint-disable declaration-colon-newline-after, value-list-comma-newline-after */ + box-shadow: 0 0 6px 0 rgba(71, 82, 93, 0.09), + 0 0 1px 0 rgba(77, 78, 90, 0.08), 0 1px 0 0 rgba(71, 82, 93, 0.09); + /* stylelint-enable */ + padding: 25.5px 41.5px; + } + + &-blocks { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: center; + margin: -10px; + } +} diff --git a/src/components/text-input/index.js b/src/components/text-input/index.js index de2ff4d..f380530 100755 --- a/src/components/text-input/index.js +++ b/src/components/text-input/index.js @@ -4,32 +4,36 @@ import PropTypes from 'prop-types' import './text-input.css' const TextInput = ({ - input: { value, onChange }, + input: { value, onBlur, onChange }, meta: { touched, valid, error }, placeholder, + type, className }) => (
{placeholder && (
{placeholder}
)} - {error &&
{error}
} + {touched && error &&
{error}
}
) @@ -37,6 +41,7 @@ TextInput.propTypes = { // Redux Form input: PropTypes.shape({ value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, + onBlur: PropTypes.func.isRequired, onChange: PropTypes.func.isRequired }).isRequired, meta: PropTypes.shape({ @@ -50,6 +55,7 @@ TextInput.propTypes = { .isRequired, // Modifiers + type: PropTypes.string, className: PropTypes.string } @@ -58,6 +64,7 @@ TextInput.defaultProps = { meta: {}, // Modifiers + type: 'text', className: '' } diff --git a/src/components/text-input/text-input.scss b/src/components/text-input/text-input.scss index 3d2d084..25f9d7f 100755 --- a/src/components/text-input/text-input.scss +++ b/src/components/text-input/text-input.scss @@ -42,16 +42,17 @@ &.is-touched { font-size: 8px; line-height: 8px; - top: 5px; + top: 2px; transform: none; } } &-error { - bottom: 0; + bottom: -11.5px; color: $error; font-size: 8px; left: 5px; + pointer-events: none; position: absolute; } } diff --git a/src/constants/date.js b/src/constants/date.js new file mode 100644 index 0000000..4d33d68 --- /dev/null +++ b/src/constants/date.js @@ -0,0 +1,27 @@ +export const MONTHS_ENUM = [ + 'January', + 'February', + 'March', + 'April', + 'May', + 'June', + 'July', + 'August', + 'September', + 'October', + 'November', + 'December' +] + +export const ORDINAL_INDICATOR_ENUM = [ + 'th', + 'st', + 'nd', + 'rd', + 'th', + 'th', + 'th', + 'th', + 'th', + 'th' +] diff --git a/src/containers/balance/balance.scss b/src/containers/balance/balance.scss deleted file mode 100755 index dd59123..0000000 --- a/src/containers/balance/balance.scss +++ /dev/null @@ -1,17 +0,0 @@ -/* @define Balance */ -.Balance { - background: #273142; - height: 100%; - - &-message { - color: white; - font-size: 40px; - padding-top: 10%; - text-align: center; - - &-link { - color: #999; - text-decoration: none; - } - } -} diff --git a/src/containers/balance/balance.test.js b/src/containers/balance/balance.test.js deleted file mode 100755 index 5f6b338..0000000 --- a/src/containers/balance/balance.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import setupIntegrationTest, { - flushPromises -} from '../../bootstrap/setup-integration-test' - -import Balance from '.' - -let integration = { - store: null, - history: null, - dispatchSpy: null, - mountApp: null -} - -beforeEach(() => { - integration = setupIntegrationTest({ router: { location: '/' } }) -}) - -it('Renders and loads balance correctly.', async () => { - const app = integration.mountApp() - await flushPromises() - app.update() - expect(app.find(Balance).text()).toBe( - 'Hello CryptoWorldWelcome [Identicon], You have 100 ETH.' - ) -}) diff --git a/src/containers/balance/index.js b/src/containers/balance/index.js deleted file mode 100755 index aafbfb0..0000000 --- a/src/containers/balance/index.js +++ /dev/null @@ -1,71 +0,0 @@ -import React, { PureComponent } from 'react' -import PropTypes from 'prop-types' -import { connect } from 'react-redux' -import { RenderIf } from 'lessdux' - -import * as walletActions from '../../actions/wallet' -import * as walletSelectors from '../../reducers/wallet' -import Identicon from '../../components/identicon' - -import './balance.css' - -class Balance extends PureComponent { - static propTypes = { - balance: walletSelectors.balanceShape.isRequired, - fetchBalance: PropTypes.func.isRequired - } - - componentDidMount() { - const { fetchBalance } = this.props - fetchBalance() - } - - render() { - const { balance } = this.props - - return ( -
-
- Hello CryptoWorld -
-
-
-
- - Welcome , You have{' '} - {balance.data.toString()} ETH. - - ) - } - failedLoading={ - - There was an error fetching your balance. Make sure{' '} - - MetaMask - {' '} - is unlocked and refresh the page. - - } - /> -
-
- ) - } -} - -export default connect( - state => ({ - balance: state.wallet.balance - }), - { - fetchBalance: walletActions.fetchBalance - } -)(Balance) diff --git a/src/containers/home/components/iico-address-form/index.js b/src/containers/home/components/iico-address-form/index.js new file mode 100644 index 0000000..529eb29 --- /dev/null +++ b/src/containers/home/components/iico-address-form/index.js @@ -0,0 +1,17 @@ +import { form } from '../../../../utils/form-generator' +import { required } from '../../../../utils/validation' + +export const { + Form: IICOAddressForm, + isInvalid: getIICOAddressFormIsInvalid, + submit: submitIICOAddressForm +} = form('IICOAddressForm', { + header: { + type: 'header', + props: { title: 'Enter the address of the IICO and hit enter.' } + }, + address: { + type: 'text', + validate: [required] + } +}) diff --git a/src/containers/home/home.scss b/src/containers/home/home.scss new file mode 100755 index 0000000..624a221 --- /dev/null +++ b/src/containers/home/home.scss @@ -0,0 +1,16 @@ +@import '../../styles/_colors.scss'; + +/* @define Home */ +.Home { + height: 100%; + padding: 10px 20px; + + &-result { + margin-top: 20px; + padding-left: 40px; + + &-link { + margin: 5px; + } + } +} diff --git a/src/containers/home/index.js b/src/containers/home/index.js new file mode 100755 index 0000000..698d5a3 --- /dev/null +++ b/src/containers/home/index.js @@ -0,0 +1,91 @@ +import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { Link } from 'react-router-dom' +import { RenderIf } from 'lessdux' + +import * as IICOSelectors from '../../reducers/iico' +import * as IICOActions from '../../actions/iico' +import Identicon from '../../components/identicon' + +import { + IICOAddressForm, + submitIICOAddressForm +} from './components/iico-address-form' + +import './home.css' + +class Home extends PureComponent { + static propTypes = { + // Redux State + IICOData: IICOSelectors.IICODataShape.isRequired, + + // Action Dispatchers + clearIICOData: PropTypes.func.isRequired, + fetchIICOData: PropTypes.func.isRequired, + + // IICOAddressForm + submitIICOAddressForm: PropTypes.func.isRequired + } + + componentDidMount() { + const { clearIICOData } = this.props + clearIICOData() + } + + handleIICOAddressFormSubmit = formData => { + const { fetchIICOData } = this.props + fetchIICOData(formData.address) + } + + handleKeyPress = event => { + if (event.key === 'Enter') { + event.preventDefault() + const { submitIICOAddressForm } = this.props + submitIICOAddressForm() + } + } + + render() { + const { IICOData } = this.props + + return ( +
+ +
+ + +

+ + Go To IICO Page + +

+
+ ) + } + failedLoading={ + IICOData.data !== null && + 'The address or the contract it holds is invalid. Try another one.' + } + /> +
+
+ ) + } +} + +export default connect( + state => ({ + IICOData: state.IICO.IICOData + }), + { + clearIICOData: IICOActions.clearIICOData, + fetchIICOData: IICOActions.fetchIICOData, + submitIICOAddressForm + } +)(Home) diff --git a/src/containers/iico/components/bids/bids.scss b/src/containers/iico/components/bids/bids.scss new file mode 100644 index 0000000..bfbc082 --- /dev/null +++ b/src/containers/iico/components/bids/bids.scss @@ -0,0 +1,16 @@ +/* @define Bids */ +.Bids { + display: flex; + flex-direction: column; + margin-bottom: 55px; + width: 100%; + + &-form-fieldset-fields { + justify-content: space-around; + } + + &-confirmWithdrawal { + padding: 15px; + text-align: center; + } +} diff --git a/src/containers/iico/components/bids/index.js b/src/containers/iico/components/bids/index.js new file mode 100644 index 0000000..cda1bda --- /dev/null +++ b/src/containers/iico/components/bids/index.js @@ -0,0 +1,275 @@ +import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { toastr } from 'react-redux-toastr' +import { SyncLoader } from 'react-spinners' + +import * as IICOSelectors from '../../../../reducers/iico' +import * as IICOActions from '../../../../actions/iico' +import { + SubmitBidForm, + getSubmitBidFormIsInvalid, + submitSubmitBidForm +} from '../submit-bid-form' +import { + FinalizeIICOForm, + getFinalizeIICOFormIsInvalid, + submitFinalizeIICOForm +} from '../finalize-iico-form' +import ChainNumber from '../../../../components/chain-number' +import StatRow from '../../../../components/stat-row' +import StatBlock from '../../../../components/stat-block' +import Button from '../../../../components/button' +import { numberToPercentage } from '../../../../utils/number' + +import './bids.css' + +class Bids extends PureComponent { + static propTypes = { + // Redux State + IICOBid: IICOSelectors.IICOBidShape.isRequired, + + // Action Dispatchers + createIICOBid: PropTypes.func.isRequired, + withdrawIICOBid: PropTypes.func.isRequired, + finalizeIICO: PropTypes.func.isRequired, + redeemIICOBid: PropTypes.func.isRequired, + + // submitBidForm + submitBidFormIsInvalid: PropTypes.bool.isRequired, + submitSubmitBidForm: PropTypes.func.isRequired, + + // finalizeIICOForm + finalizeIICOFormIsInvalid: PropTypes.bool.isRequired, + submitFinalizeIICOForm: PropTypes.func.isRequired, + + // State + address: PropTypes.string.isRequired, + data: IICOSelectors._IICODataShape.isRequired, + bids: IICOSelectors._IICOBidsShape.isRequired + } + + handleSubmitBidFormSubmit = formData => { + const { address, createIICOBid } = this.props + createIICOBid(address, formData.amount, formData.personalCap) + } + + handleWithdrawClick = ({ currentTarget: { id } }) => { + const { address, data, bids, withdrawIICOBid } = this.props + + const now = Date.now() + const endFullBonusTime = data.endFullBonusTime.getTime() + const withdrawalLockTime = data.withdrawalLockTime.getTime() + const bid = bids[id] + + const lockedIn = + now < endFullBonusTime + ? 0 + : bid.contrib * + (1 - + (withdrawalLockTime - now) / + (withdrawalLockTime - endFullBonusTime)) + const newBonus = bid.bonus - bid.bonus / 3 + + toastr.confirm(null, { + okText: 'Yes', + onOk: () => withdrawIICOBid(address, Number(id)), + component: () => ( +
+ Are you sure you wish to withdraw this bid? +
+ {lockedIn} ETH +
+ would remain locked in and your new bonus would be +
+ {numberToPercentage(newBonus)}. +
+ ) + }) + } + + handleFinalizeIICOFormSubmit = formData => { + const { address, finalizeIICO } = this.props + finalizeIICO(address, formData.maxIterations) + } + + handleRedeemClick = ({ currentTarget: { id } }) => { + const { address, redeemIICOBid } = this.props + redeemIICOBid(address, Number(id)) + } + + render() { + const { + IICOBid, + submitBidFormIsInvalid, + submitSubmitBidForm, + finalizeIICOFormIsInvalid, + submitFinalizeIICOForm, + data, + bids + } = this.props + + const now = Date.now() + const hasStarted = now >= data.startTime.getTime() + const hasEnded = now >= data.endTime.getTime() + const canBid = hasStarted && !hasEnded + const canWithdraw = hasStarted && now < data.withdrawalLockTime.getTime() + + return ( +
+

Your Bids

+ {canBid && ( + + + } + /> + + ADD + + } + noFlex + /> + + )} + {!data.finalized && + hasEnded && ( + + + } + /> + + FINALIZE + + } + noFlex + /> + + )} + {IICOBid.creating && ( + + } + /> + } + /> + } + /> + } + /> + } + /> + + )} + {bids.length ? ( + bids + .map((b, index) => { + const tokenPrice = + data.virtualValuation / (data.tokensForSale * (1 + b.bonus)) + + const updating = + IICOBid.updating && + IICOBid.data && + IICOBid.data.contributorBidID === index + + return ( + + {b.contrib}} + /> + + + {b.contrib / tokenPrice}} + /> + {tokenPrice}} + /> + {((canWithdraw && !b.withdrawn) || + (hasEnded && !b.redeemed)) && ( + + {updating ? ( + + ) : canWithdraw ? ( + 'WITHDRAW' + ) : ( + 'REDEEM' + )} + + } + noFlex + /> + )} + + ) + }) + .reverse() + ) : ( +
+
You haven't made any bids.
+
+ )} +
+ ) + } +} + +export default connect( + state => ({ + IICOBid: state.IICO.IICOBid, + submitBidFormIsInvalid: getSubmitBidFormIsInvalid(state), + finalizeIICOFormIsInvalid: getFinalizeIICOFormIsInvalid(state) + }), + { + createIICOBid: IICOActions.createIICOBid, + withdrawIICOBid: IICOActions.withdrawIICOBid, + finalizeIICO: IICOActions.finalizeIICOData, + redeemIICOBid: IICOActions.redeemIICOBid, + submitSubmitBidForm, + submitFinalizeIICOForm + } +)(Bids) diff --git a/src/containers/iico/components/data/data.scss b/src/containers/iico/components/data/data.scss new file mode 100644 index 0000000..fec5e4a --- /dev/null +++ b/src/containers/iico/components/data/data.scss @@ -0,0 +1,15 @@ +/* @define Data */ +.Data { + &-top { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: center; + margin: -16px -16px 8px -16px; + + &-section { + flex: 1; + margin: 16px; + } + } +} diff --git a/src/containers/iico/components/data/index.js b/src/containers/iico/components/data/index.js new file mode 100644 index 0000000..c4c33ac --- /dev/null +++ b/src/containers/iico/components/data/index.js @@ -0,0 +1,132 @@ +import React, { PureComponent } from 'react' + +import * as IICOSelectors from '../../../../reducers/iico' +import StatRow from '../../../../components/stat-row' +import StatBlock from '../../../../components/stat-block' +import ChainHash from '../../../../components/chain-hash' +import ChainNumber from '../../../../components/chain-number' +import PieChart from '../../../../components/pie-chart' +import Slider from '../../../../components/slider' +import { dateToString } from '../../../../utils/date' +import { numberToPercentage } from '../../../../utils/number' + +import './data.css' + +export default class Data extends PureComponent { + static propTypes = { + // State + data: IICOSelectors._IICODataShape.isRequired + } + + calcBonus = percent => { + const { data } = this.props + const startTime = data.startTime.getTime() + const endFullBonusTime = data.endFullBonusTime.getTime() + const endTime = data.endTime.getTime() + const time = startTime + percent * (endTime - startTime) + + let bonus + if (time <= endFullBonusTime) bonus = data.startingBonus + else if (time >= endTime) bonus = 0 + else + bonus = + data.startingBonus * ((endTime - time) / (endTime - endFullBonusTime)) + + return numberToPercentage(bonus) + } + + render() { + const { data } = this.props + + const now = Date.now() + const startTime = data.startTime.getTime() + const endTime = data.endTime.getTime() + + let initialPercent + if (now <= startTime) initialPercent = 0 + else if (now >= endTime) initialPercent = 1 + else initialPercent = (now - startTime) / (endTime - startTime) + + let phase + if (now < startTime) phase = 'Not Started' + else if (now < data.endFullBonusTime.getTime()) phase = 'Full Bonus' + else if (now < data.withdrawalLockTime.getTime()) phase = 'Free Withdrawals' + else if (now < endTime) phase = 'Automatic Withdrawals' + else phase = 'Finished' + + const amountCommitted = + phase === 'Finished' + ? data.valuation + : phase === 'Automatic Withdrawals' ? data.amountCommitted : 0 + + return ( +
+
+
+ + {data.tokenContractAddress}} + /> + + + {data.virtualValuation / + (data.tokensForSale * (1 + data.bonus))} + + } + /> + +
+
+ + + } + noBackground + /> + {data.valuation}} + /> + {amountCommitted}} + /> + +
+
+ + + + + + } + noBackground + flexBasis={390} + /> + +
+ ) + } +} diff --git a/src/containers/iico/components/finalize-iico-form/index.js b/src/containers/iico/components/finalize-iico-form/index.js new file mode 100644 index 0000000..5ac8725 --- /dev/null +++ b/src/containers/iico/components/finalize-iico-form/index.js @@ -0,0 +1,21 @@ +import { form } from '../../../../utils/form-generator' +import { required, number } from '../../../../utils/validation' + +export const { + Form: FinalizeIICOForm, + isInvalid: getFinalizeIICOFormIsInvalid, + submit: submitFinalizeIICOForm +} = form( + 'finalizeIICOForm', + { + maxIterations: { + type: 'text', + validate: [required, number], + props: { type: 'number' } + } + }, + { + touchOnBlur: true, + touchOnChange: true + } +) diff --git a/src/containers/iico/components/submit-bid-form/index.js b/src/containers/iico/components/submit-bid-form/index.js new file mode 100644 index 0000000..fad0462 --- /dev/null +++ b/src/containers/iico/components/submit-bid-form/index.js @@ -0,0 +1,26 @@ +import { form } from '../../../../utils/form-generator' +import { required, number } from '../../../../utils/validation' + +export const { + Form: SubmitBidForm, + isInvalid: getSubmitBidFormIsInvalid, + submit: submitSubmitBidForm +} = form( + 'submitBidForm', + { + amount: { + type: 'text', + validate: [required, number], + props: { type: 'number' } + }, + personalCap: { + type: 'text', + validate: [required, number], + props: { type: 'number' } + } + }, + { + touchOnBlur: true, + touchOnChange: true + } +) diff --git a/src/containers/iico/iico.scss b/src/containers/iico/iico.scss new file mode 100644 index 0000000..25c938b --- /dev/null +++ b/src/containers/iico/iico.scss @@ -0,0 +1,15 @@ +/* @define IICO */ +.IICO { + display: flex; + justify-content: center; + padding: 38px 8%; + + &-data { + margin-bottom: 55px; + } + + &-bids { + display: flex; + justify-content: center; + } +} diff --git a/src/containers/iico/index.js b/src/containers/iico/index.js new file mode 100644 index 0000000..1790700 --- /dev/null +++ b/src/containers/iico/index.js @@ -0,0 +1,101 @@ +import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { RenderIf } from 'lessdux' +import { ScaleLoader, PropagateLoader } from 'react-spinners' + +import * as IICOSelectors from '../../reducers/iico' +import * as IICOActions from '../../actions/iico' + +import Data from './components/data' +import Bids from './components/bids' + +import './iico.css' + +class IICO extends PureComponent { + static propTypes = { + // React Router + match: PropTypes.shape({ + params: PropTypes.shape({ address: PropTypes.string.isRequired }) + .isRequired + }).isRequired, + + // Redux State + IICOData: IICOSelectors.IICODataShape.isRequired, + IICOBids: IICOSelectors.IICOBidsShape.isRequired, + + // Action Dispatchers + fetchIICOData: PropTypes.func.isRequired, + fetchIICOBids: PropTypes.func.isRequired + } + + componentDidMount() { + const { + match: { params: { address } }, + fetchIICOData, + fetchIICOBids + } = this.props + fetchIICOData(address) + fetchIICOBids(address) + } + + render() { + const { match: { params: { address } }, IICOData, IICOBids } = this.props + + return ( +
+ + } + done={ + IICOData.data && ( +
+
+ +
+
+ } + done={ + IICOBids.data && ( + + ) + } + failedLoading="There was an error fetching your bids." + /> +
+
+ ) + } + failedLoading="The address or the contract it holds is invalid. Try another one." + /> + {/* TODO: Render './components/submit-bid-form' and disable submit button if already participated */} + {/* TODO: Render withdraw button if already participated and in first period */} +
+ ) + } +} + +export default connect( + state => ({ + IICOData: state.IICO.IICOData, + IICOBids: state.IICO.IICOBids + }), + { + fetchIICOData: IICOActions.fetchIICOData, + fetchIICOBids: IICOActions.fetchIICOBids + } +)(IICO) diff --git a/src/reducers/iico.js b/src/reducers/iico.js new file mode 100644 index 0000000..e34d750 --- /dev/null +++ b/src/reducers/iico.js @@ -0,0 +1,70 @@ +import PropTypes from 'prop-types' +import createReducer, { createResource } from 'lessdux' + +import * as IICOActions from '../actions/iico' + +// Common Shapes +export const _IICODataShape = PropTypes.shape({ + address: PropTypes.string.isRequired, + + // Token + tokenContractAddress: PropTypes.string.isRequired, + tokensForSale: PropTypes.number.isRequired, + + // Times + startTime: PropTypes.instanceOf(Date).isRequired, + endFullBonusTime: PropTypes.instanceOf(Date).isRequired, + withdrawalLockTime: PropTypes.instanceOf(Date).isRequired, + endTime: PropTypes.instanceOf(Date).isRequired, + + // Sale Data + startingBonus: PropTypes.number.isRequired, + bonus: PropTypes.number.isRequired, + valuation: PropTypes.number.isRequired, + amountCommitted: PropTypes.number.isRequired, + virtualValuation: PropTypes.number.isRequired, + finalized: PropTypes.bool.isRequired +}) +export const _IICOBidShape = PropTypes.shape({ + maxVal: PropTypes.number.isRequired, + contrib: PropTypes.number.isRequired, + bonus: PropTypes.number.isRequired, + contributor: PropTypes.string.isRequired, + withdrawn: PropTypes.bool.isRequired, + redeemed: PropTypes.bool.isRequired +}) +export const _IICOBidsShape = PropTypes.arrayOf(_IICOBidShape.isRequired) + +// Shapes +const { + shape: IICODataShape, + initialState: IICODataInitialState +} = createResource(_IICODataShape, { + withUpdate: true +}) +const { + shape: IICOBidsShape, + initialState: IICOBidsInitialState +} = createResource(_IICOBidsShape) +const { + shape: IICOBidShape, + initialState: IICOBidInitialState +} = createResource(_IICOBidShape, { + withCreate: true, + withUpdate: true +}) +export { IICODataShape, IICOBidsShape, IICOBidShape } + +// Reducer +const initialState = { + IICOData: IICODataInitialState, + IICOBids: IICOBidsInitialState, + IICOBid: IICOBidInitialState +} +export default createReducer(initialState, { + [IICOActions.IICOData.CLEAR]: () => initialState +}) + +// Selectors +export const getIICOBid = (state, contributorBidID) => + state.IICO.IICOBids.data && state.IICO.IICOBids.data[contributorBidID] diff --git a/src/reducers/index.js b/src/reducers/index.js index bd3c769..3774725 100755 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -1,12 +1,16 @@ import { combineReducers } from 'redux' import { routerReducer as router } from 'react-router-redux' +import { reducer as toastr } from 'react-redux-toastr' import { reducer as form } from 'redux-form' import wallet from './wallet' +import IICO from './iico' // Export root reducer export default combineReducers({ router, + toastr, form, - wallet + wallet, + IICO }) diff --git a/src/reducers/wallet.js b/src/reducers/wallet.js index 8d06845..959f5cb 100755 --- a/src/reducers/wallet.js +++ b/src/reducers/wallet.js @@ -5,7 +5,7 @@ import createReducer, { createResource } from 'lessdux' const { shape: accountsShape, initialState: accountsInitialState -} = createResource(PropTypes.arrayOf(PropTypes.string)) +} = createResource(PropTypes.arrayOf(PropTypes.string.isRequired)) const { shape: balanceShape, initialState: balanceInitialState diff --git a/src/sagas/iico.js b/src/sagas/iico.js new file mode 100644 index 0000000..d1fbce8 --- /dev/null +++ b/src/sagas/iico.js @@ -0,0 +1,266 @@ +import Eth from 'ethjs' + +import { takeLatest, select, all, call, put } from 'redux-saga/effects' + +import * as IICOSelectors from '../reducers/iico' +import * as IICOActions from '../actions/iico' +import * as walletSelectors from '../reducers/wallet' +import { IICOContractFactory } from '../bootstrap/dapp-api' +import { lessduxSaga, sendTransaction } from '../utils/saga' +import { action } from '../utils/action' + +// Parsers +const parseBid = b => ({ + maxVal: Number(Eth.fromWei(b.maxVal, 'ether')), + contrib: Number(Eth.fromWei(b.contrib, 'ether')), + bonus: b.bonus.toNumber() / 1e9, + contributor: b.contributor, + withdrawn: b.withdrawn, + redeemed: b.redeemed +}) + +// Helpers +/** + * Fetches an address's bid IDs. + * @param {object} contract - The contract instance object. + * @param {string} account - The account. + * @returns {string[]} - The bid IDs. + */ +function* fetchBidIDs(contract, account) { + const bidIDs = [] + let i = 0 + + while (true) { + const bidID = (yield call( + contract.contributorBidIDs, + account, + i + ))[0].toNumber() + + if (bidID === 0) break + + bidIDs.push(bidID) + i++ + } + + return bidIDs +} + +// Sagas +/** + * Fetches an IICO's data. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object. + * @returns {object} - The IICO's data. + */ +function* fetchIICOData({ payload: { address } }) { + // TODO: Verify contract adheres to IICO standard. + + // Load contract + const contract = IICOContractFactory.at(address) + + const d = yield all({ + // Token + tokenContractAddress: call(contract.token), + tokensForSale: call(contract.tokensForSale), + + // Times + startTime: call(contract.startTime), + endFullBonusTime: call(contract.endFullBonusTime), + withdrawalLockTime: call(contract.withdrawalLockTime), + endTime: call(contract.endTime), + + // Sale Data + startingBonus: call(contract.maxBonus), + bonus: call(contract.bonus), + valuationAndAmountCommitted: call(contract.valuationAndAmountCommitted), + finalized: call(contract.finalized) + }) + + return { + address, + + // Token + tokenContractAddress: d.tokenContractAddress[0], + tokensForSale: d.tokensForSale[0].toNumber(), + + // Times + startTime: new Date(d.startTime[0].toNumber() * 1000), + endFullBonusTime: new Date(d.endFullBonusTime[0].toNumber() * 1000), + withdrawalLockTime: new Date(d.withdrawalLockTime[0].toNumber() * 1000), + endTime: new Date(d.endTime[0].toNumber() * 1000), + + // Sale Data + startingBonus: d.startingBonus[0].toNumber() / 1e9, + bonus: d.bonus[0].toNumber() / 1e9, + valuation: Number(Eth.fromWei(d.valuationAndAmountCommitted[0], 'ether')), + amountCommitted: Number( + Eth.fromWei(d.valuationAndAmountCommitted[1], 'ether') + ), + virtualValuation: Number( + Eth.fromWei(d.valuationAndAmountCommitted[2], 'ether') + ), + finalized: d.finalized[0] + } +} + +/** + * Attempts to finalize an IICO. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object. + * @returns {object} - The IICO's updated data. + */ +function* finalizeIICOData({ payload: { address, maxIterations } }) { + // Load contract + const contract = IICOContractFactory.at(address) + + yield call(contract.finalize, maxIterations, { + from: yield select(walletSelectors.getAccount) + }) + + return yield call(fetchIICOData, { payload: { address } }) +} + +/** + * Fetches the current wallet's IICO bids. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object. + * @returns {object} - The current wallet's IICO bids. + */ +function* fetchIICOBids({ payload: { address } }) { + // Load contract + const contract = IICOContractFactory.at(address) + + // Get bid IDs + const bidIDs = yield call( + fetchBidIDs, + contract, + yield select(walletSelectors.getAccount) + ) + + return (yield all(bidIDs.map(bidID => call(contract.bids, bidID)))).map( + parseBid + ) +} + +/** + * Creates an IICO bid. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object. + * @returns {object} - The `lessdux` collection mod object for updating the list of bids. + */ +function* createIICOBid({ + payload: { address, amount: _amount, personalCap: _personalCap } +}) { + // Load contract + const contract = IICOContractFactory.at(address) + const account = yield select(walletSelectors.getAccount) + + const amount = Eth.toWei(_amount, 'ether') + const personalCap = Eth.toWei(_personalCap, 'ether') + + const nextBidID = (yield call(contract.search, personalCap, 0))[0] + + yield call(sendTransaction, contract.searchAndBid, personalCap, nextBidID, { + from: account, + value: amount + }) + + // Get the ID + const bidIDs = yield call(fetchBidIDs, contract, account) + const lastBidID = bidIDs[bidIDs.length - 1] + + return { + collection: IICOActions.IICOBids.self, + resource: parseBid(yield call(contract.bids, lastBidID)) + } +} + +/** + * Withdraws or redeems an IICO bid. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object. + * @returns {object} - The `lessdux` collection mod object for updating the list of bids. + */ +function* withdrawOrRedeemIICOBid({ + type, + payload: { address, contributorBidID } +}) { + // Set IICO Bid for granular loading indicators + yield put( + action(IICOActions.IICOBid.RECEIVE, { + IICOBid: { + ...(yield select(IICOSelectors.getIICOBid, contributorBidID)), + contributorBidID + } + }) + ) + + // Load contract + const contract = IICOContractFactory.at(address) + const account = yield select(walletSelectors.getAccount) + + // Get the ID + const bidID = (yield call(fetchBidIDs, contract, account))[contributorBidID] + + yield call( + sendTransaction, + contract[type === IICOActions.IICOBid.WITHDRAW ? 'withdraw' : 'redeem'], + bidID, + { from: account } + ) + + return { + collection: IICOActions.IICOBids.self, + resource: parseBid(yield call(contract.bids, bidID)), + find: contributorBidID + } +} + +/** + * The root of the IICO saga. + */ +export default function* IICOSaga() { + // IICO Data + yield takeLatest( + IICOActions.IICOData.FETCH, + lessduxSaga, + 'fetch', + IICOActions.IICOData, + fetchIICOData + ) + yield takeLatest( + IICOActions.IICOData.FINALIZE, + lessduxSaga, + 'update', + IICOActions.IICOData, + finalizeIICOData + ) + + // IICO Bids + yield takeLatest( + IICOActions.IICOBids.FETCH, + lessduxSaga, + 'fetch', + IICOActions.IICOBids, + fetchIICOBids + ) + + // IICO Bid + yield takeLatest( + IICOActions.IICOBid.CREATE, + lessduxSaga, + 'create', + IICOActions.IICOBid, + createIICOBid + ) + yield takeLatest( + IICOActions.IICOBid.WITHDRAW, + lessduxSaga, + 'update', + IICOActions.IICOBid, + withdrawOrRedeemIICOBid + ) + yield takeLatest( + IICOActions.IICOBid.REDEEM, + lessduxSaga, + 'update', + IICOActions.IICOBid, + withdrawOrRedeemIICOBid + ) +} diff --git a/src/sagas/index.js b/src/sagas/index.js index bc1677b..a474556 100755 --- a/src/sagas/index.js +++ b/src/sagas/index.js @@ -1,8 +1,10 @@ import { delay } from 'redux-saga' +import { toastr } from 'react-redux-toastr' import { spawn, call, all } from 'redux-saga/effects' import walletSaga from './wallet' +import IICOSaga from './iico' /** * Makes a saga restart after an uncaught error. @@ -25,13 +27,15 @@ export function makeRestartable(saga) { 'Saga error, the saga will be restarted after 3 seconds.', err ) + + toastr.error('', err.message.slice(0, 100)) yield call(delay, 3000) } } } } -const rootSagas = [walletSaga].map(makeRestartable) +const rootSagas = [walletSaga, IICOSaga].map(makeRestartable) /** * The root saga. diff --git a/src/sagas/wallet.js b/src/sagas/wallet.js index d2464cd..0d55978 100755 --- a/src/sagas/wallet.js +++ b/src/sagas/wallet.js @@ -1,43 +1,35 @@ -import unit from 'ethjs-unit' +import Eth from 'ethjs' -import { takeLatest, select, call, put } from 'redux-saga/effects' +import { takeLatest, select, call } from 'redux-saga/effects' import * as walletSelectors from '../reducers/wallet' import * as walletActions from '../actions/wallet' import { eth } from '../bootstrap/dapp-api' -import { action, errorAction } from '../utils/action' +import { lessduxSaga } from '../utils/saga' import * as errorConstants from '../constants/error' /** * Fetches the current wallet's accounts. + * @returns {object[]} - The accounts. */ export function* fetchAccounts() { - try { - const accounts = yield call(eth.accounts) - if (!accounts[0]) throw new Error(errorConstants.ETH_NO_ACCOUNTS) - - yield put(action(walletActions.accounts.RECEIVE, { accounts })) - } catch (err) { - yield put(errorAction(walletActions.accounts.FAIL_FETCH, err)) - } + const accounts = yield call(eth.accounts) + if (!accounts[0]) throw new Error(errorConstants.ETH_NO_ACCOUNTS) + + return accounts } /** * Fetches the current wallet's ethereum balance. + * @returns {number} - The balance. */ export function* fetchBalance() { - try { - const account = yield select(walletSelectors.getAccount) - const balance = yield call(eth.getBalance, account) - - yield put( - action(walletActions.balance.RECEIVE, { - balance: unit.fromWei(balance, 'ether') - }) - ) - } catch (err) { - yield put(errorAction(walletActions.balance.FAIL_FETCH, err)) - } + const balance = yield call( + eth.getBalance, + yield select(walletSelectors.getAccount) + ) + + return Eth.fromWei(balance, 'ether') } /** @@ -45,8 +37,20 @@ export function* fetchBalance() { */ export default function* walletSaga() { // Accounts - yield takeLatest(walletActions.accounts.FETCH, fetchAccounts) + yield takeLatest( + walletActions.accounts.FETCH, + lessduxSaga, + 'fetch', + walletActions.accounts, + fetchAccounts + ) // Balance - yield takeLatest(walletActions.balance.FETCH, fetchBalance) + yield takeLatest( + walletActions.balance.FETCH, + lessduxSaga, + 'fetch', + walletActions.balance, + fetchBalance + ) } diff --git a/src/sagas/wallet.test.js b/src/sagas/wallet.test.js deleted file mode 100755 index 681ef32..0000000 --- a/src/sagas/wallet.test.js +++ /dev/null @@ -1,39 +0,0 @@ -import { call, put, select } from 'redux-saga/effects' - -import * as walletSelectors from '../reducers/wallet' -import * as walletActions from '../actions/wallet' -import { eth } from '../bootstrap/dapp-api' -import { errorAction } from '../utils/action' -import * as errorConstants from '../constants/error' -import * as testingConstants from '../constants/testing' - -import { fetchAccounts, fetchBalance } from './wallet' - -it('Handles cases when there are no accounts.', () => { - const gen = fetchAccounts() - expect(gen.next().value).toEqual(call(eth.accounts)) - expect(gen.next([]).value).toEqual( - put( - errorAction( - walletActions.accounts.FAIL_FETCH, - new Error(errorConstants.ETH_NO_ACCOUNTS) - ) - ) - ) -}) - -it('Handles invalid balances.', () => { - const gen = fetchBalance() - expect(gen.next().value).toEqual(select(walletSelectors.getAccount)) - expect(gen.next(testingConstants.TEST_ACCOUNT).value).toEqual( - call(eth.getBalance, testingConstants.TEST_ACCOUNT) - ) - expect(gen.next(null).value).toEqual( - put( - errorAction( - walletActions.balance.FAIL_FETCH, - new TypeError("Cannot read property 'toString' of null") - ) - ) - ) -}) diff --git a/src/styles/_colors.scss b/src/styles/_colors.scss index 5c23ae2..ae8d62b 100755 --- a/src/styles/_colors.scss +++ b/src/styles/_colors.scss @@ -1,10 +1,12 @@ // Bases $light: #fff; -$light2: #e6eaee; -$light3: rgba(216, 216, 216, 0.38); -$dark: #3d464d; -$dark2: #47525d; -$dark3: #a3a2a5; +$light2: #f2f5fa; +$light3: #edede6; +$dark: #000; +$dark2: #1a1b23; +$dark3: #47525d; +$dark4: #9b9b9b; +$primary: #012c6b; // States $disabled: #77909d; @@ -12,19 +14,3 @@ $info: #337ab7; $warning: #f0ad4e; $success: #8dc572; $error: #be6464; - -// Typography -$heading: $dark; -$text: $dark2; - -// Backgrounds -$background: #ededed; -$darkBackground: $dark; - -/* Specifics */ - -// Button -$buttonGradientStart: #0059ab; -$buttonGradientEnd: #0468c4; -$buttonBoxShadow: #024e95; -$buttonText: $light; diff --git a/src/styles/_toastr.scss b/src/styles/_toastr.scss new file mode 100644 index 0000000..7027261 --- /dev/null +++ b/src/styles/_toastr.scss @@ -0,0 +1,19 @@ +.redux-toastr { + .top-center { + margin-left: 0; + padding: 0; + transform: translateX(-50%); + width: 70%; + } + + .toastr { + $types: info warning success error; + $colors: $info $warning $success $error; + + @for $i from 1 through length($types) { + &.rrt-#{nth($types, $i)} { + background-color: nth($colors, $i); + } + } + } +} diff --git a/src/styles/_typography.scss b/src/styles/_typography.scss new file mode 100644 index 0000000..da0a77a --- /dev/null +++ b/src/styles/_typography.scss @@ -0,0 +1,105 @@ +/* stylelint-disable declaration-colon-newline-after, indentation */ +@font-face { + font-family: 'Metropolis'; + font-style: normal; + font-weight: 700; + src: url('../assets/fonts/metropolis-bold-webfont.woff2') format('woff2'), + url('../assets/fonts/metropolis-bold-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Metropolis'; + font-style: italic; + font-weight: 700; + src: url('../assets/fonts/metropolis-bolditalic-webfont.woff2') + format('woff2'), + url('../assets/fonts/metropolis-bolditalic-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Metropolis'; + font-style: normal; + font-weight: 400; + src: url('../assets/fonts/metropolis-regular-webfont.woff2') format('woff2'), + url('../assets/fonts/metropolis-regular-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Metropolis'; + font-style: italic; + font-weight: 400; + src: url('../assets/fonts/metropolis-regularitalic-webfont.woff2') + format('woff2'), + url('../assets/fonts/metropolis-regularitalic-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Metropolis'; + font-style: normal; + font-weight: 300; + src: url('../assets/fonts/metropolis-light-webfont.woff2') format('woff2'), + url('../assets/fonts/metropolis-light-webfont.woff') format('woff'); +} + +@font-face { + font-family: 'Metropolis'; + font-style: italic; + font-weight: 300; + src: url('../assets/fonts/metropolis-lightitalic-webfont.woff2') + format('woff2'), + url('../assets/fonts/metropolis-lightitalic-webfont.woff') format('woff'); +} +/* stylelint-enable */ + +%heading { + color: $dark; +} + +@mixin heading($fontSize, $fontWeight, $color: 'default') { + font-size: $fontSize; + font-weight: $fontWeight; + line-height: ceil(2 * $fontSize) / 2; + margin: 0 0 (ceil(2 * $fontSize) / 4) 0; + + @extend %heading; + + @if ($color != 'default') { + color: $color; + } +} + +// Headings +h1 { + @include heading(1.5rem, 700); +} + +h2 { + @include heading(1.125rem, 300, $dark3); +} + +h3 { + @include heading(2rem, 400, $dark2); +} + +h4 { + @include heading(1rem, 400); +} + +// Paragraphs +p { + color: $dark3; + font-size: 0.875rem; + line-height: 1.0625rem; +} + +// Modifiers +a { + color: $info; + cursor: pointer; + text-decoration: none; +} + +small { + color: $dark3; + font-size: 0.5rem; +} diff --git a/src/utils/action.js b/src/utils/action.js index 9f506d0..667a6f2 100755 --- a/src/utils/action.js +++ b/src/utils/action.js @@ -3,4 +3,5 @@ export const action = (type, payload, meta) => ({ payload, meta }) -export const errorAction = (type, err) => ({ type, payload: err, error: true }) +export const errorAction = (type, err) => + console.error(err) || { type, payload: err, error: true } diff --git a/src/utils/date.js b/src/utils/date.js new file mode 100644 index 0000000..e7d48f2 --- /dev/null +++ b/src/utils/date.js @@ -0,0 +1,36 @@ +import * as dateConstants from '../constants/date' + +/** + * Stringifies a date object into the preffered Kleros format, (dd.mm.yyyy). + * @param {object} date - The date object. + * @returns {string} - The formatted string. + */ +export function dateToString( + date, + { withYear = true, withTime = true, numericMonth = true } = {} +) { + const day = date.getDate() + const month = date.getMonth() + const year = date.getFullYear() + + let dateString + if (numericMonth) + dateString = [day, month + 1, withYear === true ? year : null] + .filter(v => v) + .join('.') + else { + const dayStr = day.toString() + dateString = `${dateConstants.MONTHS_ENUM[month]} ${day}${ + dateConstants.ORDINAL_INDICATOR_ENUM[dayStr[dayStr.length - 1]] + }${withYear === true ? `, ${year}` : ''}` + } + + if (!withTime) return dateString + + let hours = date.getHours() + const minutes = String(date.getMinutes()).padStart(2, '0') + const amOrPm = hours >= 12 ? 'pm' : 'am' + hours = amOrPm === 'pm' ? hours % 12 || 12 : hours + + return `${dateString} at ${hours}:${minutes} ${amOrPm}` +} diff --git a/src/utils/form-generator.js b/src/utils/form-generator.js index 981885b..68e0acf 100755 --- a/src/utils/form-generator.js +++ b/src/utils/form-generator.js @@ -1,9 +1,9 @@ import createReduxForm from 'create-redux-form' -import store from '../' // eslint-disable-line unicorn/import-index +import FormHeader from '../components/form-header' import TextInput from '../components/text-input' -export const { form, wizardForm } = createReduxForm( - { text: TextInput, number: TextInput }, - store -) +export const { form, wizardForm } = createReduxForm({ + header: FormHeader, + text: TextInput +}) diff --git a/src/utils/form-generator.test.js b/src/utils/form-generator.test.js deleted file mode 100755 index 3edab40..0000000 --- a/src/utils/form-generator.test.js +++ /dev/null @@ -1,170 +0,0 @@ -import React from 'react' -import { submit as reduxFormSubmit } from 'redux-form' - -import setupIntegrationTest, { - flushPromises -} from '../bootstrap/setup-integration-test' - -import { form, wizardForm } from './form-generator' -import { required, number } from './validation' - -jest.mock('..', () => ({})) - -let integration = { - store: null, - history: null, - dispatchSpy: null, - mountApp: null -} - -beforeEach(() => { - integration = setupIntegrationTest({ router: { location: '/' } }) -}) - -const schema = { - payment: { - type: 'number', - placeholder: 'Payment (ETH)', - validate: [required, number] - }, - timeout: { - type: 'number', - visibleIf: 'payment', - validate: [required, number] - }, - partyB: { - type: 'text', - formValues: 'arbitratorExtraData', - visibleIf: 'email' - }, - arbitratorExtraData: { - type: 'text', - visibleIf: '!payment' - }, - email: { - type: 'text' - }, - description: { - type: 'text' - } -} - -const schema2 = { - payment2: { - type: 'number', - placeholder: 'Payment (ETH)' - }, - timeout2: { - type: 'number', - visibleIf: 'payment' - }, - partyB2: { - type: 'text', - formValues: 'arbitratorExtraData', - visibleIf: 'email' - }, - arbitratorExtraData2: { - type: 'text', - visibleIf: '!payment' - }, - email2: { - type: 'text' - }, - description2: { - type: 'text' - } -} - -const schema3 = { - payment3: { - type: 'number', - placeholder: 'Payment (ETH)' - }, - timeout3: { - type: 'number', - visibleIf: 'payment' - }, - partyB3: { - type: 'text', - formValues: 'arbitratorExtraData', - visibleIf: 'email' - }, - arbitratorExtraData3: { - type: 'text', - visibleIf: '!payment' - }, - email3: { - type: 'text' - }, - description3: { - type: 'text' - } -} - -describe('form', () => - it('Takes a schema and returns a form component with utils.', async () => { - const formName = 'testForm' - const { Form, isInvalid, submit } = form(formName, schema) - expect(isInvalid({})).toBe(false) - expect(submit()).toEqual(reduxFormSubmit(formName)) - - // Mount form - integration.mountApp( -
- ) - await flushPromises() - })) - -describe('wizardForm', () => - it('Takes a nested schema and returns a wizard form component with utils.', async () => { - const formName = 'testWizardForm' - const { Form, isInvalid, submit } = wizardForm(formName, { - step1: schema, - step2: schema2, - step3: schema3 - }) - expect(isInvalid({})).toBe(false) - expect(submit()).toEqual(reduxFormSubmit(formName)) - - // Handlers - let backHandlerRef - const getBackHandlerRef = func => (backHandlerRef = func) - const onPageChange = jest.fn() - const handleSubmit = jest.fn() - - // Mount wizard form - const app = integration.mountApp( - - ) - await flushPromises() - expect(onPageChange).toHaveBeenCalledTimes(1) - - // Go to the next page - integration.store.dispatch(submit()) - expect(onPageChange).toHaveBeenCalledTimes(2) - - // Go back to the previous page - backHandlerRef() - expect(onPageChange).toHaveBeenCalledTimes(3) - - // Go to the next page - integration.store.dispatch(submit()) - expect(onPageChange).toHaveBeenCalledTimes(4) - - // Go to the next page - integration.store.dispatch(submit()) - expect(onPageChange).toHaveBeenCalledTimes(5) - - // Submit the form - integration.store.dispatch(submit()) - expect(onPageChange).toHaveBeenCalledTimes(5) - expect(handleSubmit).toHaveBeenCalledTimes(1) - - // destroy() form - app.unmount() - })) diff --git a/src/utils/number.js b/src/utils/number.js new file mode 100644 index 0000000..2c79db8 --- /dev/null +++ b/src/utils/number.js @@ -0,0 +1,8 @@ +/** + * Stringifies a number into the preffered Kleros percentage format. + * @param {number} n - The number. + * @returns {string} - The formatted string. + */ +export function numberToPercentage(n) { + return `${(n * 100).toFixed(2)}%` +} diff --git a/src/utils/saga.js b/src/utils/saga.js new file mode 100644 index 0000000..f0114f7 --- /dev/null +++ b/src/utils/saga.js @@ -0,0 +1,71 @@ +import { delay } from 'redux-saga' +import { toastr } from 'react-redux-toastr' + +import { call, put } from 'redux-saga/effects' + +import { eth } from '../bootstrap/dapp-api' + +import { action as _action, errorAction } from './action' + +/** + * Calls a saga with the `lessdux` flow. + * @param {string} flow - The `lessdux` flow that should be used, (create, fetch, update, delete). + * @param {object} resourceActions - The `lessdux` resource actions object. + * @param {object} saga - The saga being called. + * @param {{ type: string, payload: ?object, meta: ?object }} action - The action object that triggered the saga. + */ +export function* lessduxSaga(flow, resourceActions, saga, action) { + let receiveWord + let failWord + switch (flow) { + case 'create': + receiveWord = '_CREATED' + failWord = '_CREATE' + break + case 'fetch': + receiveWord = '' + failWord = '_FETCH' + break + case 'update': + receiveWord = '_UPDATED' + failWord = '_UPDATE' + yield put(_action(resourceActions.UPDATE)) // Updates are not called directly so call it here to set .updating on the resource + break + case 'delete': + receiveWord = '_DELETED' + failWord = '_DELETE' + break + default: + throw new TypeError('Invalid lessdux flow.') + } + + try { + const result = yield call(saga, action) + + yield put( + _action(resourceActions['RECEIVE' + receiveWord], { + [result.collection ? 'collectionMod' : resourceActions.self]: result + }) + ) + } catch (err) { + toastr.error('', err.message.slice(0, 100)) + yield put(errorAction(resourceActions['FAIL' + failWord], err)) + } +} + +/** + * Sends a transaction and waits for it to be mined. + * @param {function} contractFunction - The transaction function to call. + * @param {...any} args - The arguments to pass into the contractFunction. + */ +export function* sendTransaction(contractFunction, ...args) { + const hash = yield call(contractFunction, ...args) + let receipt + + while (!receipt) { + receipt = yield call(eth.getTransactionReceipt, hash) + yield call(delay, 200) + } + + if (receipt.status === '0x0') throw new Error('Transaction failed.') +} diff --git a/src/utils/validation.js b/src/utils/validation.js index c96111e..32bb2c7 100755 --- a/src/utils/validation.js +++ b/src/utils/validation.js @@ -1,3 +1,4 @@ -export const required = name => v => (v ? undefined : `${name} is required.`) +export const required = name => v => + v === undefined ? `${name} is required.` : undefined export const number = name => v => Number.isNaN(Number(v)) ? `${name} must be a number.` : undefined diff --git a/stories/chain-hash.js b/stories/chain-hash.js new file mode 100644 index 0000000..62fa77a --- /dev/null +++ b/stories/chain-hash.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import ChainHash from '../src/components/chain-hash' + +storiesOf('Chain Hash', module).add('default', () => ( + {'0x5b5d09477f730baafb1e2e0fb78f5d95fd94a6f4'} +)) diff --git a/stories/chain-number.js b/stories/chain-number.js new file mode 100644 index 0000000..7c76a05 --- /dev/null +++ b/stories/chain-number.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import ChainNumber from '../src/components/chain-number' + +storiesOf('Chain Number', module).add('default', () => ( + {0.000123} +)) diff --git a/stories/circle.js b/stories/circle.js new file mode 100644 index 0000000..d76a43c --- /dev/null +++ b/stories/circle.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import Circle from '../src/components/circle' + +storiesOf('Circle', module).add('default', () => ( + +)) diff --git a/stories/form.js b/stories/form.js new file mode 100644 index 0000000..a6a1475 --- /dev/null +++ b/stories/form.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import FormHeader from '../src/components/form-header' + +storiesOf('Form', module).add('header', () => ( + +)) diff --git a/stories/index.js b/stories/index.js index a083192..c74315c 100755 --- a/stories/index.js +++ b/stories/index.js @@ -1,5 +1,16 @@ import './button' +import './chain-hash' +import './chain-number' +import './circle' +import './form' import './identicon' +import './nav-bar' import './page-not-found' +import './pie-chart' import './requires-meta-mask' +import './slider' +import './stat-block' +import './stat-row' import './text-input' +import './toast' +import './typography' diff --git a/stories/nav-bar.js b/stories/nav-bar.js new file mode 100644 index 0000000..415cc56 --- /dev/null +++ b/stories/nav-bar.js @@ -0,0 +1,42 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import NavBar from '../src/components/nav-bar' + +const routes = [ + { name: 'Home', to: '/' }, + { name: 'Disputes', to: '/disputes' }, + { name: 'Testing Panel', to: '/testing-panel' } +] + +const render = routes => () => ( +
+ +
+) + +storiesOf('Nav Bar', module) + .add( + 'with routes', + render([ + { name: 'Home', to: '/' }, + { name: 'Disputes', to: '/disputes' }, + { name: 'Testing Panel', to: '/testing-panel' } + ]) + ) + .add( + 'with a lot of routes, (scrollable)', + render([ + ...routes, + { name: 'Extra', to: '/1' }, + { name: 'Extra', to: '/2' }, + { name: 'Extra', to: '/3' }, + { name: 'Extra', to: '/4' }, + { name: 'Extra', to: '/5' }, + { name: 'Extra', to: '/6' } + ]) + ) diff --git a/stories/pie-chart.js b/stories/pie-chart.js new file mode 100644 index 0000000..6e06b72 --- /dev/null +++ b/stories/pie-chart.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import PieChart from '../src/components/pie-chart' + +storiesOf('Pie Chart', module).add('activated', () => ( + +)) diff --git a/stories/slider.js b/stories/slider.js new file mode 100644 index 0000000..cfa7906 --- /dev/null +++ b/stories/slider.js @@ -0,0 +1,10 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import Slider from '../src/components/slider' + +const calcValue = percent => `${(percent * 100).toFixed(0)}%` + +storiesOf('Slider', module).add('default', () => ( + +)) diff --git a/stories/stat-block.js b/stories/stat-block.js new file mode 100644 index 0000000..e2117d5 --- /dev/null +++ b/stories/stat-block.js @@ -0,0 +1,8 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import StatBlock from '../src/components/stat-block' + +storiesOf('Stat Block', module) + .add('default', () => ) + .add('with no label', () => ) diff --git a/stories/stat-row.js b/stories/stat-row.js new file mode 100644 index 0000000..93d3363 --- /dev/null +++ b/stories/stat-row.js @@ -0,0 +1,15 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +import StatBlock from '../src/components/stat-block' +import StatRow from '../src/components/stat-row' + +const blocks = [ + { label: 'Label 1', value: '300' }, + { label: 'Label 2', value: '300' }, + { label: 'Label 3', value: '300' } +].map(block => ) + +storiesOf('Stat Row', module) + .add('default', () => {blocks}) + .add('with box shadow', () => {blocks}) diff --git a/stories/toast.js b/stories/toast.js new file mode 100644 index 0000000..2a1ceb9 --- /dev/null +++ b/stories/toast.js @@ -0,0 +1,28 @@ +import React, { PureComponent } from 'react' +import PropTypes from 'prop-types' +import { storiesOf } from '@storybook/react' +import { toastr } from 'react-redux-toastr' + +import Button from '../src/components/button' + +class Component extends PureComponent { + static propTypes = { + type: PropTypes.string.isRequired + } + + handleButtonClick = () => { + const { type } = this.props + toastr[type]('The Title', 'The message.') + } + + render() { + return + } +} +const render = type => () => +const types = ['info', 'warning', 'success', 'error', 'message', 'confirm'] + +const stories = storiesOf('Toast', module) +for (const type of types) { + stories.add(type, render(type)) +} diff --git a/stories/typography.js b/stories/typography.js new file mode 100644 index 0000000..f9d2f3a --- /dev/null +++ b/stories/typography.js @@ -0,0 +1,35 @@ +import React from 'react' +import { storiesOf } from '@storybook/react' + +storiesOf('Typography', module) + .add('headings', () => ( +
+

Heading 1

+

Heading 2

+

Heading 3

+

Heading 4

+
+ )) + .add('paragraphs', () => ( +
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque + sapien nunc, eleifend et sem nec, iaculis tincidunt felis. +

+

+ Duis sed eros ut lacus maximus sodales id ut nibh. Class aptent taciti + sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. + Phasellus accumsan convallis laoreet. +

+

+ Duis et mauris vestibulum, auctor lacus porttitor, pellentesque arcu. + Sed scelerisque dolor in orci luctus semper. Mauris turpis magna, congue + vitae sollicitudin vel, pretium nec arcu. +

+
+ )) + .add('small', () => ( +
+ small +
+ )) diff --git a/yarn.lock b/yarn.lock old mode 100755 new mode 100644 index a72bf2b..697f66b --- a/yarn.lock +++ b/yarn.lock @@ -2,70 +2,92 @@ # yarn lockfile v1 -"@babel/code-frame@7.0.0-beta.40", "@babel/code-frame@^7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz#37e2b0cf7c56026b4b21d3927cadf81adec32ac6" +"@babel/code-frame@7.0.0-beta.42", "@babel/code-frame@^7.0.0-beta.40": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz#a9c83233fa7cd06b39dc77adbb908616ff4f1962" dependencies: - "@babel/highlight" "7.0.0-beta.40" + "@babel/highlight" "7.0.0-beta.42" -"@babel/generator@7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.40.tgz#ab61f9556f4f71dbd1138949c795bb9a21e302ea" +"@babel/generator@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.42.tgz#777bb50f39c94a7e57f73202d833141f8159af33" dependencies: - "@babel/types" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.42" jsesc "^2.5.1" lodash "^4.2.0" source-map "^0.5.0" trim-right "^1.0.1" -"@babel/helper-function-name@7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.40.tgz#9d033341ab16517f40d43a73f2d81fc431ccd7b6" +"@babel/helper-function-name@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.42.tgz#b38b8f4f85168d1812c543dd700b5d549b0c4658" dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.40" - "@babel/template" "7.0.0-beta.40" - "@babel/types" "7.0.0-beta.40" + "@babel/helper-get-function-arity" "7.0.0-beta.42" + "@babel/template" "7.0.0-beta.42" + "@babel/types" "7.0.0-beta.42" -"@babel/helper-get-function-arity@7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.40.tgz#ac0419cf067b0ec16453e1274f03878195791c6e" +"@babel/helper-get-function-arity@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.42.tgz#ad072e32f912c033053fc80478169aeadc22191e" dependencies: - "@babel/types" "7.0.0-beta.40" + "@babel/types" "7.0.0-beta.42" -"@babel/highlight@7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.40.tgz#b43d67d76bf46e1d10d227f68cddcd263786b255" +"@babel/helper-module-imports@7.0.0-beta.32": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.32.tgz#8126fc024107c226879841b973677a4f4e510a03" + dependencies: + "@babel/types" "7.0.0-beta.32" + lodash "^4.2.0" + +"@babel/helper-split-export-declaration@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.42.tgz#0d0d5254220a9cc4e7e226240306b939dc210ee7" + dependencies: + "@babel/types" "7.0.0-beta.42" + +"@babel/highlight@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.42.tgz#a502a1c0d6f99b2b0e81d468a1b0c0e81e3f3623" dependencies: chalk "^2.0.0" esutils "^2.0.2" js-tokens "^3.0.0" -"@babel/template@7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.40.tgz#034988c6424eb5c3268fe6a608626de1f4410fc8" +"@babel/template@7.0.0-beta.42": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.42.tgz#7186d4e70d44cdec975049ba0a73bdaf5cdee052" dependencies: - "@babel/code-frame" "7.0.0-beta.40" - "@babel/types" "7.0.0-beta.40" - babylon "7.0.0-beta.40" + "@babel/code-frame" "7.0.0-beta.42" + "@babel/types" "7.0.0-beta.42" + babylon "7.0.0-beta.42" lodash "^4.2.0" "@babel/traverse@^7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.40.tgz#d140e449b2e093ef9fe1a2eecc28421ffb4e521e" - dependencies: - "@babel/code-frame" "7.0.0-beta.40" - "@babel/generator" "7.0.0-beta.40" - "@babel/helper-function-name" "7.0.0-beta.40" - "@babel/types" "7.0.0-beta.40" - babylon "7.0.0-beta.40" - debug "^3.0.1" + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.42.tgz#f4bf4d1e33d41baf45205e2d0463591d57326285" + dependencies: + "@babel/code-frame" "7.0.0-beta.42" + "@babel/generator" "7.0.0-beta.42" + "@babel/helper-function-name" "7.0.0-beta.42" + "@babel/helper-split-export-declaration" "7.0.0-beta.42" + "@babel/types" "7.0.0-beta.42" + babylon "7.0.0-beta.42" + debug "^3.1.0" globals "^11.1.0" invariant "^2.2.0" lodash "^4.2.0" -"@babel/types@7.0.0-beta.40", "@babel/types@^7.0.0-beta.40": - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.40.tgz#25c3d7aae14126abe05fcb098c65a66b6d6b8c14" +"@babel/types@7.0.0-beta.32": + version "7.0.0-beta.32" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.32.tgz#c317d0ecc89297b80bbcb2f50608e31f6452a5ff" + dependencies: + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^2.0.0" + +"@babel/types@7.0.0-beta.42", "@babel/types@^7.0.0-beta.40": + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.42.tgz#1e2118767684880f6963801b272fd2b3348efacc" dependencies: esutils "^2.0.2" lodash "^4.2.0" @@ -210,12 +232,33 @@ find-up "^2.1.0" "@dump247/storybook-state@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@dump247/storybook-state/-/storybook-state-1.2.1.tgz#b0604dd42a05bc343179be39dfc0178a0e73cd36" + version "1.3.0" + resolved "https://registry.yarnpkg.com/@dump247/storybook-state/-/storybook-state-1.3.0.tgz#97273315f5d4df01f472b368ec71464e7bc47fa2" dependencies: - "@storybook/addons" "^3.2.16" react-json-view "^1.13.3" +"@emotion/hash@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.2.tgz#4cfe6b57e251aa7f254750ddac7c449ff99c476f" + +"@emotion/is-prop-valid@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.1.tgz#98a255ac341064ddcf0d84f823b45ae9fb228f91" + dependencies: + "@emotion/memoize" "^0.6.1" + +"@emotion/memoize@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.1.tgz#b2de5184e49f518b7115a5e6d0e727643ec531cf" + +"@emotion/stylis@^0.6.5": + version "0.6.5" + resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.6.5.tgz#3e1bb0e52307d66212bcd307e2cb4d079f2a0b6a" + +"@emotion/unitless@^0.6.2": + version "0.6.2" + resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.2.tgz#19a39bda906e5ba45f39f6f7f3512b2740ceab29" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.yarnpkg.com/@marionebl/sander/-/sander-0.6.1.tgz#1958965874f24bc51be48875feb50d642fc41f7b" @@ -224,20 +267,13 @@ mkdirp "^0.5.1" rimraf "^2.5.2" -"@storybook/addon-actions@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.10.tgz#f3e4b538d8260364c55a3ba1e301a2fab9d8d3f2" - dependencies: - deep-equal "^1.0.1" - global "^4.3.2" - make-error "^1.3.2" - prop-types "^15.6.0" - react-inspector "^2.2.2" - uuid "^3.1.0" +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" -"@storybook/addon-actions@^3.3.11": - version "3.3.11" - resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.11.tgz#158a64f01c97fcf6922e7a370c6519d216544bcd" +"@storybook/addon-actions@^3.3.10", "@storybook/addon-actions@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-actions/-/addon-actions-3.3.15.tgz#2831e52947dc258208dd17804b479f7acc62d859" dependencies: deep-equal "^1.0.1" global "^4.3.2" @@ -247,8 +283,8 @@ uuid "^3.1.0" "@storybook/addon-knobs@^3.3.3": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-3.3.10.tgz#25f32cd3d32a1667dc9d8ae484ddfd6223fcffef" + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-knobs/-/addon-knobs-3.3.15.tgz#b18b067900682deef314785db99dee90a84a8f97" dependencies: babel-runtime "^6.26.0" deep-equal "^1.0.1" @@ -262,19 +298,19 @@ react-textarea-autosize "^5.2.1" util-deprecate "^1.0.2" -"@storybook/addon-links@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.3.10.tgz#4e6c1a0b0bf5b18101bc5001b858b33202ae8209" +"@storybook/addon-links@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-links/-/addon-links-3.3.15.tgz#b0ad4151de729aaa134ece86947e9df951583afe" dependencies: - "@storybook/components" "^3.3.10" + "@storybook/components" "^3.3.15" global "^4.3.2" prop-types "^15.5.10" "@storybook/addon-storyshots@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/addon-storyshots/-/addon-storyshots-3.3.10.tgz#9988d89a99683ab9f1796353326c9cbf002729de" + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/addon-storyshots/-/addon-storyshots-3.3.15.tgz#f34a3d4acc9c5da14ad09be40e19c319edf739f9" dependencies: - "@storybook/channels" "^3.3.10" + "@storybook/channels" "^3.3.15" babel-runtime "^6.26.0" glob "^7.1.2" global "^4.3.2" @@ -282,33 +318,29 @@ prop-types "^15.6.0" read-pkg-up "^3.0.0" -"@storybook/addons@^3.2.16", "@storybook/addons@^3.3.11": - version "3.3.11" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.11.tgz#7f85136d6da785160658aee512fd3cac99780f42" - -"@storybook/addons@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.10.tgz#8753007d872013d2376ba71b14396eef3159673b" +"@storybook/addons@^3.3.10", "@storybook/addons@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/addons/-/addons-3.3.15.tgz#564c5c7a8759b56fc566c4d1e983856bf8994a85" -"@storybook/channel-postmessage@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.3.10.tgz#4f22b5a665d3c95eb61cf41bbb06872009ace7b5" +"@storybook/channel-postmessage@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/channel-postmessage/-/channel-postmessage-3.3.15.tgz#d7e0b94978549d87f58e901021e8e1cee093e71e" dependencies: - "@storybook/channels" "^3.3.10" + "@storybook/channels" "^3.3.15" global "^4.3.2" json-stringify-safe "^5.0.1" -"@storybook/channels@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.3.10.tgz#0b15d47c2ea0cb1c7b735955d74e9d3ca99cdc42" +"@storybook/channels@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/channels/-/channels-3.3.15.tgz#42179cf0a1f19cd28bbd5e3796e6833fd2e40642" -"@storybook/client-logger@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.3.10.tgz#6f8b85c3dfad229794fee88f930df59b163ee144" +"@storybook/client-logger@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-3.3.15.tgz#d1ae40bcbd537bae1896531f8f099a963d0fdeff" -"@storybook/components@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.3.10.tgz#f213a129ed49de33cdaf116da2c2b662b8eb3ea0" +"@storybook/components@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/components/-/components-3.3.15.tgz#50dc213958b18a0e64c1624c50bdfdaf023609aa" dependencies: glamor "^2.20.40" glamorous "^4.11.2" @@ -322,13 +354,20 @@ "@storybook/react-simple-di" "^1.2.1" babel-runtime "6.x.x" -"@storybook/node-logger@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-3.3.10.tgz#d9c09a622713ec4726cdd292e798aa98c0503c15" +"@storybook/node-logger@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/node-logger/-/node-logger-3.3.15.tgz#57e88b941ed516d86ffca0b723e3685e61c7ff6b" dependencies: chalk "^2.3.0" npmlog "^4.1.2" +"@storybook/podda@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@storybook/podda/-/podda-1.2.3.tgz#53c4a1a3f8c7bbd5755dff5c34576fd1af9d38ba" + dependencies: + babel-runtime "^6.11.6" + immutable "^3.8.1" + "@storybook/react-komposer@^2.0.1", "@storybook/react-komposer@^2.0.3": version "2.0.3" resolved "https://registry.yarnpkg.com/@storybook/react-komposer/-/react-komposer-2.0.3.tgz#f9e12a9586b2ce95c24c137eabb8b71527ddb369" @@ -355,16 +394,16 @@ babel-runtime "^6.5.0" "@storybook/react@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.3.10.tgz#a55f8f804f3f01d76f1b7e8675e818ee4c107324" - dependencies: - "@storybook/addon-actions" "^3.3.10" - "@storybook/addon-links" "^3.3.10" - "@storybook/addons" "^3.3.10" - "@storybook/channel-postmessage" "^3.3.10" - "@storybook/client-logger" "^3.3.10" - "@storybook/node-logger" "^3.3.10" - "@storybook/ui" "^3.3.10" + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/react/-/react-3.3.15.tgz#8d9eaac77e6e8597fccb74d3cf2405b7f0827760" + dependencies: + "@storybook/addon-actions" "^3.3.15" + "@storybook/addon-links" "^3.3.15" + "@storybook/addons" "^3.3.15" + "@storybook/channel-postmessage" "^3.3.15" + "@storybook/client-logger" "^3.3.15" + "@storybook/node-logger" "^3.3.15" + "@storybook/ui" "^3.3.15" airbnb-js-shims "^1.4.0" autoprefixer "^7.2.3" babel-loader "^7.1.2" @@ -417,19 +456,21 @@ webpack-hot-middleware "^2.21.0" "@storybook/storybook-deployer@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.2.0.tgz#8839229229c91b9831a3bcf8f8f89b70a44d79b4" + version "2.3.0" + resolved "https://registry.yarnpkg.com/@storybook/storybook-deployer/-/storybook-deployer-2.3.0.tgz#43d3cc105a571e27b9c3e363c43d7da4a6a486e9" dependencies: - git-url-parse "^6.0.2" - shelljs "^0.7.0" - yargs "^8.0.1" + git-url-parse "^8.1.0" + parse-repo "^1.0.4" + shelljs "^0.8.1" + yargs "^11.0.0" -"@storybook/ui@^3.3.10": - version "3.3.10" - resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.3.10.tgz#99a83b988b01cde1df61b87a58227a50ed196dd1" +"@storybook/ui@^3.3.15": + version "3.3.15" + resolved "https://registry.yarnpkg.com/@storybook/ui/-/ui-3.3.15.tgz#6430c18990461e5c9f4db08ec497b5fb9541a654" dependencies: - "@storybook/components" "^3.3.10" + "@storybook/components" "^3.3.15" "@storybook/mantra-core" "^1.7.2" + "@storybook/podda" "^1.2.3" "@storybook/react-komposer" "^2.0.3" babel-runtime "^6.26.0" deep-equal "^1.0.1" @@ -441,7 +482,6 @@ lodash.debounce "^4.0.8" lodash.pick "^4.4.0" lodash.sortby "^4.7.0" - podda "^1.2.2" prop-types "^15.6.0" qs "^6.5.1" react-fuzzy "^0.5.1" @@ -452,17 +492,13 @@ react-treebeard "^2.1.0" redux "^3.7.2" -"@types/inline-style-prefixer@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/inline-style-prefixer/-/inline-style-prefixer-3.0.1.tgz#8541e636b029124b747952e9a28848286d2b5bf6" - "@types/node@*": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5" + version "9.6.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.0.tgz#d3480ee666df9784b1001a1872a2f6ccefb6c2d7" "@types/radium@^0.18.22": - version "0.18.23" - resolved "https://registry.yarnpkg.com/@types/radium/-/radium-0.18.23.tgz#5be6cf8806b09bfba9421ad2c6f1d12c41e1acf0" + version "0.18.24" + resolved "https://registry.yarnpkg.com/@types/radium/-/radium-0.18.24.tgz#0fdaa26b376c4064b3bdd71af0a74f0908ddb663" dependencies: "@types/react" "*" @@ -470,9 +506,9 @@ version "0.25.12" resolved "https://registry.yarnpkg.com/@types/ramda/-/ramda-0.25.12.tgz#49f22f7611ae381473bc9b992776a1471e899a5a" -"@types/react@*", "@types/react@^16.0.18": - version "16.0.34" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.0.34.tgz#7a8f795afd8a404a9c4af9539b24c75d3996914e" +"@types/react@*": + version "16.1.0" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.1.0.tgz#6c0e9955ce73f332b4a1948d45decaf18c764c6e" "@types/tinycolor2@^1.4.0": version "1.4.0" @@ -493,11 +529,11 @@ abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" -accepts@~1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" +accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" dependencies: - mime-types "~2.1.16" + mime-types "~2.1.18" negotiator "0.6.1" acorn-dynamic-import@^2.0.0: @@ -536,11 +572,7 @@ acorn@^4.0.3, acorn@^4.0.4: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822" - -acorn@^5.5.0: +acorn@^5.0.0, acorn@^5.5.0: version "5.5.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" @@ -549,15 +581,15 @@ address@1.0.3, address@^1.0.1: resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" airbnb-js-shims@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.4.0.tgz#b920b0bc9fafe8b8ae2a073f29fb10303b1b2b18" + version "1.4.1" + resolved "https://registry.yarnpkg.com/airbnb-js-shims/-/airbnb-js-shims-1.4.1.tgz#cc3e8eb8d35877f9d0fdc6583e26b0ee75b98ad0" dependencies: array-includes "^3.0.3" - array.prototype.flatmap "^1.1.1" - array.prototype.flatten "^1.1.1" - es5-shim "^4.5.9" + array.prototype.flatmap "^1.2.0" + array.prototype.flatten "^1.2.0" + es5-shim "^4.5.10" es6-shim "^0.35.3" - function.prototype.name "^1.0.3" + function.prototype.name "^1.1.0" object.entries "^1.0.4" object.getownpropertydescriptors "^2.0.3" object.values "^1.0.4" @@ -569,6 +601,10 @@ ajv-keywords@^2.0.0, ajv-keywords@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +ajv-keywords@^3.0.0, ajv-keywords@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" @@ -585,6 +621,15 @@ ajv@^5.0.0, ajv@^5.1.0, ajv@^5.1.5, ajv@^5.2.0, ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" +ajv@^6.0.1, ajv@^6.1.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" + dependencies: + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + uri-js "^3.0.2" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -601,19 +646,19 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" dependencies: - string-width "^1.0.1" + string-width "^2.0.0" ansi-escapes@^1.0.0, ansi-escapes@^1.1.0, ansi-escapes@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-escapes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" + version "3.1.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" ansi-html@0.0.7: version "0.0.7" @@ -631,18 +676,16 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.0.0, ansi-styles@^3.1.0, ansi-styles@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - -ansi-styles@^3.2.1: +ansi-styles@^3.0.0, ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" dependencies: color-convert "^1.9.0" +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + any-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" @@ -654,6 +697,13 @@ anymatch@^1.3.0: micromatch "^2.1.5" normalize-path "^2.0.0" +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + app-root-path@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" @@ -676,16 +726,17 @@ are-we-there-yet@~1.1.2: readable-stream "^2.0.6" argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" dependencies: sprintf-js "~1.0.2" aria-query@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.0.tgz#4af10a1e61573ddea0cf3b99b51c52c05b424d24" + version "0.7.1" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-0.7.1.tgz#26cbb5aff64144b0a825be1846e0b16cfa00b11e" dependencies: ast-types-flow "0.0.7" + commander "^2.11.0" arr-diff@^2.0.0: version "2.0.0" @@ -693,10 +744,22 @@ arr-diff@^2.0.0: dependencies: arr-flatten "^1.0.1" -arr-flatten@^1.0.1: +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + +arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" @@ -758,17 +821,21 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -array.prototype.flatmap@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.0.tgz#279f7ed4eeb1cedfe5515e92e63cfb40ca15b74b" +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + +array.prototype.flatmap@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.1.tgz#3103cd4826ef90019c9b0a4839b2535fa6faf4e9" dependencies: define-properties "^1.1.2" es-abstract "^1.10.0" function-bind "^1.1.1" -array.prototype.flatten@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/array.prototype.flatten/-/array.prototype.flatten-1.2.0.tgz#e46fb18954f8796381a73755e122570647984be3" +array.prototype.flatten@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/array.prototype.flatten/-/array.prototype.flatten-1.2.1.tgz#a77ae1b64524ce373b137fade324d12040d3c680" dependencies: define-properties "^1.1.2" es-abstract "^1.10.0" @@ -783,8 +850,8 @@ asap@~2.0.3: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" asn1.js@^4.0.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.2.tgz#8117ef4f7ed87cd8f89044b5bff97ac243a16c9a" + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -808,6 +875,10 @@ assert@^1.1.1: dependencies: util "0.10.3" +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -816,6 +887,10 @@ ast-types@0.10.1: version "0.10.1" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" +ast-types@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" + ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" @@ -828,11 +903,11 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@^1.4.0, async@^1.5.2: +async@^1.4.0, async@^1.5.0, async@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.1: +async@^2.1.2, async@^2.1.4, async@^2.4.1, async@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: @@ -842,6 +917,10 @@ asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" +atob@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" + autoprefixer@7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.6.tgz#fb933039f74af74a83e71225ce78d9fd58ba84d7" @@ -864,7 +943,7 @@ autoprefixer@^6.3.1: postcss "^5.2.16" postcss-value-parser "^3.2.3" -autoprefixer@^7.1.2: +autoprefixer@^7.1.2, autoprefixer@^7.2.3: version "7.2.6" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc" dependencies: @@ -875,26 +954,15 @@ autoprefixer@^7.1.2: postcss "^6.0.17" postcss-value-parser "^3.2.3" -autoprefixer@^7.2.3: - version "7.2.5" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.5.tgz#04ccbd0c6a61131b6d13f53d371926092952d192" - dependencies: - browserslist "^2.11.1" - caniuse-lite "^1.0.30000791" - normalize-range "^0.1.2" - num2fraction "^1.2.2" - postcss "^6.0.16" - postcss-value-parser "^3.2.3" - autoprefixer@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.1.0.tgz#374cf35be1c0e8fce97408d876f95f66f5cb4641" + version "8.2.0" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.2.0.tgz#1e49b611b31a5259b86b7a6b2b1b8faf091abe2a" dependencies: - browserslist "^3.1.1" - caniuse-lite "^1.0.30000810" + browserslist "^3.2.0" + caniuse-lite "^1.0.30000817" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^6.0.19" + postcss "^6.0.20" postcss-value-parser "^3.2.3" aws-sign2@~0.6.0: @@ -958,7 +1026,7 @@ babel-eslint@7.2.3: babel-eslint@^8.2.1: version "8.2.2" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b" + resolved "http://registry.npmjs.org/babel-eslint/-/babel-eslint-8.2.2.tgz#1102273354c6f0b29b4ea28a65f97d122296b68b" dependencies: "@babel/code-frame" "^7.0.0-beta.40" "@babel/traverse" "^7.0.0-beta.40" @@ -978,7 +1046,7 @@ babel-generator@6.11.4: lodash "^4.2.0" source-map "^0.5.0" -babel-generator@6.26.0, babel-generator@^6.18.0, babel-generator@^6.26.0: +babel-generator@6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" dependencies: @@ -991,6 +1059,19 @@ babel-generator@6.26.0, babel-generator@^6.18.0, babel-generator@^6.26.0: source-map "^0.5.6" trim-right "^1.0.1" +babel-generator@^6.18.0, babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + babel-helper-bindify-decorators@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" @@ -1153,7 +1234,7 @@ babel-jest@20.0.3, babel-jest@^20.0.3: babel-plugin-istanbul "^4.0.0" babel-preset-jest "^20.0.3" -babel-loader@7.1.2, babel-loader@^7.1.2: +babel-loader@7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.2.tgz#f6cbe122710f1aa2af4d881c6d5b54358ca24126" dependencies: @@ -1161,6 +1242,14 @@ babel-loader@7.1.2, babel-loader@^7.1.2: loader-utils "^1.0.2" mkdirp "^0.5.1" +babel-loader@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + babel-messages@^6.23.0, babel-messages@^6.8.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" @@ -1181,6 +1270,22 @@ babel-plugin-dynamic-import-node@1.1.0: babel-template "^6.26.0" babel-types "^6.26.0" +babel-plugin-emotion@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.1.2.tgz#e26b313fa0fecd0f2cc07b1e4ef05da167e4f740" + dependencies: + "@babel/helper-module-imports" "7.0.0-beta.32" + "@emotion/hash" "^0.6.2" + "@emotion/memoize" "^0.6.1" + "@emotion/stylis" "^0.6.5" + babel-plugin-macros "^2.0.0" + babel-plugin-syntax-jsx "^6.18.0" + convert-source-map "^1.5.0" + find-root "^1.1.0" + mkdirp "^0.5.1" + source-map "^0.5.7" + touch "^1.0.0" + babel-plugin-istanbul@^4.0.0: version "4.1.5" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" @@ -1193,6 +1298,12 @@ babel-plugin-jest-hoist@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-20.0.3.tgz#afedc853bd3f8dc3548ea671fbe69d03cc2c1767" +babel-plugin-macros@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.2.0.tgz#31fc16748d6480697a517f692dc4421cb7bff0cc" + dependencies: + cosmiconfig "^4.0.0" + babel-plugin-minify-builtins@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.2.0.tgz#317f824b0907210b6348671bb040ca072e2e0c82" @@ -1259,8 +1370,8 @@ babel-plugin-minify-type-constructors@^0.2.0: babel-helper-is-void-0 "^0.2.0" babel-plugin-react-docgen@^1.8.0: - version "1.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.8.2.tgz#4615da43588c8cf5bdcae028f217954c70e6770b" + version "1.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-1.8.3.tgz#bdb0fe41f72eaa9444fe7872866d2f372afd72bb" dependencies: babel-types "^6.24.1" lodash "^4.17.0" @@ -1310,7 +1421,7 @@ babel-plugin-syntax-function-bind@^6.8.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz#48c495f177bdf31a981e732f55adc0bdd2601f46" -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -1384,7 +1495,7 @@ babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-block-scoping@^6.23.0: +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" dependencies: @@ -1394,7 +1505,7 @@ babel-plugin-transform-es2015-block-scoping@^6.23.0: babel-types "^6.26.0" lodash "^4.17.4" -babel-plugin-transform-es2015-classes@^6.23.0: +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" dependencies: @@ -1408,33 +1519,33 @@ babel-plugin-transform-es2015-classes@^6.23.0: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-computed-properties@^6.22.0: +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.23.0: +babel-plugin-transform-es2015-destructuring@6.23.0, babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-duplicate-keys@^6.22.0: +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" dependencies: babel-runtime "^6.22.0" babel-types "^6.24.1" -babel-plugin-transform-es2015-for-of@^6.23.0: +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-function-name@^6.22.0: +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" dependencies: @@ -1465,7 +1576,7 @@ babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-e babel-template "^6.26.0" babel-types "^6.26.0" -babel-plugin-transform-es2015-modules-systemjs@^6.23.0: +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" dependencies: @@ -1473,7 +1584,7 @@ babel-plugin-transform-es2015-modules-systemjs@^6.23.0: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-modules-umd@^6.23.0: +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" dependencies: @@ -1481,14 +1592,14 @@ babel-plugin-transform-es2015-modules-umd@^6.23.0: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-plugin-transform-es2015-object-super@^6.22.0: +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" dependencies: babel-helper-replace-supers "^6.24.1" babel-runtime "^6.22.0" -babel-plugin-transform-es2015-parameters@^6.23.0: +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" dependencies: @@ -1499,7 +1610,7 @@ babel-plugin-transform-es2015-parameters@^6.23.0: babel-traverse "^6.24.1" babel-types "^6.24.1" -babel-plugin-transform-es2015-shorthand-properties@^6.22.0: +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" dependencies: @@ -1512,7 +1623,7 @@ babel-plugin-transform-es2015-spread@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-sticky-regex@^6.22.0: +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" dependencies: @@ -1526,13 +1637,13 @@ babel-plugin-transform-es2015-template-literals@^6.22.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-typeof-symbol@^6.23.0: +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" dependencies: babel-runtime "^6.22.0" -babel-plugin-transform-es2015-unicode-regex@^6.22.0: +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" dependencies: @@ -1555,7 +1666,7 @@ babel-plugin-transform-export-extensions@^6.22.0: babel-plugin-syntax-export-extensions "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-flow-strip-types@^6.22.0: +babel-plugin-transform-flow-strip-types@^6.22.0, babel-plugin-transform-flow-strip-types@^6.8.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" dependencies: @@ -1574,16 +1685,16 @@ babel-plugin-transform-inline-consecutive-adds@^0.2.0: resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.2.0.tgz#15dae78921057f4004f8eafd79e15ddc5f12f426" babel-plugin-transform-member-expression-literals@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.5.tgz#e06ae305cf48d819822e93a70d79269f04d89eec" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.9.0.tgz#ab07ad52a11ff7d2528c71388e8f901a4499c2b2" babel-plugin-transform-merge-sibling-variables@^6.8.6: - version "6.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.6.tgz#6d21efa5ee4981f71657fae716f9594bb2622aef" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.9.0.tgz#140017e305f8eb4f60d2f2db61154fbd71a9fcdd" babel-plugin-transform-minify-booleans@^6.8.3: - version "6.8.3" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.3.tgz#5906ed776d3718250519abf1bace44b0b613ddf9" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.9.0.tgz#e36ceaa49aadcae70ec98bd9dbccb660719a667a" babel-plugin-transform-object-rest-spread@6.26.0, babel-plugin-transform-object-rest-spread@^6.22.0: version "6.26.0" @@ -1593,8 +1704,8 @@ babel-plugin-transform-object-rest-spread@6.26.0, babel-plugin-transform-object- babel-runtime "^6.26.0" babel-plugin-transform-property-literals@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.5.tgz#67ed5930b34805443452c8b9690c7ebe1e206c40" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.9.0.tgz#4ddc12ada888927eacab4daff8a535ebc5de5a61" dependencies: esutils "^2.0.2" @@ -1632,7 +1743,7 @@ babel-plugin-transform-react-jsx@6.24.1, babel-plugin-transform-react-jsx@^6.24. babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.22.0" -babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.26.0: +babel-plugin-transform-regenerator@6.26.0, babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1, babel-plugin-transform-regenerator@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" dependencies: @@ -1643,12 +1754,12 @@ babel-plugin-transform-regexp-constructors@^0.2.0: resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.2.0.tgz#6aa5dd0acc515db4be929bbcec4ed4c946c534a3" babel-plugin-transform-remove-console@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.5.tgz#fde9d2d3d725530b0fadd8d31078402410386810" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.9.0.tgz#a7b671aab050dd30ef7cf2142b61a7d10efb327f" babel-plugin-transform-remove-debugger@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.5.tgz#809584d412bf918f071fdf41e1fdb15ea89cdcd5" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.9.0.tgz#b465e74b3fbe1970da561fb1331e30aefac3f1fe" babel-plugin-transform-remove-undefined@^0.2.0: version "0.2.0" @@ -1663,8 +1774,8 @@ babel-plugin-transform-runtime@6.23.0, babel-plugin-transform-runtime@^6.23.0: babel-runtime "^6.22.0" babel-plugin-transform-simplify-comparison-operators@^6.8.5: - version "6.8.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.5.tgz#a838786baf40cc33a93b95ae09e05591227e43bf" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.9.0.tgz#586252fea023cb13f2400a09c0ab178dc0844f0a" babel-plugin-transform-strict-mode@^6.24.1: version "6.24.1" @@ -1674,8 +1785,8 @@ babel-plugin-transform-strict-mode@^6.24.1: babel-types "^6.24.1" babel-plugin-transform-undefined-to-void@^6.8.3: - version "6.8.3" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.3.tgz#fc52707f6ee1ddc71bb91b0d314fbefdeef9beb4" + version "6.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.9.0.tgz#eb5db0554caffe9ded0206468ec0c6c3b332b9d2" babel-polyfill@6.26.0, babel-polyfill@^6.3.14: version "6.26.0" @@ -1720,6 +1831,35 @@ babel-preset-env@1.6.1, babel-preset-env@^1.6.1: invariant "^2.2.2" semver "^5.3.0" +babel-preset-es2015@^6.9.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + babel-preset-flow@^6.23.0: version "6.23.0" resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" @@ -1797,7 +1937,7 @@ babel-preset-stage-0@^6.24.1: babel-plugin-transform-function-bind "^6.22.0" babel-preset-stage-1 "^6.24.1" -babel-preset-stage-1@^6.24.1: +babel-preset-stage-1@^6.24.1, babel-preset-stage-1@^6.5.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" dependencies: @@ -1824,7 +1964,7 @@ babel-preset-stage-3@^6.24.1: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-plugin-transform-object-rest-spread "^6.22.0" -babel-register@^6.26.0: +babel-register@^6.26.0, babel-register@^6.9.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" dependencies: @@ -1876,13 +2016,13 @@ babel-types@^6.10.2, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.23 lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@6.18.0, babylon@^6.17.0, babylon@^6.18.0: +babylon@6.18.0, babylon@^6.17.0, babylon@^6.17.3, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -babylon@7.0.0-beta.40, babylon@^7.0.0-beta.40: - version "7.0.0-beta.40" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.40.tgz#91fc8cd56d5eb98b28e6fde41045f2957779940a" +babylon@7.0.0-beta.42, babylon@^7.0.0-beta.30, babylon@^7.0.0-beta.40: + version "7.0.0-beta.42" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657" babylon@~5.8.3: version "5.8.38" @@ -1905,8 +2045,20 @@ base16@^1.0.0: resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70" base64-js@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" batch@0.6.1: version "0.6.1" @@ -1926,13 +2078,17 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" +binaryextensions@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935" + block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: inherits "~2.0.0" -bluebird@^3.4.7, bluebird@^3.5.0: +bluebird@^3.4.7, bluebird@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" @@ -1993,26 +2149,24 @@ boom@5.x.x: hoek "4.x.x" bowser@^1.0.0, bowser@^1.7.3: - version "1.9.1" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.1.tgz#f86ef2132e8cb10b3eb6ea5af018758c587020db" + version "1.9.3" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-1.9.3.tgz#6643ae4d783f31683f6d23156976b74183862162" -boxen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" +boxen@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" dependencies: - ansi-align "^1.1.0" - camelcase "^2.1.0" - chalk "^1.1.1" + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" cli-boxes "^1.0.0" - filled-array "^1.0.0" - object-assign "^4.0.1" - repeating "^2.0.0" - string-width "^1.0.1" - widest-line "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^2.0.0" brace-expansion@^1.0.0, brace-expansion@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -2025,6 +2179,23 @@ braces@^1.8.2: preserve "^0.2.0" repeat-element "^1.1.2" +braces@^2.3.0, braces@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + define-property "^1.0.0" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + kind-of "^6.0.2" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + brcast@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/brcast/-/brcast-3.0.1.tgz#6256a8349b20de9eed44257a9b24d71493cd48dd" @@ -2098,19 +2269,19 @@ browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: caniuse-db "^1.0.30000639" electron-to-chromium "^1.2.7" -browserslist@^2.1.2, browserslist@^2.11.1, browserslist@^2.11.3, browserslist@^2.5.1: +browserslist@^2.1.2, browserslist@^2.11.3, browserslist@^2.5.1: version "2.11.3" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" dependencies: caniuse-lite "^1.0.30000792" electron-to-chromium "^1.3.30" -browserslist@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.1.2.tgz#893f29399d640ed35fe06bacd7eb1d78609a47e5" +browserslist@^3.2.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.2.3.tgz#ad36e56a43daeacf4d2b7bb16441b7ac30be4510" dependencies: - caniuse-lite "^1.0.30000813" - electron-to-chromium "^1.3.36" + caniuse-lite "^1.0.30000819" + electron-to-chromium "^1.3.40" bser@1.0.2: version "1.0.2" @@ -2124,6 +2295,10 @@ bser@^2.0.0: dependencies: node-int64 "^0.4.0" +buffer-from@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" + buffer-indexof@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" @@ -2152,23 +2327,49 @@ bytes@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" -cacache@^10.0.1: - version "10.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.2.tgz#105a93a162bbedf3a25da42e1939ed99ffb145f8" +cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" dependencies: - bluebird "^3.5.0" + bluebird "^3.5.1" chownr "^1.0.1" glob "^7.1.2" graceful-fs "^4.1.11" lru-cache "^4.1.1" - mississippi "^1.3.0" + mississippi "^2.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" - rimraf "^2.6.1" - ssri "^5.0.0" + rimraf "^2.6.2" + ssri "^5.2.4" unique-filename "^1.1.0" - y18n "^3.2.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" cachedir@^1.1.0: version "1.2.0" @@ -2216,7 +2417,7 @@ camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" -camelcase@^2.0.0, camelcase@^2.1.0: +camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" @@ -2224,7 +2425,7 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -camelcase@^4.1.0: +camelcase@^4.0.0, camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" @@ -2238,25 +2439,25 @@ caniuse-api@^1.5.2: lodash.uniq "^4.5.0" caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000793" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000793.tgz#3c00c66e423a7a1907c7dd96769a78b2afa8a72e" - -caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000791, caniuse-lite@^1.0.30000792: - version "1.0.30000792" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000792.tgz#d0cea981f8118f3961471afbb43c9a1e5bbf0332" + version "1.0.30000820" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000820.tgz#7c20e25cea1768b261b724f82e3a6a253aaa1468" -caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000810, caniuse-lite@^1.0.30000813: - version "1.0.30000814" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000814.tgz#73eb6925ac2e54d495218f1ea0007da3940e488b" +caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805, caniuse-lite@^1.0.30000817, caniuse-lite@^1.0.30000819: + version "1.0.30000820" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000820.tgz#6e36ee75187a2c83d26d6504a1af47cc580324d2" capture-stack-trace@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" -case-sensitive-paths-webpack-plugin@2.1.1, case-sensitive-paths-webpack-plugin@^2.1.1: +case-sensitive-paths-webpack-plugin@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.1.tgz#3d29ced8c1f124bf6f53846fb3f5894731fdc909" +case-sensitive-paths-webpack-plugin@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz#c899b52175763689224571dad778742e133f0192" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" @@ -2298,15 +2499,7 @@ chalk@2.3.1: escape-string-regexp "^1.0.5" supports-color "^5.2.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - -chalk@^2.3.1: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" dependencies: @@ -2314,6 +2507,18 @@ chalk@^2.3.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +change-emitter@^0.1.2: + version "0.1.6" + resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" + character-entities-html4@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.1.tgz#359a2a4a0f7e29d3dc2ac99bdbe21ee39438ea50" @@ -2378,7 +2583,7 @@ cheerio@^1.0.0-rc.2: lodash "^4.15.0" parse5 "^3.0.1" -chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: +chokidar@^1.6.0, chokidar@^1.6.1: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" dependencies: @@ -2393,13 +2598,31 @@ chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: optionalDependencies: fsevents "^1.0.0" +chokidar@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.0" + optionalDependencies: + fsevents "^1.1.2" + chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" + version "1.1.3" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" @@ -2409,8 +2632,8 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: safe-buffer "^5.0.1" circular-json-es6@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/circular-json-es6/-/circular-json-es6-2.0.1.tgz#c9f4e37df74a655ced7245d31020bf5b5cd34ef6" + version "2.0.2" + resolved "https://registry.yarnpkg.com/circular-json-es6/-/circular-json-es6-2.0.2.tgz#e4f4a093e49fb4b6aba1157365746112a78bd344" circular-json@^0.3.1: version "0.3.3" @@ -2422,13 +2645,22 @@ clap@^1.0.9: dependencies: chalk "^1.1.3" -classnames@^2.2.5: +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +classnames@^2.2.3, classnames@^2.2.5: version "2.2.5" resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" clean-css@4.1.x: - version "4.1.9" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.9.tgz#35cee8ae7687a49b98034f70de00c4edd3826301" + version "4.1.11" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" dependencies: source-map "0.5.x" @@ -2458,6 +2690,12 @@ cli-spinners@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + dependencies: + colors "1.0.3" + cli-truncate@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" @@ -2489,25 +2727,63 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -clone-deep@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" +cliui@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + +clone-deep@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" dependencies: for-own "^1.0.0" - is-plain-object "^2.0.1" - kind-of "^3.2.2" - shallow-clone "^0.1.2" + is-plain-object "^2.0.4" + kind-of "^6.0.0" + shallow-clone "^1.0.0" clone-regexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.0.tgz#eae0a2413f55c0942f818c229fefce845d7f3b1c" + version "1.0.1" + resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-1.0.1.tgz#051805cd33173375d82118fc0918606da39fd60f" dependencies: is-regexp "^1.0.0" is-supported-regexp-flag "^1.0.0" -clone@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f" +clone-response@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + dependencies: + mimic-response "^1.0.0" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + +cloneable-readable@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" co@^4.6.0: version "4.6.0" @@ -2527,6 +2803,13 @@ collapse-white-space@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.3.tgz#4b906f670e5a963a87b76b0e1689643341b6023c" +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + color-convert@^1.3.0, color-convert@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" @@ -2567,25 +2850,29 @@ colors@0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + +colors@^1.1.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794" + colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" -commander@2.12.x: - version "2.12.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.12.2.tgz#0f5946c427ed9ec0d91a46bb9def53e54650e555" +commander@2.15.x, commander@^2.11.0, commander@^2.12.2, commander@^2.9.0, commander@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" -commander@^2.11.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.0.tgz#ad2a23a1c3b036e392469b8012cec6b33b4c1322" - -commander@^2.12.2, commander@^2.9.0, commander@~2.13.0: +commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -2626,19 +2913,27 @@ compare-func@^1.3.1: array-ify "^1.0.0" dot-prop "^3.0.0" -compressible@~2.0.11: - version "2.0.12" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.12.tgz#c59a5c99db76767e9876500e271ef63b3493bd66" +compare-versions@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.1.0.tgz#43310256a5c555aaed4193c04d8f154cf9c6efd5" + +component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +compressible@~2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9" dependencies: - mime-db ">= 1.30.0 < 2" + mime-db ">= 1.33.0 < 2" compression@^1.5.2: - version "1.7.1" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.1.tgz#eff2603efc2e22cf86f35d2eb93589f9875373db" + version "1.7.2" + resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" dependencies: accepts "~1.3.4" bytes "3.0.0" - compressible "~2.0.11" + compressible "~2.0.13" debug "2.6.9" on-headers "~1.0.1" safe-buffer "5.1.1" @@ -2648,39 +2943,18 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.4.10, concat-stream@^1.5.0, concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" +concat-stream@^1.4.10, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" -concat-stream@^1.4.7: - version "1.6.1" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -configstore@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" - dependencies: - dot-prop "^3.0.0" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - -configstore@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" +configstore@^3.0.0, configstore@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" dependencies: dot-prop "^4.1.0" graceful-fs "^4.1.2" @@ -2723,67 +2997,60 @@ content-type@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" -conventional-changelog-angular@^1.3.3: +conventional-changelog-angular@^1.3.3, conventional-changelog-angular@^1.6.6: version "1.6.6" resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.6.tgz#b27f2b315c16d0a1f23eb181309d0e6a4698ea0f" dependencies: compare-func "^1.3.1" q "^1.5.1" -conventional-changelog-angular@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-1.6.0.tgz#0a26a071f2c9fcfcf2b86ba0cfbf6e6301b75bfa" - dependencies: - compare-func "^1.3.1" - q "^1.4.1" - -conventional-changelog-atom@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.1.2.tgz#12595ad5267a6937c34cf900281b1c65198a4c63" +conventional-changelog-atom@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-0.2.7.tgz#1cb4e9d79576734d187fa10662212652644686fd" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-codemirror@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.2.1.tgz#299a4f7147baf350e6c8158fc54954a291c5cc09" +conventional-changelog-codemirror@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-0.3.7.tgz#1e911361ebe6f96b1966a623c2bf52065114eda5" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-core@^1.9.3: - version "1.9.5" - resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-1.9.5.tgz#5db7566dad7c0cb75daf47fbb2976f7bf9928c1d" +conventional-changelog-core@^2.0.9: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-2.0.9.tgz#74fd7ccfce349267a878bf2ff470c315fc6db38e" dependencies: - conventional-changelog-writer "^2.0.3" - conventional-commits-parser "^2.1.0" - dateformat "^1.0.12" + conventional-changelog-writer "^3.0.8" + conventional-commits-parser "^2.1.7" + dateformat "^3.0.0" get-pkg-repo "^1.0.0" - git-raw-commits "^1.3.0" + git-raw-commits "^1.3.6" git-remote-origin-url "^2.0.0" - git-semver-tags "^1.2.3" - lodash "^4.0.0" + git-semver-tags "^1.3.6" + lodash "^4.2.1" normalize-package-data "^2.3.5" - q "^1.4.1" + q "^1.5.1" read-pkg "^1.1.0" read-pkg-up "^1.0.1" through2 "^2.0.0" -conventional-changelog-ember@^0.2.9: - version "0.2.10" - resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.2.10.tgz#dcd6e4cdc2e6c2b58653cf4d2cb1656a60421929" +conventional-changelog-ember@^0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-0.3.10.tgz#aa42b1f6d73df14a7bc9c20f2726884934e03164" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-eslint@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-0.2.1.tgz#2c2a11beb216f80649ba72834180293b687c0662" +conventional-changelog-eslint@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-1.0.8.tgz#3046276acafcd6c9403605439f16164b46bb21b6" dependencies: - q "^1.4.1" + q "^1.5.1" -conventional-changelog-express@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.2.1.tgz#838d9e1e6c9099703b150b9c19aa2d781742bd6c" +conventional-changelog-express@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-0.3.6.tgz#4a6295cb11785059fb09202180d0e59c358b9c2c" dependencies: - q "^1.4.1" + q "^1.5.1" conventional-changelog-jquery@^0.1.0: version "0.1.0" @@ -2797,75 +3064,80 @@ conventional-changelog-jscs@^0.1.0: dependencies: q "^1.4.1" -conventional-changelog-jshint@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.2.1.tgz#86139bb3ac99899f2b177e9617e09b37d99bcf3a" +conventional-changelog-jshint@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-0.3.7.tgz#f59d591042dec607a65816686191700611f684bd" dependencies: compare-func "^1.3.1" - q "^1.4.1" + q "^1.5.1" -conventional-changelog-writer@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-2.0.3.tgz#073b0c39f1cc8fc0fd9b1566e93833f51489c81c" +conventional-changelog-preset-loader@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-1.1.8.tgz#40bb0f142cd27d16839ec6c74ee8db418099b373" + +conventional-changelog-writer@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-3.0.8.tgz#e772ab261960f0bc849893ee843c0949d8e942dc" dependencies: compare-func "^1.3.1" - conventional-commits-filter "^1.1.1" - dateformat "^1.0.11" + conventional-commits-filter "^1.1.6" + dateformat "^3.0.0" handlebars "^4.0.2" json-stringify-safe "^5.0.1" - lodash "^4.0.0" - meow "^3.3.0" - semver "^5.0.1" + lodash "^4.2.1" + meow "^4.0.0" + semver "^5.5.0" split "^1.0.0" through2 "^2.0.0" conventional-changelog@^1.1.0: - version "1.1.7" - resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.7.tgz#9151a62b1d8edb2d82711dabf5b7cf71041f82b1" - dependencies: - conventional-changelog-angular "^1.5.2" - conventional-changelog-atom "^0.1.2" - conventional-changelog-codemirror "^0.2.1" - conventional-changelog-core "^1.9.3" - conventional-changelog-ember "^0.2.9" - conventional-changelog-eslint "^0.2.1" - conventional-changelog-express "^0.2.1" + version "1.1.22" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-1.1.22.tgz#3aa0395525ac5903e48b6ed0ecf41957bc10819c" + dependencies: + conventional-changelog-angular "^1.6.6" + conventional-changelog-atom "^0.2.7" + conventional-changelog-codemirror "^0.3.7" + conventional-changelog-core "^2.0.9" + conventional-changelog-ember "^0.3.10" + conventional-changelog-eslint "^1.0.8" + conventional-changelog-express "^0.3.6" conventional-changelog-jquery "^0.1.0" conventional-changelog-jscs "^0.1.0" - conventional-changelog-jshint "^0.2.1" + conventional-changelog-jshint "^0.3.7" + conventional-changelog-preset-loader "^1.1.8" conventional-commit-types@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/conventional-commit-types/-/conventional-commit-types-2.2.0.tgz#5db95739d6c212acbe7b6f656a11b940baa68946" -conventional-commits-filter@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.1.tgz#72172319c0c88328a015b30686b55527b3a5e54a" +conventional-commits-filter@^1.1.1, conventional-commits-filter@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-1.1.6.tgz#4389cd8e58fe89750c0b5fb58f1d7f0cc8ad3831" dependencies: is-subset "^0.1.1" modify-values "^1.0.0" -conventional-commits-parser@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.0.tgz#9b4b7c91124bf2a1a9a2cc1c72760d382cbbb229" +conventional-commits-parser@^2.1.0, conventional-commits-parser@^2.1.1, conventional-commits-parser@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz#eca45ed6140d72ba9722ee4132674d639e644e8e" dependencies: JSONStream "^1.0.4" is-text-path "^1.0.0" lodash "^4.2.1" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" trim-off-newlines "^1.0.0" conventional-recommended-bump@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.1.0.tgz#964d4fcc70fb5259d41fa9b39d3df6afdb87d253" + version "1.2.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-1.2.1.tgz#1b7137efb5091f99fe009e2fe9ddb7cc490e9375" dependencies: concat-stream "^1.4.10" conventional-commits-filter "^1.1.1" - conventional-commits-parser "^2.1.0" + conventional-commits-parser "^2.1.1" git-raw-commits "^1.3.0" - git-semver-tags "^1.2.3" + git-semver-tags "^1.3.0" meow "^3.3.0" object-assign "^4.0.1" @@ -2892,13 +3164,17 @@ copy-concurrently@^1.0.0: rimraf "^2.5.4" run-queue "^1.0.0" +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + core-js@^1.0.0: version "1.2.7" resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" core-js@^2.4.0, core-js@^2.4.1, core-js@^2.5.0, core-js@^2.5.3: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + version "2.5.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0" core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2951,7 +3227,24 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-error-class@^3.0.1: +create-emotion-styled@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/create-emotion-styled/-/create-emotion-styled-9.1.2.tgz#1528d9ff5ecc7e3abdf9986510a85ad2a9d73648" + dependencies: + "@emotion/is-prop-valid" "^0.6.1" + +create-emotion@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.1.2.tgz#a4227ac0c1bd9f07160f1e87161bffdb1732e148" + dependencies: + "@emotion/hash" "^0.6.2" + "@emotion/memoize" "^0.6.1" + "@emotion/stylis" "^0.6.5" + "@emotion/unitless" "^0.6.2" + stylis "^3.5.0" + stylis-rule-sheet "^0.0.10" + +create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" dependencies: @@ -2978,16 +3271,16 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: sha.js "^2.4.8" create-react-class@^15.5.2, create-react-class@^15.6.2: - version "15.6.2" - resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a" + version "15.6.3" + resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036" dependencies: fbjs "^0.8.9" loose-envify "^1.3.1" object-assign "^4.1.1" -create-redux-form@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/create-redux-form/-/create-redux-form-0.1.1.tgz#e7c21474ccf28bf9db78d9bce4dda6d40a71bf7f" +create-redux-form@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/create-redux-form/-/create-redux-form-0.1.2.tgz#4b1aa93bd07a2b332f4a7438b728ff019ff92376" dependencies: prop-types "^15.6.0" react-addons-css-transition-group "^15.6.2" @@ -3007,7 +3300,7 @@ cross-spawn@^3.0.0: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^6.0.4: +cross-spawn@^6.0.4, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" dependencies: @@ -3079,8 +3372,8 @@ css-loader@0.28.7: source-list-map "^2.0.0" css-loader@^0.28.8: - version "0.28.9" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.9.tgz#68064b85f4e271d7ce4c48a58300928e535d1c95" + version "0.28.11" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" dependencies: babel-code-frame "^6.26.0" css-selector-tokenizer "^0.7.0" @@ -3213,6 +3506,10 @@ dargs@^4.0.1: dependencies: number-is-nan "^1.0.0" +dargs@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -3227,14 +3524,11 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -dateformat@^1.0.11, dateformat@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" - dependencies: - get-stdin "^4.0.1" - meow "^3.3.0" +dateformat@^3.0.0, dateformat@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" -debug@2.6.9, debug@^2.2.0, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3257,6 +3551,16 @@ decamelize@^1.0.0, decamelize@^1.1.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + dependencies: + mimic-response "^1.0.0" + dedent@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" @@ -3275,7 +3579,7 @@ deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" -deep-extend@~0.4.0: +deep-extend@^0.4.0, deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" @@ -3296,6 +3600,25 @@ define-properties@^1.1.2: foreach "^2.0.5" object-keys "^1.0.8" +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + defined@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" @@ -3335,7 +3658,7 @@ depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" -depd@~1.1.1: +depd@~1.1.1, depd@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" @@ -3350,6 +3673,10 @@ destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" +detect-conflict@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e" + detect-file@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" @@ -3385,9 +3712,9 @@ detect-port-alt@1.1.5: address "^1.0.1" debug "^2.6.0" -diff@^3.2.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-3.4.0.tgz#b1d85507daf3964828de54b37d0d73ba67dda56c" +diff@^3.2.0, diff@^3.3.1, diff@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" diffie-hellman@^5.0.0: version "5.0.2" @@ -3412,7 +3739,7 @@ dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" -dns-packet@^1.0.1: +dns-packet@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" dependencies: @@ -3466,8 +3793,8 @@ dom-walk@^0.1.0: resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" domelementtype@1, domelementtype@^1.3.0: version "1.3.0" @@ -3509,8 +3836,8 @@ domutils@1.5, domutils@1.5.1: domelementtype "1" domutils@^1.5.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz#1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff" + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" dependencies: dom-serializer "0" domelementtype "1" @@ -3532,15 +3859,19 @@ dotenv-expand@4.0.1: resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-4.0.1.tgz#68fddc1561814e0a10964111057ff138ced7d7a8" dotenv-webpack@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.5.4.tgz#9c92e46e412a1cfbc60217ed33d69d2bbfddbf9f" + version "1.5.5" + resolved "https://registry.yarnpkg.com/dotenv-webpack/-/dotenv-webpack-1.5.5.tgz#3441094f04d304b6119e6b72524e62fb3252f5f2" dependencies: - dotenv "^4.0.0" + dotenv "^5.0.1" -dotenv@4.0.0, dotenv@^4.0.0: +dotenv@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-4.0.0.tgz#864ef1379aced55ce6f95debecdce179f7a0cd1d" +dotenv@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" + dotgitignore@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-1.0.3.tgz#a442cbde7dc20dff51cdb849e4c5a64568c07923" @@ -3548,19 +3879,17 @@ dotgitignore@^1.0.3: find-up "^2.1.0" minimatch "^3.0.4" -duplexer2@^0.1.4: +duplexer3@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" duplexer@^0.1.1, duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.3.tgz#8b5818800df92fd0125b27ab896491912858243e" + version "3.5.4" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3573,17 +3902,21 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +editions@^1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.31" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.31.tgz#00d832cba9fe2358652b0c48a8816c8e3a037e9f" +ejs@^2.3.1: + version "2.5.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.8.tgz#2ab6954619f225e6193b7ac5f7c39c48fefe4380" -electron-to-chromium@^1.3.36: - version "1.3.37" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.37.tgz#4a92734e0044c8cf0b1553be57eae21a4c6e5fab" +electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30, electron-to-chromium@^1.3.40: + version "1.3.40" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.40.tgz#1fbd6d97befd72b8a6f921dc38d22413d2f6fddf" elegant-spinner@^1.0.1: version "1.0.1" @@ -3609,9 +3942,16 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" +emotion@^9.1.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.1.2.tgz#b89ff80c8449a2eb146a4a0fc87f3e1aefedd253" + dependencies: + babel-plugin-emotion "^9.1.2" + create-emotion "^9.1.2" + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" encoding@^0.1.11: version "0.1.12" @@ -3634,6 +3974,14 @@ enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" +enhanced-resolve@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + entities@1.0: version "1.0.0" resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" @@ -3662,16 +4010,16 @@ enzyme-adapter-utils@^1.3.0: object.assign "^4.0.4" prop-types "^15.6.0" -enzyme-matchers@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-4.0.2.tgz#3f4457d0d0da3e268af4bee9f222439dfca26214" +enzyme-matchers@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/enzyme-matchers/-/enzyme-matchers-4.2.0.tgz#38333883258da90e5414b5ac07d388aecb75227f" dependencies: circular-json-es6 "^2.0.1" deep-equal-ident "^1.1.1" enzyme-to-json@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.0.tgz#553e23a09ffb4b0cf09287e2edf9c6539fddaa84" + version "3.3.3" + resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.3.3.tgz#ede45938fb309cd87ebd4386f60c754525515a07" dependencies: lodash "^4.17.4" @@ -3696,9 +4044,9 @@ enzyme@^3.3.0: raf "^3.4.0" rst-selector-parser "^2.2.3" -errno@^0.1.3, errno@^0.1.4: - version "0.1.6" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.6.tgz#c386ce8a6283f14fc09563b71560908c9bf53026" +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: prr "~1.0.1" @@ -3708,9 +4056,16 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + es-abstract@^1.10.0, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.6.1, es-abstract@^1.7.0, es-abstract@^1.9.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + version "1.11.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.1" @@ -3727,13 +4082,14 @@ es-to-primitive@^1.1.1: is-symbol "^1.0.1" es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.38" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3" + version "0.10.41" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.41.tgz#bab3e982d750f0112f0cb9e6abed72c59eb33eb2" dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.1" + next-tick "1" -es5-shim@^4.5.9: +es5-shim@^4.5.10: version "4.5.10" resolved "https://registry.yarnpkg.com/es5-shim/-/es5-shim-4.5.10.tgz#b7e17ef4df2a145b821f1497b50c25cf94026205" @@ -3761,8 +4117,8 @@ es6-map@^0.1.3: event-emitter "~0.3.5" es6-promise@^4.0.5: - version "4.2.2" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.2.tgz#f722d7769af88bd33bc13ec6605e1f92966b82d9" + version "4.2.4" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.4.tgz#dc4221c2b16518760bd8c39a52d8f356fc00ed29" es6-set@~0.1.5: version "0.1.5" @@ -3810,15 +4166,15 @@ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1 resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" escodegen@^1.6.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.0.tgz#9811a2f265dc1cd3894420ee3717064b632b8852" + version "1.9.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" dependencies: esprima "^3.1.3" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: - source-map "~0.5.6" + source-map "~0.6.1" escope@^3.6.0: version "3.6.0" @@ -4144,8 +4500,8 @@ eslint@4.10.0: text-table "~0.2.0" eslint@^4.17.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" + version "4.19.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" dependencies: ajv "^5.3.0" babel-code-frame "^6.22.0" @@ -4156,7 +4512,7 @@ eslint@^4.17.0: doctrine "^2.1.0" eslint-scope "^3.7.1" eslint-visitor-keys "^1.0.0" - espree "^3.5.2" + espree "^3.5.4" esquery "^1.0.0" esutils "^2.0.2" file-entry-cache "^2.0.0" @@ -4178,6 +4534,7 @@ eslint@^4.17.0: path-is-inside "^1.0.2" pluralize "^7.0.0" progress "^2.0.0" + regexpp "^1.0.1" require-uncached "^1.0.3" semver "^5.3.0" strip-ansi "^4.0.0" @@ -4185,14 +4542,7 @@ eslint@^4.17.0: table "4.0.2" text-table "~0.2.0" -espree@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca" - dependencies: - acorn "^5.2.1" - acorn-jsx "^3.0.0" - -espree@^3.5.2: +espree@^3.5.1, espree@^3.5.4: version "3.5.4" resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" dependencies: @@ -4218,11 +4568,10 @@ esquery@^1.0.0: estraverse "^4.0.0" esrecurse@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" dependencies: estraverse "^4.1.0" - object-assign "^4.0.1" estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" @@ -4236,12 +4585,6 @@ etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" -ethereumjs-testrpc@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-6.0.3.tgz#7a0b87bf3670f92f607f98fa6a78801d9741b124" - dependencies: - webpack "^3.0.0" - ethjs-abi@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.2.0.tgz#d3e2c221011520fc499b71682036c14fcc2f5b25" @@ -4295,7 +4638,7 @@ ethjs-schema@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ethjs-schema/-/ethjs-schema-0.2.0.tgz#07b46d4f55b792a846c90a79f330d31d112cca38" -ethjs-unit@0.1.6, ethjs-unit@^0.1.6: +ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" dependencies: @@ -4333,7 +4676,7 @@ event-emitter@~0.3.5: event-stream@~3.3.0: version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + resolved "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" dependencies: duplexer "~0.1.1" from "~0" @@ -4347,6 +4690,10 @@ eventemitter3@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" +eventemitter3@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-2.0.3.tgz#b5e1079b59fb5e1ba2771c0a993be060a58c99ba" + events@^1.0.0, events@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" @@ -4414,6 +4761,18 @@ expand-brackets@^0.1.4: dependencies: is-posix-bracket "^0.1.0" +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + expand-range@^1.8.1: version "1.8.2" resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" @@ -4433,10 +4792,10 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: homedir-polyfill "^1.0.1" express@^4.13.3, express@^4.16.2: - version "4.16.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c" + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" dependencies: - accepts "~1.3.4" + accepts "~1.3.5" array-flatten "1.1.1" body-parser "1.18.2" content-disposition "0.5.2" @@ -4444,29 +4803,42 @@ express@^4.13.3, express@^4.16.2: cookie "0.3.1" cookie-signature "1.0.6" debug "2.6.9" - depd "~1.1.1" - encodeurl "~1.0.1" + depd "~1.1.2" + encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" - finalhandler "1.1.0" + finalhandler "1.1.1" fresh "0.5.2" merge-descriptors "1.0.1" methods "~1.1.2" on-finished "~2.3.0" parseurl "~1.3.2" path-to-regexp "0.1.7" - proxy-addr "~2.0.2" + proxy-addr "~2.0.3" qs "6.5.1" range-parser "~1.2.0" safe-buffer "5.1.1" - send "0.16.1" - serve-static "1.13.1" + send "0.16.2" + serve-static "1.13.2" setprototypeof "1.1.0" - statuses "~1.3.1" - type-is "~1.6.15" + statuses "~1.4.0" + type-is "~1.6.16" utils-merge "1.0.1" vary "~1.1.2" +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" @@ -4479,7 +4851,7 @@ external-editor@^1.1.0: spawn-sync "^1.0.15" tmp "^0.0.29" -external-editor@^2.0.4: +external-editor@^2.0.4, external-editor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" dependencies: @@ -4493,6 +4865,19 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + extract-text-webpack-plugin@3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" @@ -4511,8 +4896,8 @@ extsprintf@^1.2.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" fast-deep-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" fast-diff@^1.1.1: version "1.1.2" @@ -4527,8 +4912,8 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fast-memoize@^2.2.7: - version "2.2.8" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.2.8.tgz#d7f899f31d037b12d9db4281912f9018575720b1" + version "2.3.2" + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.3.2.tgz#f6b9eb8e06a754029cca25b4cd3945f2f6242c90" fastparse@^1.1.1: version "1.1.1" @@ -4564,7 +4949,7 @@ fbemitter@^2.0.0: dependencies: fbjs "^0.8.4" -fbjs@^0.8.0, fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9: +fbjs@^0.8.0, fbjs@^0.8.1, fbjs@^0.8.12, fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9: version "0.8.16" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" dependencies: @@ -4604,11 +4989,11 @@ file-loader@1.1.5: schema-utils "^0.3.0" file-loader@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.6.tgz#7b9a8f2c58f00a77fddf49e940f7ac978a3ea0e8" + version "1.1.11" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" dependencies: loader-utils "^1.0.2" - schema-utils "^0.3.0" + schema-utils "^0.4.5" filename-regex@^2.0.0: version "2.0.1" @@ -4635,20 +5020,25 @@ fill-range@^2.1.0: repeat-element "^1.1.2" repeat-string "^1.5.2" -filled-array@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" +finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" dependencies: debug "2.6.9" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" on-finished "~2.3.0" parseurl "~1.3.2" - statuses "~1.3.1" + statuses "~1.4.0" unpipe "~1.0.0" find-cache-dir@^0.1.1: @@ -4682,6 +5072,10 @@ find-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a" +find-root@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -4704,6 +5098,12 @@ findup-sync@0.4.2: micromatch "^2.3.7" resolve-dir "^0.1.0" +first-chunk-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + dependencies: + readable-stream "^2.0.2" + flat-cache@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" @@ -4717,9 +5117,13 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +flow-parser@^0.*: + version "0.68.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.68.0.tgz#9cc96620a102e316a314b6bcd56205ceace862d8" + flush-write-stream@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" dependencies: inherits "^2.0.1" readable-stream "^2.0.4" @@ -4735,7 +5139,7 @@ for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" -for-in@^1.0.1: +for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -4768,22 +5172,28 @@ form-data@~2.1.1: mime-types "^2.1.12" form-data@~2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf" + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" dependencies: asynckit "^0.4.0" - combined-stream "^1.0.5" + combined-stream "1.0.6" mime-types "^2.1.12" forwarded@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" -from2@^2.1.0: +from2@^2.1.0, from2@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" dependencies: @@ -4850,7 +5260,7 @@ fsevents@1.1.2: nan "^2.3.0" node-pre-gyp "^0.6.36" -fsevents@^1.0.0: +fsevents@^1.0.0, fsevents@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" dependencies: @@ -4878,7 +5288,7 @@ function-bind@^1.0.2, function-bind@^1.1.0, function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" -function.prototype.name@^1.0.3: +function.prototype.name@^1.0.3, function.prototype.name@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.0.tgz#8bd763cc0af860a859cc5d49384d74b932cd2327" dependencies: @@ -4894,6 +5304,13 @@ fuse.js@^3.0.1, fuse.js@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-3.2.0.tgz#f0448e8069855bf2a3e683cdc1d320e7e2a07ef4" +ganache-cli@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.1.0.tgz#486c846497204b644166b5f0f74c9b41d02bdc25" + dependencies: + source-map-support "^0.5.3" + webpack-cli "^2.0.9" + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -4949,23 +5366,34 @@ get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" -get-stream@^3.0.0: +get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" dependencies: assert-plus "^1.0.0" -git-raw-commits@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.0.tgz#0bc8596e90d5ffe736f7f5546bd2d12f73abaac6" +gh-got@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" + dependencies: + got "^7.0.0" + is-plain-obj "^1.1.0" + +git-raw-commits@^1.3.0, git-raw-commits@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-1.3.6.tgz#27c35a32a67777c1ecd412a239a6c19d71b95aff" dependencies: dargs "^4.0.1" lodash.template "^4.0.2" - meow "^3.3.0" + meow "^4.0.0" split2 "^2.0.0" through2 "^2.0.0" @@ -4976,12 +5404,12 @@ git-remote-origin-url@^2.0.0: gitconfiglocal "^1.0.0" pify "^2.3.0" -git-semver-tags@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.2.3.tgz#188b453882bf9d7a23afd31baba537dab7388d5d" +git-semver-tags@^1.3.0, git-semver-tags@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-1.3.6.tgz#357ea01f7280794fe0927f2806bee6414d2caba5" dependencies: - meow "^3.3.0" - semver "^5.0.1" + meow "^4.0.0" + semver "^5.5.0" git-up@^2.0.0: version "2.0.10" @@ -4990,9 +5418,9 @@ git-up@^2.0.0: is-ssh "^1.3.0" parse-url "^1.3.0" -git-url-parse@^6.0.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-6.2.2.tgz#be49024e14b8487553436b4572b8b439532fa871" +git-url-parse@^8.1.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-8.2.0.tgz#74969b0105f805df58873ee5b96bc1a4dc0573b1" dependencies: git-up "^2.0.0" @@ -5002,6 +5430,12 @@ gitconfiglocal@^1.0.0: dependencies: ini "^1.3.2" +github-username@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417" + dependencies: + gh-got "^6.0.0" + glamor@^2.20.40: version "2.20.40" resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.40.tgz#f606660357b7cf18dface731ad1a2cfa93817f05" @@ -5013,8 +5447,8 @@ glamor@^2.20.40: through "^2.3.8" glamorous@^4.11.2: - version "4.11.4" - resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.11.4.tgz#61b333e1ec552abbe48e2fea48fea89fc0026149" + version "4.12.1" + resolved "https://registry.yarnpkg.com/glamorous/-/glamorous-4.12.1.tgz#bcfa00f3d24c9232da33bc2b415e0d3ca7b10f68" dependencies: brcast "^3.0.0" fast-memoize "^2.2.7" @@ -5024,6 +5458,13 @@ glamorous@^4.11.2: react-html-attributes "^1.3.0" svg-tag-names "^1.1.0" +glob-all@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" + dependencies: + glob "^7.0.5" + yargs "~1.2.6" + glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -5037,6 +5478,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob@7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" @@ -5117,8 +5565,8 @@ global@^4.3.2: process "~0.5.1" globals@^11.0.1, globals@^11.1.0: - version "11.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" + version "11.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc" globals@^9.17.0, globals@^9.18.0: version "9.18.0" @@ -5174,30 +5622,73 @@ gonzales-pe@^4.0.3, gonzales-pe@^4.2.3: dependencies: minimist "1.1.x" -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" is-redirect "^1.0.0" is-retry-allowed "^1.0.0" is-stream "^1.0.0" lowercase-keys "^1.0.0" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +got@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +got@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.0.tgz#6ba26e75f8a6cc4c6b3eb1fe7ce4fec7abac8533" + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" +grouped-queue@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" + dependencies: + lodash "^4.17.2" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5259,6 +5750,10 @@ has-ansi@^2.0.0: dependencies: ansi-regex "^2.0.0" +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -5271,14 +5766,51 @@ has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + dependencies: + has-symbol-support-x "^1.4.1" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + has@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" @@ -5350,18 +5882,14 @@ hoek@2.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" hoek@4.x.x: - version "4.2.0" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d" + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" -hoist-non-react-statics@^2.2.1, hoist-non-react-statics@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz#343db84c6018c650778898240135a1420ee22ce0" - -hoist-non-react-statics@^2.5.0: +hoist-non-react-statics@^2.3.0, hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz#d2ca2dfc19c5a91c5a6615ce8e564ef0347e2a40" @@ -5379,8 +5907,8 @@ homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.5.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" hpack.js@^2.1.6: version "2.1.6" @@ -5420,12 +5948,12 @@ html-loader@^0.5.4: object-assign "^4.1.1" html-minifier@^3.2.3, html-minifier@^3.5.8: - version "3.5.8" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.8.tgz#5ccdb1f73a0d654e6090147511f6e6b2ee312700" + version "3.5.12" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.12.tgz#6bfad4d0327f5b8d2b62f5854654ac3703b9b031" dependencies: camel-case "3.0.x" clean-css "4.1.x" - commander "2.12.x" + commander "2.15.x" he "1.1.x" ncname "1.0.x" param-case "2.1.x" @@ -5492,6 +6020,10 @@ htmlparser2@~3.8.1: entities "1.0" readable-stream "1.1" +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -5506,8 +6038,8 @@ http-errors@1.6.2, http-errors@~1.6.2: statuses ">= 1.3.1 < 2" http-parser-js@>=0.4.0: - version "0.4.9" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.9.tgz#ea1a04fb64adff0242e9974f297dd4c3cad271e1" + version "0.4.11" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" http-proxy-middleware@~0.17.4: version "0.17.4" @@ -5579,8 +6111,8 @@ icss-utils@^2.1.0: postcss "^6.0.1" ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + version "1.1.11" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" iferr@^0.1.5: version "0.1.5" @@ -5594,6 +6126,10 @@ immutable@^3.8.1: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + import-local@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/import-local/-/import-local-0.1.1.tgz#b1179572aacdc11c6a91009fb430dbcab5f668a8" @@ -5700,7 +6236,7 @@ inquirer@1.2.3: strip-ansi "^3.0.0" through "^2.3.6" -inquirer@3.3.0, inquirer@^3.0.6: +inquirer@3.3.0, inquirer@^3.0.6, inquirer@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" dependencies: @@ -5719,6 +6255,24 @@ inquirer@3.3.0, inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" +inquirer@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.1.0" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^5.5.2" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + insert-css@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" @@ -5729,17 +6283,18 @@ internal-ip@1.2.0: dependencies: meow "^3.3.0" -interpret@^1.0.0: +interpret@^1.0.0, interpret@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.1, invariant@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" dependencies: - loose-envify "^1.0.0" + from2 "^2.1.1" + p-is-promise "^1.1.0" -invariant@^2.2.0, invariant@^2.2.3: +invariant@^2.0.0, invariant@^2.1.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" dependencies: @@ -5753,14 +6308,26 @@ ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" -ipaddr.js@1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.5.2.tgz#d4b505bde9946987ccf0fc58d9010ff9607e3fa0" +ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" is-absolute-url@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + is-alphabetical@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.1.tgz#c77079cc91d4efac775be1034bf2d243f95e6f08" @@ -5790,7 +6357,7 @@ is-boolean-object@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.0.tgz#98f8b28030684219a95f375cfbd88ce3405dff93" -is-buffer@^1.0.2, is-buffer@^1.1.4, is-buffer@^1.1.5: +is-buffer@^1.1.4, is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -5810,6 +6377,18 @@ is-ci@^1.0.10: dependencies: ci-info "^1.0.0" +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" @@ -5818,6 +6397,22 @@ is-decimal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.1.tgz#f5fb6a94996ad9e8e3761fbfbd091f1fca8c4e82" +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + is-directory@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" @@ -5836,10 +6431,16 @@ is-equal-shallow@^0.1.3: dependencies: is-primitive "^2.0.0" -is-extendable@^0.1.1: +is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" @@ -5894,12 +6495,24 @@ is-hexadecimal@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz#6e084bbc92061fbb0971ec58b6ce6d404e24da69" +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + is-my-json-valid@^2.12.4: - version "2.17.1" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471" + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" dependencies: generate-function "^2.0.0" generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" jsonpointer "^4.0.0" xtend "^4.0.0" @@ -5923,23 +6536,37 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + is-obj@^1.0.0, is-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + is-observable@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" dependencies: symbol-observable "^0.2.2" +is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" dependencies: is-path-inside "^1.0.0" @@ -5953,7 +6580,7 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" -is-plain-object@^2.0.1, is-plain-object@^2.0.4: +is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" dependencies: @@ -5990,10 +6617,10 @@ is-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" is-resolvable@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.1.tgz#acca1cd36dbe44b974b924321555a70ba03b1cf4" + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" -is-retry-allowed@^1.0.0: +is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -6001,6 +6628,12 @@ is-root@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" +is-scoped@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30" + dependencies: + scoped-regex "^1.0.0" + is-ssh@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.0.tgz#ebea1169a2614da392a63740366c3ce049d8dff6" @@ -6020,8 +6653,8 @@ is-subset@^0.1.1: resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" is-supported-regexp-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz#8b520c85fae7a253382d4b02652e045576e13bb8" + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz#21ee16518d2c1dd3edd3e9a0d57e50207ac364ca" is-svg@^2.0.0: version "2.1.0" @@ -6055,9 +6688,9 @@ is-windows@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" -is-windows@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" is-word-character@^1.0.0: version "1.0.1" @@ -6085,7 +6718,7 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" -isobject@^3.0.1: +isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" @@ -6101,68 +6734,94 @@ isstream@~0.1.2: resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" istanbul-api@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.2.1.tgz#0c60a0515eb11c7d65c6b50bba2c6e999acd8620" + version "1.3.1" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" dependencies: async "^2.1.4" + compare-versions "^3.1.0" fileset "^2.0.2" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-hook "^1.1.0" - istanbul-lib-instrument "^1.9.1" - istanbul-lib-report "^1.1.2" - istanbul-lib-source-maps "^1.2.2" - istanbul-reports "^1.1.3" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-hook "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-report "^1.1.4" + istanbul-lib-source-maps "^1.2.4" + istanbul-reports "^1.3.0" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" +istanbul-lib-coverage@^1.0.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" -istanbul-lib-hook@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b" +istanbul-lib-hook@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e" +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.4.2, istanbul-lib-instrument@^1.7.5: + version "1.10.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" dependencies: babel-generator "^6.18.0" babel-template "^6.16.0" babel-traverse "^6.18.0" babel-types "^6.18.0" babylon "^6.18.0" - istanbul-lib-coverage "^1.1.1" + istanbul-lib-coverage "^1.2.0" semver "^5.3.0" -istanbul-lib-report@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425" +istanbul-lib-report@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" dependencies: - istanbul-lib-coverage "^1.1.1" + istanbul-lib-coverage "^1.2.0" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.1.0, istanbul-lib-source-maps@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c" +istanbul-lib-source-maps@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" dependencies: debug "^3.1.0" - istanbul-lib-coverage "^1.1.1" + istanbul-lib-coverage "^1.1.2" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" -istanbul-reports@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10" +istanbul-lib-source-maps@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" + dependencies: + debug "^3.1.0" + istanbul-lib-coverage "^1.2.0" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" dependencies: handlebars "^4.0.3" +istextorbinary@^2.1.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" + dependencies: + binaryextensions "2" + editions "^1.3.3" + textextensions "2" + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + jest-changed-files@^20.0.3: version "20.0.3" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-20.0.3.tgz#9394d5cc65c438406149bef1bf4d52b68e03e3f8" @@ -6226,14 +6885,14 @@ jest-diff@^20.0.3: jest-matcher-utils "^20.0.3" pretty-format "^20.0.3" -jest-diff@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.1.0.tgz#0fad9d96c87b453896bf939df3dc8aac6919ac38" +jest-diff@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.3.tgz#e18cc3feff0aeef159d02310f2686d4065378030" dependencies: chalk "^2.0.1" diff "^3.2.0" - jest-get-type "^22.1.0" - pretty-format "^22.1.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" jest-docblock@^20.0.3: version "20.0.3" @@ -6259,19 +6918,19 @@ jest-environment-node@^20.0.3: jest-util "^20.0.3" jest-enzyme@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-4.0.2.tgz#c3a87f311889819d51ae2639c9da412da07cfc4a" + version "4.2.0" + resolved "https://registry.yarnpkg.com/jest-enzyme/-/jest-enzyme-4.2.0.tgz#d284506b6d87e072bf6d2786584970bb42ea5969" dependencies: - enzyme-matchers "^4.0.2" + enzyme-matchers "^4.2.0" enzyme-to-json "^3.3.0" jest-get-type@^21.2.0: version "21.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-21.2.0.tgz#f6376ab9db4b60d81e39f30749c6c466f40d4a23" -jest-get-type@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" +jest-get-type@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" jest-haste-map@^20.0.4: version "20.0.5" @@ -6305,13 +6964,13 @@ jest-matcher-utils@^20.0.3: chalk "^1.1.3" pretty-format "^20.0.3" -jest-matcher-utils@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.1.0.tgz#e164665b5d313636ac29f7f6fe9ef0a6ce04febc" +jest-matcher-utils@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.3.tgz#4632fe428ebc73ebc194d3c7b65d37b161f710ff" dependencies: chalk "^2.0.1" - jest-get-type "^22.1.0" - pretty-format "^22.1.0" + jest-get-type "^22.4.3" + pretty-format "^22.4.3" jest-matchers@^20.0.3: version "20.0.3" @@ -6373,15 +7032,15 @@ jest-runtime@^20.0.4: yargs "^7.0.2" jest-snapshot@>=20.0.3: - version "22.1.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.1.2.tgz#b270cf6e3098f33aceeafda02b13eb0933dc6139" + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.3.tgz#b5c9b42846ffb9faccb76b841315ba67887362d2" dependencies: chalk "^2.0.1" - jest-diff "^22.1.0" - jest-matcher-utils "^22.1.0" + jest-diff "^22.4.3" + jest-matcher-utils "^22.4.3" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^22.1.0" + pretty-format "^22.4.3" jest-snapshot@^20.0.3: version "20.0.3" @@ -6437,8 +7096,8 @@ jest@20.0.4: jest-cli "^20.0.4" js-base64@^2.1.8, js-base64@^2.1.9: - version "2.4.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.1.tgz#e02813181cd53002888e918935467acb2910e596" + version "2.4.3" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" js-sha3@0.5.5: version "0.5.5" @@ -6448,14 +7107,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.4.3, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.1: - version "3.10.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.9.0: +js-yaml@^3.4.3, js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.11.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" dependencies: @@ -6473,6 +7125,46 @@ jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" +jscodeshift@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a" + dependencies: + async "^1.5.0" + babel-plugin-transform-flow-strip-types "^6.8.0" + babel-preset-es2015 "^6.9.0" + babel-preset-stage-1 "^6.5.0" + babel-register "^6.9.0" + babylon "^6.17.3" + colors "^1.1.2" + flow-parser "^0.*" + lodash "^4.13.1" + micromatch "^2.3.7" + node-dir "0.1.8" + nomnom "^1.8.1" + recast "^0.12.5" + temp "^0.8.1" + write-file-atomic "^1.2.0" + +jscodeshift@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.5.0.tgz#bdb7b6cc20dd62c16aa728c3fa2d2fe66ca7c748" + dependencies: + babel-plugin-transform-flow-strip-types "^6.8.0" + babel-preset-es2015 "^6.9.0" + babel-preset-stage-1 "^6.5.0" + babel-register "^6.9.0" + babylon "^7.0.0-beta.30" + colors "^1.1.2" + flow-parser "^0.*" + lodash "^4.13.1" + micromatch "^2.3.7" + neo-async "^2.5.0" + node-dir "0.1.8" + nomnom "^1.8.1" + recast "^0.14.1" + temp "^0.8.1" + write-file-atomic "^1.2.0" + jsdom@^7.0.2: version "7.2.2" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-7.2.2.tgz#40b402770c2bda23469096bee91ab675e3b1fc6e" @@ -6529,6 +7221,10 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + json-loader@^0.5.4, json-loader@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" @@ -6611,20 +7307,20 @@ jsx-ast-utils@^2.0.0, jsx-ast-utils@^2.0.1: array-includes "^3.0.3" keycode@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.1.9.tgz#964a23c54e4889405b4861a5c9f0480d45141dfa" + version "2.2.0" + resolved "https://registry.yarnpkg.com/keycode/-/keycode-2.2.0.tgz#3d0af56dc7b8b8e5cba8d0a97f107204eec22b04" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + dependencies: + json-buffer "3.0.0" killable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" -kind-of@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" - dependencies: - is-buffer "^1.0.2" - -kind-of@^3.0.2, kind-of@^3.2.2: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: @@ -6636,15 +7332,23 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" -kleros-scripts@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/kleros-scripts/-/kleros-scripts-0.4.0.tgz#2ea8849e8673e9e64ed7c3364107d81bc9da384b" +kleros-scripts@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/kleros-scripts/-/kleros-scripts-0.5.0.tgz#df9c0729c698552ea10c0be58c393379c819fb6d" dependencies: "@commitlint/cli" "^6.1.0" "@commitlint/config-conventional" "^6.1.0" @@ -6682,24 +7386,16 @@ known-css-properties@^0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.6.1.tgz#31b5123ad03d8d1a3f36bd4155459c981173478b" -latest-version@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" dependencies: - package-json "^2.0.0" - -lazy-cache@^0.2.3: - version "0.2.7" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + package-json "^4.0.0" lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lazy-req@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -6710,9 +7406,9 @@ lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -lessdux@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/lessdux/-/lessdux-0.1.2.tgz#e60d1a5b3ad7f5145aaac44faf4deb9de2c99fb0" +lessdux@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/lessdux/-/lessdux-0.4.1.tgz#7fda548b5ca52a1c29e5b7516b89b6b44bd94a25" dependencies: prop-types "^15.6.0" @@ -6863,13 +7559,9 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.17.5: - version "4.17.7" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.7.tgz#db240a3252c3dd8360201ac9feef91ac977ea856" - -lodash-es@^4.2.0, lodash-es@^4.2.1: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" +lodash-es@^4.17.5, lodash-es@^4.2.1: + version "4.17.8" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.8.tgz#6fa8c8c5d337481df0bdf1c0d899d42473121e45" lodash._baseisequal@^3.0.0: version "3.0.7" @@ -6994,22 +7686,14 @@ lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" -lodash.merge@4.6.1: +lodash.merge@4.6.1, lodash.merge@^4.4.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54" -lodash.merge@^4.4.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - -lodash.mergewith@4.6.1: +lodash.mergewith@4.6.1, lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" -lodash.mergewith@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" - lodash.omit@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.omit/-/lodash.omit-4.5.0.tgz#6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60" @@ -7079,21 +7763,17 @@ lodash@4.17.2: version "4.17.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.2.tgz#34a3055babe04ce42467b607d700072c7ff6bf42" -lodash@>=3.10.0, lodash@^4.17.5, lodash@^4.5.1: +lodash@>=3.10.0, "lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.5.1, lodash@~4.17.4: version "4.17.5" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" -"lodash@>=3.5 <5", lodash@^4.0.0, lodash@^4.0.1, lodash@^4.1.0, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.4: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - lodash@^3.10.1, lodash@^3.3.1: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" log-driver@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056" + version "1.2.7" + resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" log-symbols@^1.0.2: version "1.0.2" @@ -7101,7 +7781,7 @@ log-symbols@^1.0.2: dependencies: chalk "^1.0.0" -log-symbols@^2.0.0: +log-symbols@^2.0.0, log-symbols@^2.1.0, log-symbols@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" dependencies: @@ -7143,13 +7823,17 @@ lower-case@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" -lowercase-keys@^1.0.0: +lowercase-keys@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" +lowercase-keys@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + lru-cache@^4.0.1, lru-cache@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + version "4.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" dependencies: pseudomap "^1.0.2" yallist "^2.1.2" @@ -7158,15 +7842,15 @@ macaddress@^0.2.8: version "0.2.8" resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" -make-dir@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.1.0.tgz#19b4369fe48c116f53c2af95ad102c0e39e85d51" +make-dir@^1.0.0, make-dir@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" dependencies: pify "^3.0.0" make-error@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.2.tgz#8762ffad2444dd8ff1f7c819629fa28e24fea1c4" + version "1.3.4" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535" makeerror@1.0.x: version "1.0.11" @@ -7174,6 +7858,10 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" @@ -7186,6 +7874,12 @@ map-stream@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + markdown-escapes@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.1.tgz#1994df2d3af4811de59a6714934c2b2292734518" @@ -7206,8 +7900,8 @@ marked@0.3.6: resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.6.tgz#b2c6c618fccece4ef86c4fc6cb8a7cbf5aeda8d7" marked@^0.3.9: - version "0.3.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.12.tgz#7cf25ff2252632f3fe2406bde258e94eee927519" + version "0.3.19" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" material-colors@^1.2.1: version "1.2.5" @@ -7239,6 +7933,29 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" +mem-fs-editor@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz#dd0a6eaf2bb8a6b37740067aa549eb530105af9f" + dependencies: + commondir "^1.0.1" + deep-extend "^0.4.0" + ejs "^2.3.1" + glob "^7.0.3" + globby "^6.1.0" + mkdirp "^0.5.0" + multimatch "^2.0.0" + rimraf "^2.2.8" + through2 "^2.0.0" + vinyl "^2.0.1" + +mem-fs@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc" + dependencies: + through2 "^2.0.0" + vinyl "^1.1.0" + vinyl-file "^2.0.0" + mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -7315,6 +8032,24 @@ micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" +micromatch@^3.1.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -7322,19 +8057,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.30.0 < 2": - version "1.32.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.32.0.tgz#485b3848b01a3cda5f968b4882c0771e58e09414" +"mime-db@>= 1.33.0 < 2", mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" -mime-db@~1.30.0: - version "1.30.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" - -mime-types@^2.1.12, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.17, mime-types@~2.1.7: - version "2.1.17" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" dependencies: - mime-db "~1.30.0" + mime-db "~1.33.0" mime@1.4.1: version "1.4.1" @@ -7345,8 +8076,12 @@ mime@^1.4.1, mime@^1.5.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" mimic-fn@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +mimic-response@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" min-document@^2.19.0: version "2.19.0" @@ -7393,13 +8128,17 @@ minimist@1.2.0, minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2 version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" + minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" -mississippi@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-1.3.0.tgz#d201583eb12327e3c5c1642a404a9cacf94e34f5" +mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -7407,11 +8146,18 @@ mississippi@^1.3.0: flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" - pump "^1.0.0" + pump "^2.0.1" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" +mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + mixin-object@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" @@ -7426,12 +8172,12 @@ mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdi minimist "0.0.8" modify-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.0.tgz#e2b6cdeb9ce19f99317a53722f3dbf5df5eaaab2" + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" moment@^2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.20.1.tgz#d6eb1a46cbcc14a2b2f9434112c1ff8907f313fd" + version "2.21.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" move-concurrently@^1.0.1: version "1.0.1" @@ -7453,11 +8199,20 @@ multicast-dns-service-types@^1.1.0: resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" multicast-dns@^6.0.1: - version "6.2.2" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.2.tgz#300b6133361f8aaaf2b8d1248e85c363fe5b95a0" + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +multimatch@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" dependencies: - dns-packet "^1.0.1" - thunky "^0.1.0" + array-differ "^1.0.0" + array-union "^1.0.1" + arrify "^1.0.0" + minimatch "^3.0.0" mute-stream@0.0.5: version "0.0.5" @@ -7471,9 +8226,26 @@ mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" -nan@^2.3.0, nan@^2.3.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" +nan@^2.10.0, nan@^2.3.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + +nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-odd "^2.0.0" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" natural-compare@^1.4.0: version "1.4.0" @@ -7486,17 +8258,26 @@ ncname@1.0.x: xml-char-classes "^1.0.0" nearley@^2.7.10: - version "2.11.0" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.11.0.tgz#5e626c79a6cd2f6ab9e7e5d5805e7668967757ae" + version "2.13.0" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.13.0.tgz#6e7b0f4e68bfc3e74c99eaef2eda39e513143439" dependencies: nomnom "~1.6.2" railroad-diagrams "^1.0.0" - randexp "^0.4.2" + randexp "0.4.6" + semver "^5.4.1" negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" +neo-async@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + nice-try@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" @@ -7507,6 +8288,10 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-dir@0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" + node-dir@^0.1.10: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -7520,9 +8305,9 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-forge@0.6.33: - version "0.6.33" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" +node-forge@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" node-gyp@^3.3.1: version "3.6.2" @@ -7617,8 +8402,8 @@ node-sass-chokidar@^0.0.3: stdout-stream "^1.4.0" node-sass@^4.5.3: - version "4.7.2" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" + version "4.8.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.8.3.tgz#d077cc20a08ac06f661ca44fb6f19cd2ed41debb" dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -7632,7 +8417,7 @@ node-sass@^4.5.3: lodash.mergewith "^4.6.0" meow "^3.7.0" mkdirp "^0.5.1" - nan "^2.3.2" + nan "^2.10.0" node-gyp "^3.3.1" npmlog "^4.0.0" request "~2.79.0" @@ -7640,9 +8425,12 @@ node-sass@^4.5.3: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" +nomnom@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" + dependencies: + chalk "~0.4.0" + underscore "~1.6.0" nomnom@~1.6.2: version "1.6.2" @@ -7664,6 +8452,12 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" +nopt@~1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" + dependencies: + abbrev "1" + normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" @@ -7677,7 +8471,7 @@ normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" -normalize-path@^2.0.0, normalize-path@^2.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: @@ -7691,6 +8485,14 @@ normalize-selector@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/normalize-selector/-/normalize-selector-0.2.0.tgz#d0b145eb691189c63a78d201dc4fdb1293ef0c03" +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + normalize-url@^1.4.0: version "1.9.1" resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" @@ -7773,8 +8575,8 @@ number-to-bn@1.7.0: strip-hex-prefix "1.0.0" "nwmatcher@>= 1.3.7 < 2.0.0", "nwmatcher@>= 1.3.9 < 2.0.0": - version "1.4.3" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.3.tgz#64348e3b3d80f035b40ac11563d278f8b72db89c" + version "1.4.4" + resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" oauth-sign@~0.8.1, oauth-sign@~0.8.2: version "0.8.2" @@ -7788,9 +8590,17 @@ object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + object-hash@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.2.0.tgz#e96af0e96981996a1d47f88ead8f74f1ebc4422b" + version "1.3.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.0.tgz#76d9ba6ff113cf8efc0d996102851fe6723963e2" object-inspect@^1.5.0: version "1.5.0" @@ -7804,6 +8614,12 @@ object-keys@^1.0.11, object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + object.assign@^4.0.4, object.assign@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" @@ -7836,6 +8652,12 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + object.values@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a" @@ -7846,8 +8668,8 @@ object.values@^1.0.4: has "^1.0.1" obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" on-finished@~2.3.0: version "2.3.0" @@ -7867,7 +8689,7 @@ once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: onetime@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" onetime@^2.0.0: version "2.0.1" @@ -7875,12 +8697,18 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" -opn@5.2.0, opn@^5.1.0: +opn@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" dependencies: is-wsl "^1.1.0" +opn@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" + dependencies: + is-wsl "^1.1.0" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -7944,17 +8772,39 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@0, osenv@^0.1.0, osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" +osenv@0, osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + +p-cancelable@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.0.tgz#bcb41d35bf6097fc4367a065b6eb84b9b124eff0" + +p-each-series@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" + dependencies: + p-reduce "^1.0.0" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + +p-lazy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-lazy/-/p-lazy-1.0.0.tgz#ec53c802f2ee3ac28f166cc82d0b2b02de27a835" + p-limit@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" @@ -7971,15 +8821,31 @@ p-map@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" -p-try@^1.0.0: +p-reduce@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" -package-json@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" dependencies: - got "^5.0.0" + p-finally "^1.0.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" registry-auth-token "^3.0.1" registry-url "^3.0.3" semver "^5.1.0" @@ -8042,7 +8908,7 @@ parse-glob@^3.0.4: is-extglob "^1.0.0" is-glob "^2.0.0" -parse-json@^2.1.0, parse-json@^2.2.0: +parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: @@ -8065,6 +8931,10 @@ parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" +parse-repo@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/parse-repo/-/parse-repo-1.0.4.tgz#74b91d2cb8675d11b99976a0065f6ce17fa1bcc8" + parse-url@^1.3.0: version "1.3.11" resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-1.3.11.tgz#57c15428ab8a892b1f43869645c711d0e144b554" @@ -8086,10 +8956,18 @@ parseurl@~1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + path-exists@2.1.0, path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -8204,13 +9082,6 @@ pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" -podda@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/podda/-/podda-1.2.2.tgz#15b0edbd334ade145813343f5ecf9c10a71cf500" - dependencies: - babel-runtime "^6.11.6" - immutable "^3.8.1" - portfinder@^1.0.9: version "1.0.13" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" @@ -8219,6 +9090,10 @@ portfinder@^1.0.9: debug "^2.2.0" mkdirp "0.5.x" +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + postcss-bem-linter@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/postcss-bem-linter/-/postcss-bem-linter-3.1.0.tgz#55352412fb481aad0d05148185a990734e1ca030" @@ -8308,17 +9183,17 @@ postcss-html@^0.12.0: remark "^8.0.0" unist-util-find-all-after "^1.0.1" -postcss-html@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.14.0.tgz#90421c382494b67c4f7c62c3a94c73fb4f4947b3" +postcss-html@^0.15.0: + version "0.15.0" + resolved "https://registry.yarnpkg.com/postcss-html/-/postcss-html-0.15.0.tgz#11ba3c07c817d0816f091fe40817a8ecd861300f" dependencies: htmlparser2 "^3.9.2" remark "^9.0.0" unist-util-find-all-after "^1.0.1" postcss-less@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-1.1.3.tgz#6930525271bfe38d5793d33ac09c1a546b87bb51" + version "1.1.5" + resolved "https://registry.yarnpkg.com/postcss-less/-/postcss-less-1.1.5.tgz#a6f0ce180cf3797eeee1d4adc0e9e6d6db665609" dependencies: postcss "^5.2.16" @@ -8355,13 +9230,13 @@ postcss-loader@2.0.8: schema-utils "^0.3.0" postcss-loader@^2.0.9: - version "2.0.10" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.0.10.tgz#090db0540140bd56a7a7f717c41bc29aeef4c674" + version "2.1.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.3.tgz#eb210da734e475a244f76ccd61f9860f5bb3ee09" dependencies: loader-utils "^1.1.0" postcss "^6.0.0" postcss-load-config "^1.2.0" - schema-utils "^0.3.0" + schema-utils "^0.4.0" postcss-media-query-parser@^0.2.3: version "0.2.3" @@ -8595,13 +9470,13 @@ postcss-zindex@^2.0.1: postcss "^5.0.4" uniqs "^2.0.0" -postcss@>=5.0.19, postcss@^6.0.14, postcss@^6.0.17, postcss@^6.0.19, postcss@^6.0.6, postcss@^6.0.8: - version "6.0.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.19.tgz#76a78386f670b9d9494a655bf23ac012effd1555" +postcss@>=5.0.19, postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13, postcss@^6.0.14, postcss@^6.0.16, postcss@^6.0.17, postcss@^6.0.19, postcss@^6.0.20, postcss@^6.0.6, postcss@^6.0.8: + version "6.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d" dependencies: - chalk "^2.3.1" + chalk "^2.3.2" source-map "^0.6.1" - supports-color "^5.2.0" + supports-color "^5.3.0" postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: version "5.2.18" @@ -8612,14 +9487,6 @@ postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0 source-map "^0.5.6" supports-color "^3.2.3" -postcss@^6.0.0, postcss@^6.0.1, postcss@^6.0.13, postcss@^6.0.16: - version "6.0.16" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.16.tgz#112e2fe2a6d2109be0957687243170ea5589e146" - dependencies: - chalk "^2.3.0" - source-map "^0.6.1" - supports-color "^5.1.0" - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -8628,13 +9495,17 @@ prepend-http@^1.0.0, prepend-http@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.10.2.tgz#1af8356d1842276a99a5b5529c82dd9e9ad3cc93" +prettier@^1.10.2, prettier@^1.5.3: + version "1.11.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" pretty-bytes@^4.0.2: version "4.0.2" @@ -8661,9 +9532,9 @@ pretty-format@^21.2.1: ansi-regex "^3.0.0" ansi-styles "^3.2.0" -pretty-format@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.1.0.tgz#2277605b40ed4529ae4db51ff62f4be817647914" +pretty-format@^22.4.3: + version "22.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.3.tgz#f873d780839a9c02e9664c8a082e9ee79eaac16f" dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -8672,9 +9543,9 @@ private@^0.1.6, private@^0.1.7, private@~0.1.5: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" process@^0.11.10: version "0.11.10" @@ -8712,15 +9583,7 @@ promise@^7.1.1: dependencies: asap "~2.0.3" -prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0: - version "15.6.0" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856" - dependencies: - fbjs "^0.8.16" - loose-envify "^1.3.1" - object-assign "^4.1.1" - -prop-types@^15.6.1: +prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.6, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.5.9, prop-types@^15.6.0, prop-types@^15.6.1: version "15.6.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" dependencies: @@ -8732,12 +9595,12 @@ protocols@^1.1.0, protocols@^1.4.0: version "1.4.6" resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.6.tgz#f8bb263ea1b5fd7a7604d26b8be39bd77678bf8a" -proxy-addr@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.2.tgz#6571504f47bb988ec8180253f85dd7e14952bdec" +proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" dependencies: forwarded "~0.1.2" - ipaddr.js "1.5.2" + ipaddr.js "1.6.0" prr@~1.0.1: version "1.0.1" @@ -8763,16 +9626,9 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -pump@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.3.tgz#5dfe8311c33bbf6fc18261f9f34702c47c08a954" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pump@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.0.tgz#7946da1c8d622b098e2ceb2d3476582470829c9d" +pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -8793,6 +9649,10 @@ punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + pure-color@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e" @@ -8820,6 +9680,14 @@ query-string@^4.1.0: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -8863,7 +9731,7 @@ ramda@^0.24.1: version "0.24.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.24.1.tgz#c3b7755197f35b8dc3502228262c4c91ddb6b857" -randexp@^0.4.2: +randexp@0.4.6: version "0.4.6" resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" dependencies: @@ -8884,8 +9752,8 @@ randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: safe-buffer "^5.1.0" randomfill@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.3.tgz#b96b7df587f01dd91726c418f30553b1418e3d62" + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" @@ -8904,8 +9772,8 @@ raw-body@2.3.2: unpipe "1.0.0" rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: - version "1.2.4" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3" + version "1.2.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" dependencies: deep-extend "~0.4.0" ini "~1.3.0" @@ -8934,8 +9802,8 @@ react-blockies@^1.2.2: prop-types "^15.5.10" react-color@^2.11.4: - version "2.13.8" - resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.13.8.tgz#bcc58f79a722b9bfc37c402e68cd18f26970aee4" + version "2.14.0" + resolved "https://registry.yarnpkg.com/react-color/-/react-color-2.14.0.tgz#5828a11c034aa0939befbd888a066ee37d8c3cc2" dependencies: lodash "^4.0.1" material-colors "^1.2.1" @@ -8944,8 +9812,8 @@ react-color@^2.11.4: tinycolor2 "^1.4.1" react-datetime@^2.11.1: - version "2.11.1" - resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.11.1.tgz#11d15081dd7d6729284e21c1b8ea7b975e3bdc7e" + version "2.14.0" + resolved "https://registry.yarnpkg.com/react-datetime/-/react-datetime-2.14.0.tgz#c7859c5b765275d7980f1cca27c03a727ff9ccef" dependencies: create-react-class "^15.5.2" object-assign "^3.0.0" @@ -8976,8 +9844,8 @@ react-dev-utils@^5.0.0: text-table "0.2.0" react-docgen@^2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.20.0.tgz#41a6da483a34a4aaed041a9909f5e61864d681cb" + version "2.20.1" + resolved "https://registry.yarnpkg.com/react-docgen/-/react-docgen-2.20.1.tgz#29c3a1216066f513958abb1a43678860bbd51c7f" dependencies: async "^2.1.4" babel-runtime "^6.9.2" @@ -8996,13 +9864,20 @@ react-dom@^16.2.0: object-assign "^4.1.1" prop-types "^15.6.0" +react-emotion@^9.1.1: + version "9.1.2" + resolved "https://registry.yarnpkg.com/react-emotion/-/react-emotion-9.1.2.tgz#fca18bcb827809de2a5d73fb996b717ed4fada02" + dependencies: + babel-plugin-emotion "^9.1.2" + create-emotion-styled "^9.1.2" + react-error-overlay@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-4.0.0.tgz#d198408a85b4070937a98667f500c832f86bd5d4" react-fuzzy@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.1.tgz#295c2a4079ad39402e05605d9d7accd2db8527b6" + version "0.5.2" + resolved "https://registry.yarnpkg.com/react-fuzzy/-/react-fuzzy-0.5.2.tgz#fc13bf6f0b785e5fefe908724efebec4935eaefe" dependencies: babel-runtime "^6.23.0" classnames "^2.2.5" @@ -9042,16 +9917,22 @@ react-inspector@^2.2.2: is-dom "^1.0.9" react-json-view@^1.13.3: - version "1.16.0" - resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.16.0.tgz#fa8f47bd4be59eb31e809c908cfd705369aae2b7" + version "1.16.1" + resolved "https://registry.yarnpkg.com/react-json-view/-/react-json-view-1.16.1.tgz#ab81fc7db5af70135248704e37741cf097f46604" dependencies: flux "^3.1.3" react-base16-styling "^0.5.3" react-textarea-autosize "^5.1.0" +react-minimal-pie-chart@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/react-minimal-pie-chart/-/react-minimal-pie-chart-3.0.1.tgz#9ccaa94edf9e457bedb1613e6189e833fec0bbe8" + dependencies: + prop-types "^15.5.7" + react-modal@^3.1.10: - version "3.1.11" - resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.1.11.tgz#95c8223fcee7013258ad2d149c38c9f870c89958" + version "3.3.2" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.3.2.tgz#b13da9490653a7c76bc0e9600323eb1079c620e7" dependencies: exenv "^1.2.0" prop-types "^15.5.10" @@ -9070,16 +9951,24 @@ react-reconciler@^0.7.0: object-assign "^4.1.1" prop-types "^15.6.0" +react-redux-toastr@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/react-redux-toastr/-/react-redux-toastr-7.2.3.tgz#5bd1de3feba602283b83837c2b7a376a3be46496" + dependencies: + classnames "^2.2.3" + eventemitter3 "^2.0.3" + prop-types "^15.5.7" + react-redux@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.6.tgz#23ed3a4f986359d68b5212eaaa681e60d6574946" + version "5.0.7" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.7.tgz#0dc1076d9afb4670f993ffaef44b8f8c1155a4c8" dependencies: - hoist-non-react-statics "^2.2.1" + hoist-non-react-statics "^2.5.0" invariant "^2.0.0" - lodash "^4.2.0" - lodash-es "^4.2.0" + lodash "^4.17.5" + lodash-es "^4.17.5" loose-envify "^1.1.0" - prop-types "^15.5.10" + prop-types "^15.6.0" react-router-dom@^4.2.2: version "4.2.2" @@ -9157,25 +10046,32 @@ react-scripts@1.1.0: fsevents "1.1.2" react-side-effect@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.3.tgz#512c25abe0dec172834c4001ec5c51e04d41bc5c" + version "1.1.5" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-1.1.5.tgz#f26059e50ed9c626d91d661b9f3c8bb38cd0ff2d" dependencies: exenv "^1.2.1" shallowequal "^1.0.1" +react-spinners@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.3.2.tgz#faf2ecfdd54b887fa3728bd15e48840b938c7736" + dependencies: + emotion "^9.1.1" + prop-types "^15.5.10" + react-emotion "^9.1.1" + recompose "0.26.0" + react-split-pane@^0.1.74: - version "0.1.74" - resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.74.tgz#cf79fc98b51ab0763fdc778749b810a102b036ca" + version "0.1.77" + resolved "https://registry.yarnpkg.com/react-split-pane/-/react-split-pane-0.1.77.tgz#f0c8cd18d076bbac900248dcf6dbcec02d5340db" dependencies: - "@types/inline-style-prefixer" "^3.0.0" - "@types/react" "^16.0.18" inline-style-prefixer "^3.0.6" prop-types "^15.5.10" react-style-proptype "^3.0.0" react-style-proptype@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.1.0.tgz#c8912fc13460f5b0c1ec1114c729d535b52b8073" + version "3.2.1" + resolved "https://registry.yarnpkg.com/react-style-proptype/-/react-style-proptype-3.2.1.tgz#7cfeb9b87ec7ab9dcbde9715170ed10c11fb86aa" dependencies: prop-types "^15.5.4" @@ -9193,6 +10089,13 @@ react-textarea-autosize@^5.1.0, react-textarea-autosize@^5.2.1: dependencies: prop-types "^15.6.0" +react-tooltip@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-3.4.0.tgz#037f38f797c3e6b1b58d2534ccc8c2c76af4f52d" + dependencies: + classnames "^2.2.5" + prop-types "^15.6.0" + react-transition-group@^1.1.2, react-transition-group@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-1.2.1.tgz#e11f72b257f921b213229a774df46612346c7ca6" @@ -9229,12 +10132,12 @@ reactcss@^1.2.0: dependencies: lodash "^4.0.1" -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" +read-chunk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655" dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" + pify "^3.0.0" + safe-buffer "^5.1.1" read-pkg-up@^1.0.1: version "1.0.1" @@ -9281,14 +10184,14 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, readable-stream@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" dependencies: core-util-is "~1.0.0" inherits "~2.0.3" isarray "~1.0.0" - process-nextick-args "~1.0.6" + process-nextick-args "~2.0.0" safe-buffer "~5.1.1" string_decoder "~1.0.3" util-deprecate "~1.0.1" @@ -9328,7 +10231,7 @@ readline2@^1.0.1: is-fullwidth-code-point "^1.0.0" mute-stream "0.0.5" -recast@^0.12.6: +recast@^0.12.5, recast@^0.12.6: version "0.12.9" resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" dependencies: @@ -9338,6 +10241,15 @@ recast@^0.12.6: private "~0.1.5" source-map "~0.6.1" +recast@^0.14.1: + version "0.14.7" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.7.tgz#4f1497c2b5826d42a66e8e3c9d80c512983ff61d" + dependencies: + ast-types "0.11.3" + esprima "~4.0.0" + private "~0.1.5" + source-map "~0.6.1" + recast@~0.11.12: version "0.11.23" resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" @@ -9353,6 +10265,15 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" +recompose@0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/recompose/-/recompose-0.26.0.tgz#9babff039cb72ba5bd17366d55d7232fbdfb2d30" + dependencies: + change-emitter "^0.1.2" + fbjs "^0.8.1" + hoist-non-react-statics "^2.3.1" + symbol-observable "^1.0.4" + recursive-readdir@2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" @@ -9452,6 +10373,17 @@ regex-cache@^0.4.2: dependencies: is-equal-shallow "^0.1.3" +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexpp@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.0.1.tgz#d857c3a741dce075c2848dcb019a0a975b190d43" + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" @@ -9469,8 +10401,8 @@ regexpu-core@^2.0.0: regjsparser "^0.1.4" registry-auth-token@^3.0.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + version "3.3.2" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" dependencies: rc "^1.1.6" safe-buffer "^5.0.1" @@ -9607,7 +10539,7 @@ repeat-element@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" -repeat-string@^1.5.2, repeat-string@^1.5.4: +repeat-string@^1.5.2, repeat-string@^1.5.4, repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -9623,13 +10555,17 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -replace-ext@1.0.0: +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +replace-ext@1.0.0, replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" request@2, request@^2.55.0, request@^2.79.0, request@^2.83.0: - version "2.83.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" dependencies: aws-sign2 "~0.7.0" aws4 "^1.6.0" @@ -9775,16 +10711,26 @@ resolve-pathname@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879" +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" resolve@^1.1.6, resolve@^1.3.2, resolve@^1.3.3, resolve@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + version "1.6.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" dependencies: path-parse "^1.0.5" +responselike@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + dependencies: + lowercase-keys "^1.0.0" + restore-cursor@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" @@ -9813,12 +10759,16 @@ right-pad@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/right-pad/-/right-pad-1.0.1.tgz#8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0" -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" +rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -9839,7 +10789,7 @@ run-async@^0.1.0: dependencies: once "^1.3.0" -run-async@^2.2.0: +run-async@^2.0.0, run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" dependencies: @@ -9869,9 +10819,9 @@ rx@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" -rxjs@^5.4.2: - version "5.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.7.tgz#afb3d1642b069b2fbf203903d6501d1acb4cda27" +rxjs@^5.4.2, rxjs@^5.5.2: + version "5.5.8" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.8.tgz#b2b0809a57614ad6254c03d7446dea0d83ca3791" dependencies: symbol-observable "1.0.1" @@ -9879,6 +10829,12 @@ safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, s version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + sane@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/sane/-/sane-1.6.0.tgz#9610c452307a135d29c1fdfe2547034180c46775" @@ -9901,13 +10857,13 @@ sass-graph@^2.1.1, sass-graph@^2.2.4: yargs "^7.0.0" sass-loader@^6.0.6: - version "6.0.6" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" + version "6.0.7" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" dependencies: - async "^2.1.5" - clone-deep "^0.3.0" + clone-deep "^2.0.1" loader-utils "^1.0.1" lodash.tail "^4.1.1" + neo-async "^2.5.0" pify "^3.0.0" sax@^1.1.4, sax@^1.2.1, sax@~1.2.1: @@ -9920,12 +10876,16 @@ schema-utils@^0.3.0: dependencies: ajv "^5.0.0" -schema-utils@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.3.tgz#e2a594d3395834d5e15da22b48be13517859458e" +schema-utils@^0.4.0, schema-utils@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" dependencies: - ajv "^5.0.0" - ajv-keywords "^2.1.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +scoped-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" scss-tokenizer@^0.2.3: version "0.2.3" @@ -9939,10 +10899,10 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" selfsigned@^1.9.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" + version "1.10.2" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" dependencies: - node-forge "0.6.33" + node-forge "0.7.1" semver-diff@^2.0.0: version "2.1.0" @@ -9950,7 +10910,7 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@5.5.0, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -9958,14 +10918,14 @@ semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" -send@0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.1.tgz#a70e1ca21d1382c11d0d9f6231deb281080d7ab3" +send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" dependencies: debug "2.6.9" - depd "~1.1.1" + depd "~1.1.2" destroy "~1.0.4" - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" etag "~1.8.1" fresh "0.5.2" @@ -9974,7 +10934,7 @@ send@0.16.1: ms "2.0.0" on-finished "~2.3.0" range-parser "~1.2.0" - statuses "~1.3.1" + statuses "~1.4.0" serialize-javascript@^1.4.0: version "1.4.0" @@ -10002,14 +10962,14 @@ serve-index@^1.7.2: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.1: - version "1.13.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.1.tgz#4c57d53404a761d8f2e7c1e8a18a47dbf278a719" +serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" dependencies: - encodeurl "~1.0.1" + encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.2" - send "0.16.1" + send "0.16.2" serviceworker-cache-polyfill@^4.0.0: version "4.0.0" @@ -10023,6 +10983,24 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" +set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + +set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + setimmediate@^1.0.4, setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -10036,19 +11014,18 @@ setprototypeof@1.1.0: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.9" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.9.tgz#98f64880474b74f4a38b8da9d3c0f2d104633e7d" + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" +shallow-clone@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" dependencies: is-extendable "^0.1.1" - kind-of "^2.0.1" - lazy-cache "^0.2.3" + kind-of "^5.0.0" mixin-object "^2.0.1" shallowequal@^0.2.2: @@ -10088,7 +11065,7 @@ shelljs@0.7.6: interpret "^1.0.0" rechoir "^0.6.2" -shelljs@^0.7.0, shelljs@^0.7.8: +shelljs@^0.7.8: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" dependencies: @@ -10096,6 +11073,14 @@ shelljs@^0.7.0, shelljs@^0.7.8: interpret "^1.0.0" rechoir "^0.6.2" +shelljs@^0.8.0, shelljs@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" @@ -10122,6 +11107,33 @@ slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -10158,17 +11170,43 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + dependencies: + is-plain-obj "^1.0.0" + source-list-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" +source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" dependencies: source-map "^0.5.6" -source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.6: +source-map-support@^0.5.3: + version "0.5.4" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8" + dependencies: + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + +source-map@0.5.x, source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" @@ -10178,7 +11216,7 @@ source-map@^0.4.2, source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -10189,23 +11227,31 @@ spawn-sync@^1.0.15: concat-stream "^1.4.7" os-shim "^0.1.2" -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" +spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" dependencies: - spdx-license-ids "^1.0.2" + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" +spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" dependencies: debug "^2.6.8" detect-node "^2.0.3" @@ -10230,6 +11276,12 @@ specificity@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.3.2.tgz#99e6511eceef0f8d9b57924937aac2cb13d13c42" +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + split2@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/split2/-/split2-2.2.0.tgz#186b2575bcf83e85b7d18465756238ee4ee42493" @@ -10253,8 +11305,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + version "1.14.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -10266,11 +11318,11 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -ssri@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.1.0.tgz#2cbf1df36b74d0fc91fcf89640a4b3e1d10b1899" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" dependencies: - safe-buffer "^5.1.0" + safe-buffer "^5.1.1" staged-git-files@1.0.0: version "1.0.0" @@ -10293,14 +11345,17 @@ state-toggle@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.0.tgz#d20f9a616bb4f0c3b98b91922d25b640aa2bc425" -"statuses@>= 1.3.1 < 2": +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.3.1 < 2", statuses@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - stdout-stream@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" @@ -10340,8 +11395,8 @@ stream-each@^1.1.0: stream-shift "^1.0.0" stream-http@^2.7.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + version "2.8.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -10369,6 +11424,10 @@ string-length@^1.0.1: dependencies: strip-ansi "^3.0.0" +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -10400,9 +11459,9 @@ string.prototype.padstart@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" -string_decoder@^1.0.0, string_decoder@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" +string_decoder@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.0.tgz#384f322ee8a848e500effde99901bba849c5d403" dependencies: safe-buffer "~5.1.0" @@ -10410,6 +11469,12 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + stringify-entities@^1.0.1: version "1.3.1" resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.1.tgz#b150ec2d72ac4c1b5f324b51fb6b28c9cdff058c" @@ -10443,6 +11508,17 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + dependencies: + first-chunk-stream "^2.0.0" + strip-bom "^2.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10533,8 +11609,8 @@ stylelint-selector-bem-pattern@^2.0.0: stylelint ">=3.0.2" stylelint@>=3.0.2: - version "9.1.2" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.1.2.tgz#4a503f6f32bd456e5313f4a74103634c987867ec" + version "9.1.3" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-9.1.3.tgz#8260f2a221b98e4afafd9b2b8a785d2e38cbb8a4" dependencies: autoprefixer "^8.0.0" balanced-match "^1.0.0" @@ -10558,7 +11634,7 @@ stylelint@>=3.0.2: normalize-selector "^0.2.0" pify "^3.0.0" postcss "^6.0.16" - postcss-html "^0.14.0" + postcss-html "^0.15.0" postcss-less "^1.1.0" postcss-media-query-parser "^0.2.3" postcss-reporter "^5.0.0" @@ -10621,6 +11697,14 @@ stylelint@^8.4.0: svg-tags "^1.0.0" table "^4.0.1" +stylis-rule-sheet@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz#44e64a2b076643f4b52e5ff71efc04d8c3c4a430" + +stylis@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.0.tgz#016fa239663d77f868fef5b67cf201c4b7c701e1" + sugarss@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-1.0.1.tgz#be826d9003e0f247735f92365dc3fd7f1bae9e44" @@ -10637,18 +11721,12 @@ supports-color@^3.1.2, supports-color@^3.2.3: dependencies: has-flag "^1.0.0" -supports-color@^4.0.0, supports-color@^4.2.1: +supports-color@^4.2.1: version "4.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" dependencies: has-flag "^2.0.0" -supports-color@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.1.0.tgz#058a021d1b619f7ddf3980d712ea3590ce7de3d5" - dependencies: - has-flag "^2.0.0" - supports-color@^5.2.0, supports-color@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" @@ -10684,8 +11762,8 @@ sw-precache-webpack-plugin@0.11.4: uglify-js "^3.0.13" sw-precache@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.0.tgz#eb6225ce580ceaae148194578a0ad01ab7ea199c" + version "5.2.1" + resolved "https://registry.yarnpkg.com/sw-precache/-/sw-precache-5.2.1.tgz#06134f319eec68f3b9583ce9a7036b1c119f7179" dependencies: dom-urls "^1.1.0" es6-promise "^4.0.5" @@ -10696,7 +11774,7 @@ sw-precache@^5.1.1: mkdirp "^0.5.1" pretty-bytes "^4.0.2" sw-toolbox "^3.4.0" - update-notifier "^1.0.3" + update-notifier "^2.3.0" sw-toolbox@^3.4.0: version "3.6.0" @@ -10713,15 +11791,15 @@ symbol-observable@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" -symbol-observable@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.1.0.tgz#5c68fd8d54115d9dfb72a84720549222e8db9b32" +symbol-observable@^1.0.3, symbol-observable@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" "symbol-tree@>= 3.1.0 < 4.0.0", symbol-tree@^3.2.1: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" -table@4.0.2, table@^4.0.1: +table@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" dependencies: @@ -10732,6 +11810,17 @@ table@4.0.2, table@^4.0.1: slice-ansi "1.0.0" string-width "^2.1.1" +table@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + dependencies: + ajv "^6.0.1" + ajv-keywords "^3.0.0" + chalk "^2.1.0" + lodash "^4.17.4" + slice-ansi "1.0.0" + string-width "^2.1.1" + taffydb@2.7.2: version "2.7.2" resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.7.2.tgz#7bf8106a5c1a48251b3e3bc0a0e1732489fd0dc8" @@ -10740,6 +11829,10 @@ tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" +tapable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" + tar-pack@^3.4.0: version "3.4.1" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" @@ -10761,12 +11854,25 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" +temp@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + test-exclude@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26" + version "4.2.1" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" dependencies: arrify "^1.0.1" - micromatch "^2.3.11" + micromatch "^3.1.8" object-assign "^4.1.0" read-pkg-up "^1.0.1" require-main-filename "^1.0.1" @@ -10775,10 +11881,14 @@ text-extensions@^1.0.0: version "1.7.0" resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.7.0.tgz#faaaba2625ed746d568a23e4d0aacd9bf08a8b39" -text-table@0.2.0, text-table@~0.2.0: +text-table@0.2.0, text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" +textextensions@2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286" + throat@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/throat/-/throat-3.2.0.tgz#50cb0670edbc40237b9e347d7e1f88e4620af836" @@ -10798,21 +11908,21 @@ through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3, t version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -thunky@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" +thunky@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" time-stamp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" timers-browserify@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" dependencies: setimmediate "^1.0.4" @@ -10852,13 +11962,41 @@ to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + toposort@^1.0.0: version "1.0.6" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" +touch@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/touch/-/touch-1.0.0.tgz#449cbe2dbae5a8c8038e30d71fa0ff464947c4de" + dependencies: + nopt "~1.0.10" + tough-cookie@^2.2.0, tough-cookie@^2.3.2, tough-cookie@~2.3.0, tough-cookie@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" dependencies: punycode "^1.4.1" @@ -10924,12 +12062,12 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-is@~1.6.15: - version "1.6.15" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" +type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" dependencies: media-typer "0.3.0" - mime-types "~2.1.15" + mime-types "~2.1.18" typedarray@^0.0.6: version "0.0.6" @@ -10940,17 +12078,17 @@ ua-parser-js@^0.7.9: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" uglify-es@^3.3.4: - version "3.3.7" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.7.tgz#d1249af668666aba7cb1163e277455be9eb393cf" + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" dependencies: commander "~2.13.0" source-map "~0.6.1" uglify-js@3.3.x, uglify-js@^3.0.13: - version "3.3.7" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.7.tgz#28463e7c7451f89061d2b235e30925bf5625e14d" + version "3.3.16" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.16.tgz#23ba13efa27aa00885be7417819e8a9787f94028" dependencies: - commander "~2.13.0" + commander "~2.15.0" source-map "~0.6.1" uglify-js@^2.6, uglify-js@^2.8.29: @@ -10975,12 +12113,12 @@ uglifyjs-webpack-plugin@^0.4.6: webpack-sources "^1.0.1" uglifyjs-webpack-plugin@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.1.6.tgz#f4ba8449edcf17835c18ba6ae99b9d610857fb19" + version "1.2.4" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043" dependencies: - cacache "^10.0.1" + cacache "^10.0.4" find-cache-dir "^1.0.0" - schema-utils "^0.4.2" + schema-utils "^0.4.5" serialize-javascript "^1.4.0" source-map "^0.6.1" uglify-es "^3.3.4" @@ -10995,6 +12133,10 @@ underscore@~1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.4.4.tgz#61a6a32010622afa07963bf325203cf12239d604" +underscore@~1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" + unherit@^1.0.4: version "1.1.0" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.0.tgz#6b9aaedfbf73df1756ad9e316dd981885840cd7d" @@ -11014,6 +12156,15 @@ unified@^6.0.0: x-is-function "^1.0.4" x-is-string "^0.1.0" +union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" @@ -11086,30 +12237,57 @@ unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" -unzip-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" -update-notifier@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" +untildify@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +upath@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" + +update-notifier@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.4.0.tgz#f9b4c700fbfd4ec12c811587258777d563d8c866" dependencies: - boxen "^0.6.0" - chalk "^1.0.0" - configstore "^2.0.0" + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-ci "^1.0.10" + is-installed-globally "^0.1.0" is-npm "^1.0.0" - latest-version "^2.0.0" - lazy-req "^1.1.0" + latest-version "^3.0.0" semver-diff "^2.0.0" - xdg-basedir "^2.0.0" + xdg-basedir "^3.0.0" upper-case@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" +uri-js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" + dependencies: + punycode "^2.1.0" + urijs@^1.16.1: - version "1.19.0" - resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.0.tgz#d8aa284d0e7469703a6988ad045c4cbfdf08ada0" + version "1.19.1" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" url-loader@0.6.2, url-loader@^0.6.2: version "0.6.2" @@ -11125,6 +12303,12 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + dependencies: + prepend-http "^2.0.0" + url-parse@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" @@ -11139,6 +12323,10 @@ url-parse@^1.1.8: querystringify "~1.0.0" requires-port "~1.0.0" +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -11146,6 +12334,12 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" +use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -11168,7 +12362,7 @@ utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" -uuid@^2.0.1, uuid@^2.0.2: +uuid@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -11176,12 +12370,16 @@ uuid@^3.0.0, uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" +v8-compile-cache@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" + validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" value-equal@^0.4.0: version "0.4.0" @@ -11235,6 +12433,36 @@ vfile@^2.0.0: unist-util-stringify-position "^1.0.0" vfile-message "^1.0.0" +vinyl-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" + dependencies: + graceful-fs "^4.1.2" + pify "^2.3.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + strip-bom-stream "^2.0.0" + vinyl "^1.1.0" + +vinyl@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" @@ -11273,16 +12501,16 @@ watch@~0.10.0: resolved "https://registry.yarnpkg.com/watch/-/watch-0.10.0.tgz#77798b2da0f9910d595f1ace5b0c2258521f21dc" watchpack@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + version "1.5.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" dependencies: - async "^2.1.2" - chokidar "^1.7.0" + chokidar "^2.0.2" graceful-fs "^4.1.2" + neo-async "^2.5.0" wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" dependencies: minimalistic-assert "^1.0.0" @@ -11298,6 +12526,42 @@ webidl-conversions@^4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" +webpack-addons@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a" + dependencies: + jscodeshift "^0.4.0" + +webpack-cli@^2.0.9: + version "2.0.13" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.0.13.tgz#6e2bd9ef91345344737217e22e29001ad8537518" + dependencies: + chalk "^2.3.2" + cross-spawn "^6.0.5" + diff "^3.5.0" + enhanced-resolve "^4.0.0" + glob-all "^3.1.0" + global-modules "^1.0.0" + got "^8.2.0" + inquirer "^5.1.0" + interpret "^1.0.4" + jscodeshift "^0.5.0" + listr "^0.13.0" + loader-utils "^1.1.0" + lodash "^4.17.5" + log-symbols "^2.2.0" + mkdirp "^0.5.1" + p-each-series "^1.0.0" + p-lazy "^1.0.0" + prettier "^1.5.3" + resolve-cwd "^2.0.0" + supports-color "^5.3.0" + v8-compile-cache "^1.1.2" + webpack-addons "^1.1.5" + yargs "^11.0.0" + yeoman-environment "^2.0.0" + yeoman-generator "^2.0.3" + webpack-dev-middleware@^1.11.0, webpack-dev-middleware@^1.12.2: version "1.12.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" @@ -11341,8 +12605,8 @@ webpack-dev-server@2.9.4: yargs "^6.6.0" webpack-hot-middleware@^2.21.0: - version "2.21.0" - resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.0.tgz#7b3c113a7a4b301c91e0749573c7aab28b414b52" + version "2.21.2" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.21.2.tgz#2e2aa65563b8b32546b67e53b5a9667dcd80f327" dependencies: ansi-html "0.0.7" html-entities "^1.2.0" @@ -11390,14 +12654,14 @@ webpack@3.8.1: webpack-sources "^1.0.1" yargs "^8.0.2" -webpack@^3.0.0, webpack@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.10.0.tgz#5291b875078cf2abf42bdd23afe3f8f96c17d725" +webpack@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" dependencies: acorn "^5.0.0" acorn-dynamic-import "^2.0.0" - ajv "^5.1.5" - ajv-keywords "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" async "^2.1.2" enhanced-resolve "^3.4.0" escope "^3.6.0" @@ -11475,11 +12739,11 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" -widest-line@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" +widest-line@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" dependencies: - string-width "^1.0.1" + string-width "^2.1.1" window-size@0.1.0: version "0.1.0" @@ -11502,11 +12766,10 @@ wordwrap@~1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" worker-farm@^1.3.1, worker-farm@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.5.2.tgz#32b312e5dc3d5d45d79ef44acc2587491cd729ae" + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" dependencies: - errno "^0.1.4" - xtend "^4.0.1" + errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" @@ -11519,7 +12782,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^1.1.2: +write-file-atomic@^1.2.0: version "1.3.4" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" dependencies: @@ -11549,12 +12812,6 @@ x-is-string@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82" -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" - xdg-basedir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" @@ -11571,7 +12828,7 @@ xml-char-classes@^1.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -11579,6 +12836,10 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -11601,6 +12862,29 @@ yargs-parser@^7.0.0: dependencies: camelcase "^4.1.0" +yargs-parser@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + dependencies: + camelcase "^4.1.0" + +yargs@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^9.0.2" + yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" @@ -11655,6 +12939,12 @@ yargs@^8.0.1, yargs@^8.0.2: y18n "^3.2.1" yargs-parser "^7.0.0" +yargs@~1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" + dependencies: + minimist "^0.1.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -11663,3 +12953,51 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" + +yeoman-environment@^2.0.0, yeoman-environment@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.0.5.tgz#84f22bafa84088971fe99ea85f654a3a3dd2b693" + dependencies: + chalk "^2.1.0" + debug "^3.1.0" + diff "^3.3.1" + escape-string-regexp "^1.0.2" + globby "^6.1.0" + grouped-queue "^0.3.3" + inquirer "^3.3.0" + is-scoped "^1.0.0" + lodash "^4.17.4" + log-symbols "^2.1.0" + mem-fs "^1.1.0" + text-table "^0.2.0" + untildify "^3.0.2" + +yeoman-generator@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.3.tgz#19426ed22687ffe05d31526c3f1c2cf67ba768f3" + dependencies: + async "^2.6.0" + chalk "^2.3.0" + cli-table "^0.3.1" + cross-spawn "^5.1.0" + dargs "^5.1.0" + dateformat "^3.0.2" + debug "^3.1.0" + detect-conflict "^1.0.0" + error "^7.0.2" + find-up "^2.1.0" + github-username "^4.0.0" + istextorbinary "^2.1.0" + lodash "^4.17.4" + make-dir "^1.1.0" + mem-fs-editor "^3.0.2" + minimist "^1.2.0" + pretty-bytes "^4.0.2" + read-chunk "^2.1.0" + read-pkg-up "^3.0.0" + rimraf "^2.6.2" + run-async "^2.0.0" + shelljs "^0.8.0" + text-table "^0.2.0" + through2 "^2.0.0" + yeoman-environment "^2.0.5"