diff --git a/.gitignore b/.gitignore index f68dde665..dc604bc20 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ scTopics # Coverage directory used by tools like istanbul coverage coverage.json +coverageEnv # node-waf configuration .lock-wscript diff --git a/.solcover.js b/.solcover.js index caaf89b4c..b6c133c07 100644 --- a/.solcover.js +++ b/.solcover.js @@ -1,5 +1,9 @@ module.exports = { norpc: true, testCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle test --network coverage', - skipFiles: ['lifecycle/Migrations.sol'] + compileCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle compile --network coverage', + skipFiles: [ + 'lifecycle/Migrations.sol', + 'mocks' + ] } diff --git a/.travis.yml b/.travis.yml index 3cb537774..af2f39856 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,13 @@ node_js: cache: directories: - node_modules +env: + - + - SOLIDITY_COVERAGE=true +matrix: + fast_finish: true + allow_failures: + - env: SOLIDITY_COVERAGE=true before_script: - truffle version script: diff --git a/test/mocks/BasicTokenMock.sol b/contracts/mocks/BasicTokenMock.sol similarity index 85% rename from test/mocks/BasicTokenMock.sol rename to contracts/mocks/BasicTokenMock.sol index 46c9eaa90..292982af1 100644 --- a/test/mocks/BasicTokenMock.sol +++ b/contracts/mocks/BasicTokenMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/token/BasicToken.sol'; +import '../token/BasicToken.sol'; // mock class using BasicToken diff --git a/test/mocks/BurnableTokenMock.sol b/contracts/mocks/BurnableTokenMock.sol similarity index 83% rename from test/mocks/BurnableTokenMock.sol rename to contracts/mocks/BurnableTokenMock.sol index 188084ef5..3969e33d4 100644 --- a/test/mocks/BurnableTokenMock.sol +++ b/contracts/mocks/BurnableTokenMock.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.18; -import '../../contracts/token/BurnableToken.sol'; +import '../token/BurnableToken.sol'; contract BurnableTokenMock is BurnableToken { diff --git a/test/mocks/CappedCrowdsaleImpl.sol b/contracts/mocks/CappedCrowdsaleImpl.sol similarity index 84% rename from test/mocks/CappedCrowdsaleImpl.sol rename to contracts/mocks/CappedCrowdsaleImpl.sol index 3177b864a..9e2014799 100644 --- a/test/mocks/CappedCrowdsaleImpl.sol +++ b/contracts/mocks/CappedCrowdsaleImpl.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/crowdsale/CappedCrowdsale.sol'; +import '../crowdsale/CappedCrowdsale.sol'; contract CappedCrowdsaleImpl is CappedCrowdsale { diff --git a/test/mocks/DayLimitMock.sol b/contracts/mocks/DayLimitMock.sol similarity index 100% rename from test/mocks/DayLimitMock.sol rename to contracts/mocks/DayLimitMock.sol diff --git a/test/mocks/DetailedERC20Mock.sol b/contracts/mocks/DetailedERC20Mock.sol similarity index 68% rename from test/mocks/DetailedERC20Mock.sol rename to contracts/mocks/DetailedERC20Mock.sol index 33d42299a..9687cad26 100644 --- a/test/mocks/DetailedERC20Mock.sol +++ b/contracts/mocks/DetailedERC20Mock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/token/StandardToken.sol'; -import '../../contracts/token/DetailedERC20.sol'; +import '../token/StandardToken.sol'; +import '../token/DetailedERC20.sol'; contract DetailedERC20Mock is StandardToken, DetailedERC20 { function DetailedERC20Mock(string _name, string _symbol, uint8 _decimals) DetailedERC20(_name, _symbol, _decimals) public {} diff --git a/test/mocks/ERC23TokenMock.sol b/contracts/mocks/ERC23TokenMock.sol similarity index 94% rename from test/mocks/ERC23TokenMock.sol rename to contracts/mocks/ERC23TokenMock.sol index c234f4c9f..45666389d 100644 --- a/test/mocks/ERC23TokenMock.sol +++ b/contracts/mocks/ERC23TokenMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/token/BasicToken.sol'; +import '../token/BasicToken.sol'; contract ERC23ContractInterface { diff --git a/test/mocks/FinalizableCrowdsaleImpl.sol b/contracts/mocks/FinalizableCrowdsaleImpl.sol similarity index 83% rename from test/mocks/FinalizableCrowdsaleImpl.sol rename to contracts/mocks/FinalizableCrowdsaleImpl.sol index da36a9e7d..462166714 100644 --- a/test/mocks/FinalizableCrowdsaleImpl.sol +++ b/contracts/mocks/FinalizableCrowdsaleImpl.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/crowdsale/FinalizableCrowdsale.sol'; +import '../crowdsale/FinalizableCrowdsale.sol'; contract FinalizableCrowdsaleImpl is FinalizableCrowdsale { diff --git a/test/mocks/ForceEther.sol b/contracts/mocks/ForceEther.sol similarity index 100% rename from test/mocks/ForceEther.sol rename to contracts/mocks/ForceEther.sol diff --git a/test/mocks/HasNoEtherTest.sol b/contracts/mocks/HasNoEtherTest.sol similarity index 100% rename from test/mocks/HasNoEtherTest.sol rename to contracts/mocks/HasNoEtherTest.sol diff --git a/test/mocks/InsecureTargetBounty.sol b/contracts/mocks/InsecureTargetBounty.sol similarity index 100% rename from test/mocks/InsecureTargetBounty.sol rename to contracts/mocks/InsecureTargetBounty.sol diff --git a/test/mocks/LimitBalanceMock.sol b/contracts/mocks/LimitBalanceMock.sol similarity index 80% rename from test/mocks/LimitBalanceMock.sol rename to contracts/mocks/LimitBalanceMock.sol index d14dc6bdb..8343d25d9 100644 --- a/test/mocks/LimitBalanceMock.sol +++ b/contracts/mocks/LimitBalanceMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/LimitBalance.sol'; +import '../LimitBalance.sol'; // mock class using LimitBalance diff --git a/test/mocks/PausableMock.sol b/contracts/mocks/PausableMock.sol similarity index 89% rename from test/mocks/PausableMock.sol rename to contracts/mocks/PausableMock.sol index e5636a1d0..908f60a1f 100644 --- a/test/mocks/PausableMock.sol +++ b/contracts/mocks/PausableMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/lifecycle/Pausable.sol'; +import '../lifecycle/Pausable.sol'; // mock class using Pausable diff --git a/test/mocks/PausableTokenMock.sol b/contracts/mocks/PausableTokenMock.sol similarity index 83% rename from test/mocks/PausableTokenMock.sol rename to contracts/mocks/PausableTokenMock.sol index c7e362d6e..1f110c9c3 100644 --- a/test/mocks/PausableTokenMock.sol +++ b/contracts/mocks/PausableTokenMock.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.18; -import '../../contracts/token/PausableToken.sol'; +import '../token/PausableToken.sol'; // mock class using PausableToken contract PausableTokenMock is PausableToken { diff --git a/test/mocks/PullPaymentMock.sol b/contracts/mocks/PullPaymentMock.sol similarity index 85% rename from test/mocks/PullPaymentMock.sol rename to contracts/mocks/PullPaymentMock.sol index cec38db35..42efa55cd 100644 --- a/test/mocks/PullPaymentMock.sol +++ b/contracts/mocks/PullPaymentMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/payment/PullPayment.sol'; +import '../payment/PullPayment.sol'; // mock class using PullPayment diff --git a/test/mocks/RBACMock.sol b/contracts/mocks/RBACMock.sol similarity index 96% rename from test/mocks/RBACMock.sol rename to contracts/mocks/RBACMock.sol index ae768a96a..263f82856 100644 --- a/test/mocks/RBACMock.sol +++ b/contracts/mocks/RBACMock.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.8; -import '../../contracts/ownership/rbac/RBAC.sol'; +import '../ownership/rbac/RBAC.sol'; contract RBACMock is RBAC { diff --git a/test/mocks/ReentrancyAttack.sol b/contracts/mocks/ReentrancyAttack.sol similarity index 100% rename from test/mocks/ReentrancyAttack.sol rename to contracts/mocks/ReentrancyAttack.sol diff --git a/test/mocks/ReentrancyMock.sol b/contracts/mocks/ReentrancyMock.sol similarity index 94% rename from test/mocks/ReentrancyMock.sol rename to contracts/mocks/ReentrancyMock.sol index b6e5ae782..12f1434e8 100644 --- a/test/mocks/ReentrancyMock.sol +++ b/contracts/mocks/ReentrancyMock.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.18; -import '../../contracts/ReentrancyGuard.sol'; +import '../ReentrancyGuard.sol'; import './ReentrancyAttack.sol'; contract ReentrancyMock is ReentrancyGuard { diff --git a/test/mocks/RefundableCrowdsaleImpl.sol b/contracts/mocks/RefundableCrowdsaleImpl.sol similarity index 84% rename from test/mocks/RefundableCrowdsaleImpl.sol rename to contracts/mocks/RefundableCrowdsaleImpl.sol index a233d6130..ea9d4edbc 100644 --- a/test/mocks/RefundableCrowdsaleImpl.sol +++ b/contracts/mocks/RefundableCrowdsaleImpl.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/crowdsale/RefundableCrowdsale.sol'; +import '../crowdsale/RefundableCrowdsale.sol'; contract RefundableCrowdsaleImpl is RefundableCrowdsale { diff --git a/test/mocks/SafeERC20Helper.sol b/contracts/mocks/SafeERC20Helper.sol similarity index 95% rename from test/mocks/SafeERC20Helper.sol rename to contracts/mocks/SafeERC20Helper.sol index 37bd42b27..c050c4fb6 100644 --- a/test/mocks/SafeERC20Helper.sol +++ b/contracts/mocks/SafeERC20Helper.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/token/ERC20.sol'; -import '../../contracts/token/SafeERC20.sol'; +import '../token/ERC20.sol'; +import '../token/SafeERC20.sol'; contract ERC20FailingMock is ERC20 { function transfer(address, uint256) public returns (bool) { diff --git a/test/mocks/SafeMathMock.sol b/contracts/mocks/SafeMathMock.sol similarity index 88% rename from test/mocks/SafeMathMock.sol rename to contracts/mocks/SafeMathMock.sol index 6213f5041..f7b331173 100644 --- a/test/mocks/SafeMathMock.sol +++ b/contracts/mocks/SafeMathMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/math/SafeMath.sol'; +import '../math/SafeMath.sol'; contract SafeMathMock { diff --git a/test/mocks/SecureTargetBounty.sol b/contracts/mocks/SecureTargetBounty.sol similarity index 100% rename from test/mocks/SecureTargetBounty.sol rename to contracts/mocks/SecureTargetBounty.sol diff --git a/test/mocks/StandardTokenMock.sol b/contracts/mocks/StandardTokenMock.sol similarity index 85% rename from test/mocks/StandardTokenMock.sol rename to contracts/mocks/StandardTokenMock.sol index d2fbf84e4..5aaacc478 100644 --- a/test/mocks/StandardTokenMock.sol +++ b/contracts/mocks/StandardTokenMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.18; -import '../../contracts/token/StandardToken.sol'; +import '../token/StandardToken.sol'; // mock class using StandardToken diff --git a/package-lock.json b/package-lock.json index 5cf3e0e29..b3c6f2563 100644 --- a/package-lock.json +++ b/package-lock.json @@ -121,7 +121,7 @@ "anymatch": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha1-VT3Lj5HjyImEXf26NMd3IbkLnXo=", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { "micromatch": "2.3.11", @@ -165,7 +165,7 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-union": { @@ -1058,7 +1058,7 @@ "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha1-qRlH2h9KUW6jjltOwOw3c2deCIY=", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", "dev": true }, "bcrypt-pbkdf": { @@ -1077,6 +1077,10 @@ "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", "dev": true }, + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "dev": true + }, "binary-extensions": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz", @@ -1086,7 +1090,7 @@ "bindings": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha1-s0b27PapX1qBXFg5/HzbIlAvHtc=", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", "dev": true }, "bip39": { @@ -1122,7 +1126,7 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", "dev": true }, "boom": { @@ -1347,7 +1351,7 @@ "chai-as-promised": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha1-CGRdgl3rhpbuYXJdv1kMAS6wDKA=", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", "dev": true, "requires": { "check-error": "1.0.2" @@ -1401,7 +1405,6 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -1419,7 +1422,7 @@ "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { "inherits": "2.0.3", @@ -1790,7 +1793,7 @@ "deferred-leveldown": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha1-Os0uC3XRZpkkvApLZChRExFz4es=", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", "dev": true, "requires": { "abstract-leveldown": "2.6.2" @@ -2600,6 +2603,15 @@ "webpack": "3.5.4" } }, + "ethereumjs-testrpc-sc": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/ethereumjs-testrpc-sc/-/ethereumjs-testrpc-sc-6.0.7.tgz", + "integrity": "sha512-6X/FknTe702L0UGtJ3V3qlh6HNavJkuuRxB18fbITOuOyvCike7O5TVYOthqyCdxgW+ZW/FQGtFpoKeuRZnbNg==", + "dev": true, + "requires": { + "webpack": "3.5.4" + } + }, "ethereumjs-tx": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz", @@ -2793,1104 +2805,200 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" - } - }, - "expand-template": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.0.3.tgz", - "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=", - "dev": true - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", - "dev": true, - "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.18", - "tmp": "0.0.33" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fake-merkle-patricia-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", - "dev": true, - "requires": { - "checkpoint-store": "1.1.0" - } - }, - "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5" - } - }, - "file-entry-cache": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", - "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", - "dev": true, - "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" - } - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true, - "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "flat-cache": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", - "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", - "dev": true, - "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" - } - }, - "for-each": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", - "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", - "dev": true, - "requires": { - "is-function": "1.0.1" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.16" - } - }, - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1", - "path-is-absolute": "1.0.1", - "rimraf": "2.6.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha1-EfgjGPX+e7LNIpZaEI6TBiCCFtg=", - "dev": true, - "optional": true, - "requires": { - "nan": "2.6.2", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } + "fill-range": "2.2.3" + } + }, + "expand-template": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.0.3.tgz", + "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=", + "dev": true + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "external-editor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", + "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "dev": true, + "requires": { + "chardet": "0.4.2", + "iconv-lite": "0.4.18", + "tmp": "0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dev": true, + "requires": { + "checkpoint-store": "1.1.0" + } + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "1.3.0", + "object-assign": "4.1.1" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "flat-cache": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz", + "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", + "dev": true, + "requires": { + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" + } + }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "dev": true, + "requires": { + "is-function": "1.0.1" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" } }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, "function-bind": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", @@ -4021,7 +3129,7 @@ "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, "globby": { @@ -4057,9 +3165,9 @@ "dev": true }, "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { "async": "1.5.2", @@ -4133,7 +3241,7 @@ "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha1-NA3tvmKQGHFRweodd3o0SJNd+EY=", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { "inherits": "2.0.3", @@ -4198,7 +3306,7 @@ "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", "dev": true }, "http-signature": { @@ -4654,7 +3762,7 @@ "escodegen": "1.8.1", "esprima": "2.7.3", "glob": "5.0.15", - "handlebars": "4.0.10", + "handlebars": "4.0.11", "js-yaml": "3.6.1", "mkdirp": "0.5.1", "nopt": "3.0.6", @@ -4757,7 +3865,7 @@ "json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha1-3KFKcCNf+C8KyaOr62DTN6NlGF0=", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, "json-schema": { @@ -4849,7 +3957,7 @@ "keccak": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.3.0.tgz", - "integrity": "sha1-NoG9ma09A1TdspuQQMG2VgzOCKw=", + "integrity": "sha512-JgsKPxYhcJxKrV+TrCyg/GwZbOjhpRPrz2kG8xbAsUaIDelUlKjm08YcwBO9Fm8sqf/Kg8ZWkk6nWujhLykfvw==", "dev": true, "requires": { "bindings": "1.3.0", @@ -5009,7 +4117,7 @@ "levelup": { "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha1-LbyuhFsrsra+qE3zNMR1Uzu9gqs=", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", "dev": true, "requires": { "deferred-leveldown": "1.2.2", @@ -5354,7 +4462,7 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "1.1.8" @@ -5557,7 +4665,7 @@ "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { "hosted-git-info": "2.5.0", @@ -5587,7 +4695,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "requires": { "are-we-there-yet": "1.1.4", @@ -5617,7 +4725,7 @@ "object-inspect": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz", - "integrity": "sha1-Wx645nQuLugzQqY3A02ESSi6L20=", + "integrity": "sha512-OHHnLgLNXpM++GnJRyyhbr2bwl3pPVm4YvaraHrRvDt/N3r+s/gDVHciA7EJBTkijKXj61ssgSAikq1fb0IBRg==", "dev": true }, "object-keys": { @@ -6038,7 +5146,7 @@ "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "dev": true, "requires": { "is-number": "3.0.0", @@ -6079,7 +5187,7 @@ "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha1-3ACaJGuNCaF3tLegrne8Vw9LG3k=", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -6129,7 +5237,7 @@ "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha1-No8lEtefnUb9/HE0mueHi7weuVw=", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -6425,7 +5533,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", "dev": true }, "scrypt": { @@ -6476,13 +5584,13 @@ "semaphore": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha1-qq2LhrIP6OmzKxbcLuaCqM0mqKo=", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", "dev": true }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha1-4FnAnYVx8FQII3M0M1BdOi8AsY4=", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", "dev": true }, "set-blocking": { @@ -6646,87 +5754,37 @@ } }, "solidity-coverage": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.2.1.tgz", - "integrity": "sha512-+vsgS3tMK4UyBiliIv1aE6PC+MfaLo/XQ0qzBlkaIuP2e/vw8Zn8pnzw2mYBmoImoSugsK3EuwslHgRQXQjCRw==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.4.3.tgz", + "integrity": "sha512-ARsACPfgUgZahaHIiVmuYxkJczKXPDekdxdGMtq+78zCA62eCVpSzth1gyVkv+pVdQ5XOmQ/eRWLOFgNsfvxqA==", "dev": true, "requires": { - "commander": "2.11.0", "death": "1.1.0", - "ethereumjs-testrpc-sc": "4.0.1", + "ethereumjs-testrpc-sc": "6.0.7", "istanbul": "0.4.5", "keccakjs": "0.2.1", - "mkdirp": "0.5.1", "req-cwd": "1.0.1", "shelljs": "0.7.8", "sol-explore": "1.6.2", - "solidity-parser": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", + "solidity-parser-sc": "0.4.1", "web3": "0.18.4" - }, - "dependencies": { - "bignumber.js": { - "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", - "dev": true - }, - "ethereumjs-testrpc-sc": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/ethereumjs-testrpc-sc/-/ethereumjs-testrpc-sc-4.0.1.tgz", - "integrity": "sha512-hDyY7q6sqqYP9PMIa/5R5jnj9Ybc3LlACWM3qgX873CcjxBRit/cdsUApVVLDRNTA6XE1os04NqaJ5NbQJu+AQ==", - "dev": true, - "requires": { - "webpack": "3.5.4" - } - }, - "solidity-parser": { - "version": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", - "dev": true, - "requires": { - "mocha": "2.5.3", - "pegjs": "0.10.0", - "yargs": "4.8.1" - } - }, - "web3": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", - "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=", - "dev": true, - "requires": { - "bignumber.js": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", - "crypto-js": "3.1.8", - "utf8": "2.1.2", - "xhr2": "0.1.4", - "xmlhttprequest": "1.8.0" - } - }, - "yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", - "dev": true, - "requires": { - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "lodash.assign": "4.2.0", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "window-size": "0.2.0", - "y18n": "3.2.1", - "yargs-parser": "2.4.1" - } - } + } + }, + "solidity-parser-sc": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/solidity-parser-sc/-/solidity-parser-sc-0.4.1.tgz", + "integrity": "sha512-51kDgZXLCfgOtmxrPPK1Jhgi257emdf8g9xBA7BA5TgFTM8tSEgRzvJGlGTPbI03txLETuSvNpPhy46c+srOyQ==", + "dev": true, + "requires": { + "mocha": "2.5.3", + "pegjs": "0.10.0", + "yargs": "4.8.1" } }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha1-qqR0A/eyRakvvJfqCPJQ1gh+0IU=", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", "dev": true }, "source-map": { @@ -6808,7 +5866,7 @@ "stream-http": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha1-QKBQ7I3DtTsz2ZCUFcAsC/Gr+60=", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", "dev": true, "requires": { "builtin-status-codes": "3.0.0", @@ -6843,7 +5901,7 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha1-D8Z9fBQYJd6UKC3VNr7GubzoYKs=", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -7003,7 +6061,7 @@ "tape": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz", - "integrity": "sha1-9qn+xBzFCh3lD6M2A6tYCZH2Bo4=", + "integrity": "sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA==", "dev": true, "requires": { "deep-equal": "1.0.1", @@ -7126,7 +6184,7 @@ "truffle": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.0.1.tgz", - "integrity": "sha1-2GYaStemyglLdRfSmxmcYObd5mU=", + "integrity": "sha512-PybO+GMq3AvsfCWfEx4sbuaJlDL19iR8Ff20cO0TtP599N5JbMLlhwlffvVInPgFjP+F11vjSOYj3hT8fONs5A==", "dev": true, "requires": { "mocha": "3.5.3", @@ -7166,7 +6224,7 @@ "mocha": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", - "integrity": "sha1-HgSA/jbS2lhY0etqzDhBiybqog0=", + "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -7483,7 +6541,7 @@ "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha1-PdPT55Crwk17DToDT/q6vijrvAQ=", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", "dev": true }, "validate-npm-package-license": { @@ -7546,6 +6604,19 @@ } } }, + "web3": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", + "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=", + "dev": true, + "requires": { + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "crypto-js": "3.1.8", + "utf8": "2.1.2", + "xhr2": "0.1.4", + "xmlhttprequest": "1.8.0" + } + }, "webpack": { "version": "3.5.4", "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.5.4.tgz", @@ -7762,7 +6833,7 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "dev": true, "requires": { "isexe": "2.0.0" @@ -7777,7 +6848,7 @@ "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "requires": { "string-width": "1.0.2" diff --git a/package.json b/package.json index d930e09ef..8a65e3c24 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "ethereumjs-testrpc": "^6.0.1", "ethereumjs-util": "^5.1.2", "mocha-lcov-reporter": "^1.3.0", - "solidity-coverage": "^0.2.2", + "solidity-coverage": "^0.4.3", "truffle": "^4.0.0", "truffle-hdwallet-provider": "0.0.3" }, diff --git a/test/BasicToken.test.js b/test/BasicToken.test.js index 9775b7040..67638ea4b 100644 --- a/test/BasicToken.test.js +++ b/test/BasicToken.test.js @@ -1,6 +1,6 @@ const assertRevert = require('./helpers/assertRevert'); -var BasicTokenMock = artifacts.require('./mocks/BasicTokenMock.sol'); +var BasicTokenMock = artifacts.require('mocks/BasicTokenMock.sol'); contract('BasicToken', function (accounts) { it('should return the correct totalSupply after construction', async function () { diff --git a/test/BurnableToken.test.js b/test/BurnableToken.test.js index 51eee0d78..25875e98e 100644 --- a/test/BurnableToken.test.js +++ b/test/BurnableToken.test.js @@ -1,6 +1,6 @@ const EVMRevert = require('./helpers/EVMRevert.js'); -const BurnableTokenMock = artifacts.require('./mocks/BurnableTokenMock.sol'); +const BurnableTokenMock = artifacts.require('mocks/BurnableTokenMock.sol'); const BigNumber = web3.BigNumber; require('chai') diff --git a/test/CanReclaimToken.test.js b/test/CanReclaimToken.test.js index 8a4b92793..1b7f88f20 100644 --- a/test/CanReclaimToken.test.js +++ b/test/CanReclaimToken.test.js @@ -2,7 +2,7 @@ import expectThrow from './helpers/expectThrow'; const CanReclaimToken = artifacts.require('../contracts/ownership/CanReclaimToken.sol'); -const BasicTokenMock = artifacts.require('./mocks/BasicTokenMock.sol'); +const BasicTokenMock = artifacts.require('mocks/BasicTokenMock.sol'); contract('CanReclaimToken', function (accounts) { let token = null; diff --git a/test/CappedCrowdsale.test.js b/test/CappedCrowdsale.test.js index c747fa217..5f361da68 100644 --- a/test/CappedCrowdsale.test.js +++ b/test/CappedCrowdsale.test.js @@ -11,7 +11,7 @@ require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); -const CappedCrowdsale = artifacts.require('./mocks/CappedCrowdsaleImpl.sol'); +const CappedCrowdsale = artifacts.require('mocks/CappedCrowdsaleImpl.sol'); const MintableToken = artifacts.require('MintableToken'); contract('CappedCrowdsale', function ([_, wallet]) { diff --git a/test/DayLimit.test.js b/test/DayLimit.test.js index 1378f8627..a02b40f62 100644 --- a/test/DayLimit.test.js +++ b/test/DayLimit.test.js @@ -4,7 +4,7 @@ import { increaseTimeTo, duration } from './helpers/increaseTime'; const assertRevert = require('./helpers/assertRevert'); -const DayLimitMock = artifacts.require('./mocks/DayLimitMock.sol'); +const DayLimitMock = artifacts.require('mocks/DayLimitMock.sol'); contract('DayLimit', function (accounts) { let dayLimit; diff --git a/test/DetailedERC20.test.js b/test/DetailedERC20.test.js index 907129e61..16155a4b8 100644 --- a/test/DetailedERC20.test.js +++ b/test/DetailedERC20.test.js @@ -5,7 +5,7 @@ require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); -const DetailedERC20Mock = artifacts.require('./mocks/DetailedERC20Mock.sol'); +const DetailedERC20Mock = artifacts.require('mocks/DetailedERC20Mock.sol'); contract('DetailedERC20', accounts => { let detailedERC20 = null; diff --git a/test/FinalizableCrowdsale.test.js b/test/FinalizableCrowdsale.test.js index 8e9d66241..4b97665c7 100644 --- a/test/FinalizableCrowdsale.test.js +++ b/test/FinalizableCrowdsale.test.js @@ -10,7 +10,7 @@ const should = require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); -const FinalizableCrowdsale = artifacts.require('./mocks/FinalizableCrowdsaleImpl.sol'); +const FinalizableCrowdsale = artifacts.require('mocks/FinalizableCrowdsaleImpl.sol'); const MintableToken = artifacts.require('MintableToken'); contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { diff --git a/test/HasNoTokens.test.js b/test/HasNoTokens.test.js index cb397deea..be5a26ad4 100644 --- a/test/HasNoTokens.test.js +++ b/test/HasNoTokens.test.js @@ -2,7 +2,7 @@ import expectThrow from './helpers/expectThrow'; const HasNoTokens = artifacts.require('../contracts/lifecycle/HasNoTokens.sol'); -const ERC23TokenMock = artifacts.require('./mocks/ERC23TokenMock.sol'); +const ERC23TokenMock = artifacts.require('mocks/ERC23TokenMock.sol'); contract('HasNoTokens', function (accounts) { let hasNoTokens = null; diff --git a/test/PausableToken.test.js b/test/PausableToken.test.js index dc9cb826f..443b7eda9 100644 --- a/test/PausableToken.test.js +++ b/test/PausableToken.test.js @@ -1,7 +1,7 @@ 'user strict'; const assertRevert = require('./helpers/assertRevert'); -var PausableTokenMock = artifacts.require('./mocks/PausableTokenMock.sol'); +var PausableTokenMock = artifacts.require('mocks/PausableTokenMock.sol'); contract('PausableToken', function (accounts) { let token; diff --git a/test/PullPayment.test.js b/test/PullPayment.test.js index 176b182dd..450dcddc1 100644 --- a/test/PullPayment.test.js +++ b/test/PullPayment.test.js @@ -1,4 +1,4 @@ -var PullPaymentMock = artifacts.require('./mocks/PullPaymentMock.sol'); +var PullPaymentMock = artifacts.require('mocks/PullPaymentMock.sol'); contract('PullPayment', function (accounts) { let ppce; diff --git a/test/RBAC.test.js b/test/RBAC.test.js index 3db66ad9b..50a36bece 100644 --- a/test/RBAC.test.js +++ b/test/RBAC.test.js @@ -1,7 +1,7 @@ import expectThrow from './helpers/expectThrow'; import expectEvent from './helpers/expectEvent'; -const RBACMock = artifacts.require('./mocks/RBACMock.sol'); +const RBACMock = artifacts.require('mocks/RBACMock.sol'); require('chai') .use(require('chai-as-promised')) diff --git a/test/RefundableCrowdsale.test.js b/test/RefundableCrowdsale.test.js index 84ced3bc7..f91a06f65 100644 --- a/test/RefundableCrowdsale.test.js +++ b/test/RefundableCrowdsale.test.js @@ -11,7 +11,7 @@ require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); -const RefundableCrowdsale = artifacts.require('./mocks/RefundableCrowdsaleImpl.sol'); +const RefundableCrowdsale = artifacts.require('mocks/RefundableCrowdsaleImpl.sol'); contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { const rate = new BigNumber(1000); diff --git a/test/SafeERC20.test.js b/test/SafeERC20.test.js index 9b93521d0..8437fcc46 100644 --- a/test/SafeERC20.test.js +++ b/test/SafeERC20.test.js @@ -4,7 +4,7 @@ require('chai') .use(require('chai-as-promised')) .should(); -const SafeERC20Helper = artifacts.require('./mocks/SafeERC20Helper.sol'); +const SafeERC20Helper = artifacts.require('mocks/SafeERC20Helper.sol'); contract('SafeERC20', function () { beforeEach(async function () { diff --git a/test/SafeMath.test.js b/test/SafeMath.test.js index f2faaf638..f0f3b3697 100644 --- a/test/SafeMath.test.js +++ b/test/SafeMath.test.js @@ -1,6 +1,6 @@ const assertRevert = require('./helpers/assertRevert'); const assertJump = require('./helpers/assertJump'); -var SafeMathMock = artifacts.require('./mocks/SafeMathMock.sol'); +var SafeMathMock = artifacts.require('mocks/SafeMathMock.sol'); contract('SafeMath', function (accounts) { let safeMath; diff --git a/test/StandardToken.test.js b/test/StandardToken.test.js index f7461da08..fdc7c31ff 100644 --- a/test/StandardToken.test.js +++ b/test/StandardToken.test.js @@ -1,7 +1,7 @@ const assertRevert = require('./helpers/assertRevert'); -var StandardTokenMock = artifacts.require('./mocks/StandardTokenMock.sol'); +var StandardTokenMock = artifacts.require('mocks/StandardTokenMock.sol'); contract('StandardToken', function (accounts) { let token; diff --git a/test/TokenDestructible.test.js b/test/TokenDestructible.test.js index a5b5ae77c..1b1ed38a1 100644 --- a/test/TokenDestructible.test.js +++ b/test/TokenDestructible.test.js @@ -1,6 +1,6 @@ var TokenDestructible = artifacts.require('../contracts/lifecycle/TokenDestructible.sol'); -var StandardTokenMock = artifacts.require('./mocks/StandardTokenMock.sol'); +var StandardTokenMock = artifacts.require('mocks/StandardTokenMock.sol'); require('./helpers/transactionMined.js'); contract('TokenDestructible', function (accounts) {