diff --git a/.circleci/config.yml b/.circleci/config.yml index a6f96cb0..4ef84110 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -52,7 +52,7 @@ jobs: name: Validate JSON files shell: /bin/sh command: | - cd scripts/ && npm install jsonlint && npm run json-lint + cd scripts/ && npm install && npm run json-lint swc-yaml-config-content: <<: *defaults @@ -64,6 +64,16 @@ jobs: command: | cd scripts/ && npm install && npm run yaml-content-validate + swc-folder-structure: + <<: *defaults + steps: + - checkout + - run: + name: Check folder structure + shell: /bin/sh + command: | + cd scripts/ && npm install && npm run validate-dirs + deploy-gh-pages: <<: *defaults steps: @@ -108,6 +118,12 @@ workflows: - gh-pages - website - swc-json-lint: + filters: + branches: + ignore: + - gh-pages + - website + - swc-folder-structure: filters: branches: ignore: diff --git a/.gitignore b/.gitignore index 2357bd01..cc848010 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ *~ .DS_Store node_modules/ +.vscode/ diff --git a/scripts/bash/json_lint.sh b/scripts/bash/json_lint.sh old mode 100644 new mode 100755 index e69de29b..a03e7ea7 --- a/scripts/bash/json_lint.sh +++ b/scripts/bash/json_lint.sh @@ -0,0 +1,7 @@ +find ../test_cases -name '*.json' -print | while read line; do + command=$(./node_modules/jsonlint/lib/cli.js $line > /dev/null) + if (($? > 0)); then + echo "ERROR: Wrong json object - $line" + exit 1 + fi +done diff --git a/scripts/bash/yaml_schema_lint.sh b/scripts/bash/yaml_schema_lint.sh deleted file mode 100755 index 1b44e46c..00000000 --- a/scripts/bash/yaml_schema_lint.sh +++ /dev/null @@ -1,17 +0,0 @@ -find ../../test_cases -name '*.yaml' -print | while read line; do - command=$(../node_modules/yaml-schema-validator/index.js validate -s ../swc-config-schema.yaml -f $line) - if [[ $command = *"ERROR : ====== Schema Validation Error ======"* ]]; then - echo "$command" >&2 - exit 1 - else - echo "SUCCESS: $line" - fi -done - -find ../../test_cases -name '*.json' -print | while read line; do - command=$(../node_modules/jsonlint/lib/cli.js $line > /dev/null) - if (($? > 0)); then - echo "ERROR: Wrong json object - $line" - exit 1 - fi -done diff --git a/scripts/dir_structure.js b/scripts/dir_structure.js new file mode 100644 index 00000000..99805bd8 --- /dev/null +++ b/scripts/dir_structure.js @@ -0,0 +1,35 @@ +const fs = require('fs'); +const path = require('path'); + +const walkSync = (dir, filelist=[]) => { + fs.readdirSync(dir).forEach((file) => { + if(fs.statSync(path.join(dir, file)).isDirectory()) { + filelist = walkSync(path.join(dir, file), filelist) + } else { + filelist = filelist.concat(path.join(dir, file)); + } + }); + return filelist; +}; + +let hasError = false; + +const files = walkSync('../test_cases'); + +files.map(file => { + const splitedPath = file.split('/'); + + const [filepath, folder, ...rest] = splitedPath.reverse(); + const [filename, ...restels] = filepath.split('.'); + + if (folder !== filename) { + hasError = true; + console.log(`Path is wrong: ${file}`); + } +}); + +if (hasError) { + process.exit(1); +} else { + process.exit(0); +} \ No newline at end of file diff --git a/scripts/package-lock.json b/scripts/package-lock.json index 0ec834e5..bffe379f 100644 --- a/scripts/package-lock.json +++ b/scripts/package-lock.json @@ -4,32 +4,428 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "JSV": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", + "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=" + }, + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.21", + "negotiator": "0.6.1" + } + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "1.0.1", + "printj": "1.1.2" + } + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "ajv": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.7.0.tgz", + "integrity": "sha512-RZXPviBTtfmtka9n9sy1N5M5b82CbxWIR6HIis4s3WQTXDJamc/0gpCWNGz6EWdWp4DOfjzJfhz/AS9zVPjjWg==", + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" + } + }, + "any-json": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/any-json/-/any-json-3.1.0.tgz", + "integrity": "sha1-Ss4XIrrOwfTIH5IbxVFUbvsZ2fg=", + "requires": { + "cson": "4.1.0", + "dashdash": "1.14.1", + "fast-csv": "2.4.1", + "format-unicorn": "1.1.1", + "hjson": "2.4.3", + "ini": "1.3.5", + "js-yaml": "3.12.1", + "json5": "0.5.1", + "strip-json-comments": "2.0.1", + "toml-j0.4": "1.1.1", + "tomlify-j0.4": "2.2.1", + "typescript": "2.9.2", + "util.promisify": "1.0.0", + "xlsjs": "0.7.6", + "xlsx": "0.11.19", + "xml2js": "0.4.17" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" + } + }, + "arguments-extended": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/arguments-extended/-/arguments-extended-0.0.3.tgz", + "integrity": "sha1-YQfkkX0OtvCk3WYyD8Fa/HLvSUY=", + "requires": { + "extended": "0.0.6", + "is-extended": "0.0.10" + } + }, + "array-extended": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/array-extended/-/array-extended-0.0.11.tgz", + "integrity": "sha1-1xRK50jek8pybxIQCdv/FibRZL0=", + "requires": { + "arguments-extended": "0.0.3", + "extended": "0.0.6", + "is-extended": "0.0.10" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "2.1.2" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "0.14.5" + } + }, + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=" + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "requires": { + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "requires": { + "inherits": "2.0.3" + } + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "1.0.4", + "debug": "2.6.9", + "depd": "1.1.2", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "1.6.16" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "1.2.0", + "browserify-des": "1.0.2", + "evp_bytestokey": "1.0.3" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.6" + } + }, + "browserify-sha3": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.4.tgz", + "integrity": "sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY=", + "requires": { + "js-sha3": "0.6.1", + "safe-buffer": "5.1.2" + }, + "dependencies": { + "js-sha3": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.6.1.tgz", + "integrity": "sha1-W4n3enR3Z5h39YxKB1JAk0sflcA=" + } + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "elliptic": "6.4.1", + "inherits": "2.0.3", + "parse-asn1": "5.1.3" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "1.3.0", + "ieee754": "1.1.12" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "requires": { + "buffer-alloc-unsafe": "1.1.0", + "buffer-fill": "1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cfb": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-0.11.1.tgz", + "integrity": "sha1-qW248nKmw/uZ27sj70EiP0i+Hqc=", + "requires": { + "commander": "2.19.0" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + } } }, "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "commander": "2.14.1", + "exit-on-epipe": "1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } } }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==" + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -43,20 +439,444 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, + "colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=" + }, + "combined-stream": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", + "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "requires": { + "delayed-stream": "1.0.0" + } + }, "commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" }, - "component-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.1.tgz", - "integrity": "sha1-ikeQFwAjjk/DIml3EjAibyS0Fak=" - }, - "eivindfjeldstad-dot": { + "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/eivindfjeldstad-dot/-/eivindfjeldstad-dot-0.0.1.tgz", - "integrity": "sha1-IvyXa/rzBuCDmjHbjoITSA+vuJM=" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "4.1.1", + "vary": "1.1.2" + } + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "1.0.1", + "printj": "1.1.2" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.1" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "md5.js": "1.3.5", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "1.0.1", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", + "inherits": "2.0.3", + "pbkdf2": "3.0.17", + "public-encrypt": "4.0.3", + "randombytes": "2.0.6", + "randomfill": "1.0.4" + } + }, + "cson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cson/-/cson-4.1.0.tgz", + "integrity": "sha1-sQdTRPqdn+XPiNgPIdk2Ypa4Zcc=", + "requires": { + "coffee-script": "1.12.7", + "cson-parser": "1.3.5", + "extract-opts": "3.3.1", + "requirefresh": "2.2.0", + "safefs": "4.1.0" + } + }, + "cson-parser": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/cson-parser/-/cson-parser-1.3.5.tgz", + "integrity": "sha1-fsZ14DkUVTO/KmqFYHPxWZ2cLSQ=", + "requires": { + "coffee-script": "1.12.7" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "date-extended": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/date-extended/-/date-extended-0.0.6.tgz", + "integrity": "sha1-I4AtV90b94GIE/4MMuhRqG2iZ8k=", + "requires": { + "array-extended": "0.0.11", + "extended": "0.0.6", + "is-extended": "0.0.10" + } + }, + "deasync": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.14.tgz", + "integrity": "sha512-wN8sIuEqIwyQh72AG7oY6YQODCxIp1eXzEZlZznBuwDF8Q03Tdy9QNp1BNZXeadXoklNrw+Ip1fch+KXo/+ASw==", + "requires": { + "bindings": "1.2.1", + "node-addon-api": "1.6.2" + } + }, + "deasync-promise": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deasync-promise/-/deasync-promise-1.0.1.tgz", + "integrity": "sha1-KyfeR4Fnr07zS6mYecUuwM7dYcI=", + "requires": { + "deasync": "0.1.14" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "declare.js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/declare.js/-/declare.js-0.0.8.tgz", + "integrity": "sha1-BHit/5VkwAT1Hfc9i8E0AZ0o3N4=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "requires": { + "decompress-tar": "4.1.1", + "decompress-tarbz2": "4.1.1", + "decompress-targz": "4.1.1", + "decompress-unzip": "4.0.1", + "graceful-fs": "4.1.15", + "make-dir": "1.3.0", + "pify": "2.3.0", + "strip-dirs": "2.1.0" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "1.0.1" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "requires": { + "file-type": "5.2.0", + "is-stream": "1.1.0", + "tar-stream": "1.6.2" + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "requires": { + "decompress-tar": "4.1.1", + "file-type": "6.2.0", + "is-stream": "1.1.0", + "seek-bzip": "1.0.5", + "unbzip2-stream": "1.3.1" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "requires": { + "decompress-tar": "4.1.1", + "file-type": "5.2.0", + "is-stream": "1.1.0" + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "requires": { + "file-type": "3.9.0", + "get-stream": "2.3.1", + "pify": "2.3.0", + "yauzl": "2.10.0" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "1.0.12" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" + } + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "eachr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.2.0.tgz", + "integrity": "sha1-LDXkPqCGUW95l8+At6pk1VpKRIQ=", + "requires": { + "editions": "1.3.4", + "typechecker": "4.7.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" + } + }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.7", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "1.4.0" + } + }, + "errlop": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==", + "requires": { + "editions": "2.1.3" + }, + "dependencies": { + "editions": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", + "requires": { + "errlop": "1.1.1", + "semver": "5.6.0" + } + } + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "requires": { + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4", + "object-keys": "1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" }, "escape-string-regexp": { "version": "1.0.5", @@ -68,76 +888,2478 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "js-yaml": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", - "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "idna-uts46-hx": "2.3.1", + "js-sha3": "0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } } }, - "marked": { - "version": "0.3.19", - "resolved": "http://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" + "eth-lib": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.27.tgz", + "integrity": "sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA==", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.1", + "keccakjs": "0.2.3", + "nano-json-stream-parser": "0.1.2", + "servify": "0.1.12", + "ws": "3.3.3", + "xhr-request-promise": "0.1.2" + } }, - "md-2-json": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/md-2-json/-/md-2-json-1.0.5.tgz", - "integrity": "sha1-Er+evaKAM1Mk5sDNEM0+Ubkrcko=", + "ethers": { + "version": "4.0.0-beta.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.0-beta.1.tgz", + "integrity": "sha512-SoYhktEbLxf+fiux5SfCEwdzWENMvgIbMZD90I62s4GZD9nEjgEWy8ZboI3hck193Vs0bDoTohDISx84f2H2tw==", "requires": { - "marked": "^0.3.6", - "traverse": "^0.6.6" + "@types/node": "10.12.18", + "aes-js": "3.0.0", + "bn.js": "4.11.8", + "elliptic": "6.3.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.3", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "elliptic": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.3.3.tgz", + "integrity": "sha1-VILZZG1UvLif19mU/J4ulWiHbj8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } } }, - "sprintf-js": { + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "eventemitter3": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.1.1.tgz", + "integrity": "sha1-R3hr2qCHyvext15zq8XH1UAVjNA=" + }, + "evp_bytestokey": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "1.3.5", + "safe-buffer": "5.1.2" + } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "requires": { - "has-flag": "^3.0.0" + "accepts": "1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "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.4", + "qs": "6.5.2", + "range-parser": "1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "1.4.0", + "type-is": "1.6.16", + "utils-merge": "1.0.1", + "vary": "1.1.2" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } } }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "typecast": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/typecast/-/typecast-0.0.1.tgz", - "integrity": "sha1-//t13La98d744pO2tuiT1sHtGd4=" + "extended": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/extended/-/extended-0.0.6.tgz", + "integrity": "sha1-f7i/e52uOXWG5IVwrP1kLHjlBmk=", + "requires": { + "extender": "0.0.10" + } }, - "validate": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/validate/-/validate-4.5.1.tgz", - "integrity": "sha512-ZdfYYgJDVrx4oxamyW0ynIoW8jIAoAeb8/pSu9XF+WCZueGogUMU7cGYHVUiWAJDc7RO3QR/EBhhkP46Wn9Hng==", + "extender": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/extender/-/extender-0.0.10.tgz", + "integrity": "sha1-WJwHSCvmGhRgttgfnCSqZ+jzJM0=", "requires": { - "component-type": "1.2.1", - "eivindfjeldstad-dot": "0.0.1", - "typecast": "0.0.1" + "declare.js": "0.0.8" } }, - "yaml-schema-validator": { + "extract-opts": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.3.1.tgz", + "integrity": "sha1-WrvtyYwNUgLjJ4cn+Rktfghsa+E=", + "requires": { + "eachr": "3.2.0", + "editions": "1.3.4", + "typechecker": "4.7.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-csv": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-2.4.1.tgz", + "integrity": "sha1-vX3SaDkfcpNntZRFuN0K0CaIGyY=", + "requires": { + "extended": "0.0.6", + "is-extended": "0.0.10", + "object-extended": "0.0.7", + "string-extended": "0.0.8" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-json-patch": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-0.5.7.tgz", + "integrity": "sha1-taj0nSWWJFlu+YuHLz/aiVtNhmU=" + }, + "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=" + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "1.2.0" + } + }, + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "1.1.4" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.7", + "mime-types": "2.1.21" + } + }, + "format-unicorn": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/format-unicorn/-/format-unicorn-1.1.1.tgz", + "integrity": "sha1-UzQj+ca9smG/UI//VPLXqbJ6IlE=" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "frac": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/frac/-/frac-0.3.1.tgz", + "integrity": "sha1-V3Z3t/3L5vr3xGHxgB00E3zaQ1Q=" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", + "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", + "requires": { + "graceful-fs": "4.1.15", + "jsonfile": "2.4.0" + } + }, + "fs-promise": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-2.0.3.tgz", + "integrity": "sha1-9k5PhUvPaJqovdy6JokW2z20aFQ=", + "requires": { + "any-promise": "1.3.0", + "fs-extra": "2.1.2", + "mz": "2.7.0", + "thenify-all": "1.6.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "requires": { + "graceful-fs": "4.1.15", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.3" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "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" + } + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "requires": { + "decompress-response": "3.3.0", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-plain-obj": "1.1.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "isurl": "1.0.0", + "lowercase-keys": "1.0.1", + "p-cancelable": "0.3.0", + "p-timeout": "1.2.1", + "safe-buffer": "5.1.2", + "timed-out": "4.0.1", + "url-parse-lax": "1.0.0", + "url-to-options": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "6.7.0", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "1.1.1" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "requires": { + "has-symbol-support-x": "1.4.2" + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "hash.js": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/yaml-schema-validator/-/yaml-schema-validator-1.1.7.tgz", - "integrity": "sha512-3J2GeYPYGuebmP3aT/bcCi4Sa/y62mDj3XlRvhixXQThOjO1IYPnLdSKLUkS+zzs7PkB5kAv8U/wG8ybcoNsQw==", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, + "hjson": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/hjson/-/hjson-2.4.3.tgz", + "integrity": "sha1-h4V4pF0TSG7DZOEeZC9X/xosy74=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.7", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": "1.5.0" + } + }, + "http-https": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz", + "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs=" + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.1" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": "2.1.2" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-extended": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/is-extended/-/is-extended-0.0.10.tgz", + "integrity": "sha1-JE4UDfdbscmjEG9BL/GC+1NKbWI=", + "requires": { + "extended": "0.0.6" + } + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "1.0.3" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "requires": { + "has-to-string-tag-x": "1.4.1", + "is-object": "1.0.1" + } + }, + "js-yaml": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", + "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "4.1.15" + } + }, + "jsonlint": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz", + "integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==", + "requires": { + "JSV": "4.0.2", + "nomnom": "1.8.1" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keccakjs": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.3.tgz", + "integrity": "sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg==", + "requires": { + "browserify-sha3": "0.0.4", + "sha3": "1.2.2" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "marked": { + "version": "0.3.19", + "resolved": "http://registry.npmjs.org/marked/-/marked-0.3.19.tgz", + "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==" + }, + "md-2-json": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/md-2-json/-/md-2-json-1.0.5.tgz", + "integrity": "sha1-Er+evaKAM1Mk5sDNEM0+Ubkrcko=", + "requires": { + "marked": "0.3.19", + "traverse": "0.6.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.37.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz", + "integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==" + }, + "mime-types": { + "version": "2.1.21", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", + "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", + "requires": { + "mime-db": "1.37.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "0.1.1" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mkdirp-promise": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", + "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=", + "requires": { + "mkdirp": "0.5.1" + } + }, + "mock-fs": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.7.0.tgz", + "integrity": "sha512-WlQNtUlzMRpvLHf8dqeUmNqfdPjGY29KrJF50Ldb4AcL+vQeR8QH3wQcFMgrhTwb1gHjZn9xggho+84tBskLgA==" + }, + "mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "1.3.0", + "object-assign": "4.1.1", + "thenify-all": "1.6.0" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, + "nano-json-stream-parser": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", + "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "node-addon-api": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.6.2.tgz", + "integrity": "sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==" + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "requires": { + "chalk": "0.4.0", + "underscore": "1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=" + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "requires": { + "ansi-styles": "1.0.0", + "has-color": "0.1.7", + "strip-ansi": "0.1.1" + } + } + } + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-extended": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/object-extended/-/object-extended-0.0.7.tgz", + "integrity": "sha1-hP0j9WsVWCrrPoiwXLVdJDLWijM=", + "requires": { + "array-extended": "0.0.11", + "extended": "0.0.6", + "is-extended": "0.0.10" + } + }, + "object-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "requires": { + "define-properties": "1.1.3", + "es-abstract": "1.13.0" + } + }, + "oboe": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", + "integrity": "sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8=", + "requires": { + "http-https": "1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "requires": { + "p-finally": "1.0.0" + } + }, + "pajv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pajv/-/pajv-1.2.0.tgz", + "integrity": "sha1-u/g4jGxXrzNlCjuFoKdAFmHKWXI=", + "requires": { + "ajv": "5.5.2", + "any-json": "3.1.0", + "deasync": "0.1.14", + "deasync-promise": "1.0.1", + "fast-json-patch": "0.5.7", + "glob": "7.1.3", + "minimist": "1.2.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } + }, + "parse-asn1": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.3.tgz", + "integrity": "sha512-VrPoetlz7B/FqjBLD2f5wBVZvsZVLnRUrxVLfRYhGXCODa/NWE4p3Wp+6+aV3ZPL3KM7/OZmxDIwwijD7yuucg==", + "requires": { + "asn1.js": "4.10.1", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.17", + "safe-buffer": "5.1.2" + } + }, + "parse-headers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "requires": { + "for-each": "0.3.3", + "trim": "0.0.1" + } + }, + "parseurl": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "requires": { + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.8.0" + } + }, + "psl": { + "version": "1.1.31", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", + "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.2.0", + "parse-asn1": "5.1.3", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "0.2.0", + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "2.0.6", + "safe-buffer": "5.1.2" + } + }, + "randomhex": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/randomhex/-/randomhex-0.1.5.tgz", + "integrity": "sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU=" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.7", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.21", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" + } + }, + "requirefresh": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/requirefresh/-/requirefresh-2.2.0.tgz", + "integrity": "sha512-gXQWrZkXNZZ6qVEh6PQvoASxLY3r6AR4jH8fFjZ+BfPJpDV6RTI82J4A3tkAn2wikU7rxfzU3sIPj94zEV6xPA==", + "requires": { + "editions": "2.1.3" + }, + "dependencies": { + "editions": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", + "requires": { + "errlop": "1.1.1", + "semver": "5.6.0" + } + } + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safefs": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.1.0.tgz", + "integrity": "sha1-+CrrS9165R9lPrIPZyizBYyNZEU=", + "requires": { + "editions": "1.3.4", + "graceful-fs": "4.1.15" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "requires": { + "nan": "2.10.0" + } + }, + "scrypt-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" + }, + "scrypt.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", + "requires": { + "scrypt": "6.0.3", + "scryptsy": "1.2.1" + } + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "requires": { + "pbkdf2": "3.0.17" + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "requires": { + "commander": "2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "requires": { + "graceful-readlink": "1.0.1" + } + } + } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.3", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + }, + "dependencies": { + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + } + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, + "servify": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/servify/-/servify-0.1.12.tgz", + "integrity": "sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw==", + "requires": { + "body-parser": "1.18.3", + "cors": "2.8.5", + "express": "4.16.4", + "request": "2.88.0", + "xhr": "2.5.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, + "sha3": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.2.tgz", + "integrity": "sha1-pmxQmN5MJbyIM27ItIF9AFvKe6k=", + "requires": { + "nan": "2.10.0" + } + }, + "simple-concat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", + "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "3.3.0", + "once": "1.4.0", + "simple-concat": "1.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "ssf": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.8.2.tgz", + "integrity": "sha1-udTcahwbz3b4q/qW19dlb7Kr7NY=", + "requires": { + "colors": "0.6.2", + "frac": "0.3.1", + "voc": "1.1.0" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-extended": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/string-extended/-/string-extended-0.0.8.tgz", + "integrity": "sha1-dBlX3/SHsCcqee7FpE8jnubxfM0=", + "requires": { + "array-extended": "0.0.11", + "date-extended": "0.0.6", + "extended": "0.0.6", + "is-extended": "0.0.10" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=" + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "requires": { + "is-natural-number": "4.0.1" + } + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "3.0.0" + } + }, + "swarm-js": { + "version": "0.1.37", + "resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.37.tgz", + "integrity": "sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ==", + "requires": { + "bluebird": "3.5.3", + "buffer": "5.2.1", + "decompress": "4.2.0", + "eth-lib": "0.1.27", + "fs-extra": "2.1.2", + "fs-promise": "2.0.3", + "got": "7.1.0", + "mime-types": "2.1.21", + "mkdirp-promise": "5.0.1", + "mock-fs": "4.7.0", + "setimmediate": "1.0.5", + "tar.gz": "1.0.7", + "xhr-request-promise": "0.1.2" + } + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "requires": { + "bl": "1.2.2", + "buffer-alloc": "1.2.0", + "end-of-stream": "1.4.1", + "fs-constants": "1.0.0", + "readable-stream": "2.3.6", + "to-buffer": "1.1.1", + "xtend": "4.0.1" + } + }, + "tar.gz": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tar.gz/-/tar.gz-1.0.7.tgz", + "integrity": "sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg==", + "requires": { + "bluebird": "2.11.0", + "commander": "2.19.0", + "fstream": "1.0.11", + "mout": "0.11.1", + "tar": "2.2.1" + }, + "dependencies": { + "bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + } + } + }, + "thenify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", + "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", + "requires": { + "any-promise": "1.3.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": "3.3.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" + }, + "toml-j0.4": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/toml-j0.4/-/toml-j0.4-1.1.1.tgz", + "integrity": "sha512-lYK5otg0+cto8YmsWcPEfeiTiC/VU6P6HA6ooaYI9K/KYT24Jg0BrYtRZK1K3cwakSMyh6nttfJL9RmQH0gyCg==" + }, + "tomlify-j0.4": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-2.2.1.tgz", + "integrity": "sha512-0kCocYX8ujnbK6jQ9e+g9GLiCIfVkFaCB3DCTQDP7J79gPVZVmZgQZ/KUNe1a6hUfrmHHaErVGUjedfpaX5EZw==" + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "1.1.31", + "punycode": "1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.21" + } + }, + "typechecker": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.7.0.tgz", + "integrity": "sha512-4LHc1KMNJ6NDGO+dSM/yNfZQRtp8NN7psYrPHUblD62Dvkwsp3VShsbM78kOgpcmMkRTgvwdKOTjctS+uMllgQ==", + "requires": { + "editions": "2.1.3" + }, + "dependencies": { + "editions": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", + "requires": { + "errlop": "1.1.1", + "semver": "5.6.0" + } + } + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "1.0.0" + } + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" + }, + "unbzip2-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.1.tgz", + "integrity": "sha512-fIZnvdjblYs7Cru/xC6tCPVhz7JkYcVQQkePwMLyQELzYTds2Xn8QefPVnvdVhhZqubxNA1cASXEH5wcK0Bucw==", + "requires": { + "buffer": "3.6.0", + "through": "2.3.8" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + }, + "buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "requires": { + "base64-js": "0.0.8", + "ieee754": "1.1.12", + "isarray": "1.0.0" + } + } + } + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "2.1.1" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "requires": { + "prepend-http": "1.0.4" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" + }, + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "1.1.3", + "object.getownpropertydescriptors": "2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "voc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/voc/-/voc-1.1.0.tgz", + "integrity": "sha512-fthgd8OJLqq8vPcLjElTk6Rcl2e3v5ekcXauImaqEnQqd5yUWKg1+ZOBgS2KTWuVKcuvZMQq4TDptiT1uYddUA==" + }, + "web3": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.37.tgz", + "integrity": "sha512-8XLgUspdzicC/xHG82TLrcF/Fxzj2XYNJ1KTYnepOI77bj5rvpsxxwHYBWQ6/JOjk0HkZqoBfnXWgcIHCDhZhQ==", + "requires": { + "web3-bzz": "1.0.0-beta.37", + "web3-core": "1.0.0-beta.37", + "web3-eth": "1.0.0-beta.37", + "web3-eth-personal": "1.0.0-beta.37", + "web3-net": "1.0.0-beta.37", + "web3-shh": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + } + }, + "web3-bzz": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.0.0-beta.37.tgz", + "integrity": "sha512-E+dho49Nsm/QpQvYWOF35YDsQrMvLB19AApENxhlQsu6HpWQt534DQul0t3Y/aAh8rlKD6Kanxt8LhHDG3vejQ==", + "requires": { + "got": "7.1.0", + "swarm-js": "0.1.37", + "underscore": "1.8.3" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-core": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.37.tgz", + "integrity": "sha512-cIwEqCj7OJyefQNauI0HOgW4sSaOQ98V99H2/HEIlnCZylsDzfw7gtQUdwnRFiIyIxjbWy3iWsjwDPoXNPZBYg==", + "requires": { + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-core-requestmanager": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.37.tgz", + "integrity": "sha512-efaLOzN28RMnbugnyelgLwPWWaSwElQzcAJ/x3PZu+uPloM/lE5x0YuBKvIh7/PoSMlHqtRWj1B8CpuQOUQ5Ew==", + "requires": { + "underscore": "1.8.3", + "web3-eth-iban": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-core-method": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.37.tgz", + "integrity": "sha512-pKWFUeqnVmzx3VrZg+CseSdrl/Yrk2ioid/HzolNXZE6zdoITZL0uRjnsbqXGEzgRRd1Oe/pFndpTlRsnxXloA==", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-promievent": "1.0.0-beta.37", + "web3-core-subscriptions": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-core-promievent": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.37.tgz", + "integrity": "sha512-GTF2r1lP8nJBeA5Gxq5yZpJy9l8Fb9CXGZPfF8jHvaRdQHtm2Z+NDhqYmF833lcdkokRSyfPcXlz1mlWeClFpg==", + "requires": { + "any-promise": "1.3.0", + "eventemitter3": "1.1.1" + } + }, + "web3-core-requestmanager": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.37.tgz", + "integrity": "sha512-66VUqye5BGp1Zz1r8psCxdNH+GtTjaFwroum2Osx+wbC5oRjAiXkkadiitf6wRb+edodjEMPn49u7B6WGNuewQ==", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.37", + "web3-providers-http": "1.0.0-beta.37", + "web3-providers-ipc": "1.0.0-beta.37", + "web3-providers-ws": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.37.tgz", + "integrity": "sha512-FdXl8so9kwkRRWziuCSpFsAuAdg9KvpXa1fQlT16uoGcYYfxwFO/nkwyBGQzkZt7emShI2IRugcazyPCZDwkOA==", + "requires": { + "eventemitter3": "1.1.1", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-eth": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.37.tgz", + "integrity": "sha512-Eb3aGtkz3G9q+Z9DKgSQNbn/u8RtcZQQ0R4sW9hy5KK47GoT6vab5c6DiD3QWzI0BzitHzR5Ji+3VHf/hPUGgw==", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.37", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-core-subscriptions": "1.0.0-beta.37", + "web3-eth-abi": "1.0.0-beta.37", + "web3-eth-accounts": "1.0.0-beta.37", + "web3-eth-contract": "1.0.0-beta.37", + "web3-eth-ens": "1.0.0-beta.37", + "web3-eth-iban": "1.0.0-beta.37", + "web3-eth-personal": "1.0.0-beta.37", + "web3-net": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.37.tgz", + "integrity": "sha512-g9DKZGM2OqwKp/tX3W/yihcj7mQCtJ6CXyZXEIZfuDyRBED/iSEIFfieDOd+yo16sokLMig6FG7ADhhu+19hdA==", + "requires": { + "ethers": "4.0.0-beta.1", + "underscore": "1.8.3", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.37.tgz", + "integrity": "sha512-uvbHL62/zwo4GDmwKdqH9c/EgYd8QVnAfpVw8D3epSISpgbONNY7Hr4MRMSd/CqAP12l2Ls9JVQGLhhC83bW6g==", + "requires": { + "any-promise": "1.3.0", + "crypto-browserify": "3.12.0", + "eth-lib": "0.2.7", + "scrypt.js": "0.2.0", + "underscore": "1.8.3", + "uuid": "2.0.1", + "web3-core": "1.0.0-beta.37", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "eth-lib": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.7.tgz", + "integrity": "sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.1", + "xhr-request-promise": "0.1.2" + } + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.37.tgz", + "integrity": "sha512-h1B3A8Z/C7BlnTCHkrWbXZQTViDxfR12lKMeTkT8Sqj5phFmxrBlPE4ORy4lf1Dk5b23mZYE0r/IRACx4ThCrQ==", + "requires": { + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.37", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-core-promievent": "1.0.0-beta.37", + "web3-core-subscriptions": "1.0.0-beta.37", + "web3-eth-abi": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-eth-ens": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.37.tgz", + "integrity": "sha512-dR3UkrVzdRrJhfP57xBPx0CMiVnCcYFvh+u2XMkGydrhHgupSUkjqGr89xry/j1T0BkuN9mikpbyhdCVMXqMbg==", + "requires": { + "eth-ens-namehash": "2.0.8", + "underscore": "1.8.3", + "web3-core": "1.0.0-beta.37", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-promievent": "1.0.0-beta.37", + "web3-eth-abi": "1.0.0-beta.37", + "web3-eth-contract": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.37.tgz", + "integrity": "sha512-WQRniGJFxH/XCbd7miO6+jnUG+6bvuzfeufPIiOtCbeIC1ypp1kSqER8YVBDrTyinU1xnf1U5v0KBZ2yiWBJxQ==", + "requires": { + "bn.js": "4.11.6", + "web3-utils": "1.0.0-beta.37" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.37.tgz", + "integrity": "sha512-B4dZpGbD+nGnn48i6nJBqrQ+HB7oDmd+Q3wGRKOsHSK5HRWO/KwYeA7wgwamMAElkut50lIsT9EJl4Apfk3G5Q==", + "requires": { + "web3-core": "1.0.0-beta.37", + "web3-core-helpers": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-net": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + } + }, + "web3-net": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.37.tgz", + "integrity": "sha512-xG/uBtMdDa1UMXw9KjDUgf3fXA/fDEJUYUS0TDn+U9PMgngA+UVECHNNvQTrVVDxEky38V3sahwIDiopNsQdsw==", + "requires": { + "web3-core": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-utils": "1.0.0-beta.37" + } + }, + "web3-providers-http": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.0.0-beta.37.tgz", + "integrity": "sha512-FM/1YDB1jtZuTo78habFj7S9tNHoqt0UipdyoQV29b8LkGKZV9Vs3is8L24hzuj1j/tbwkcAH+ewIseHwu0DTg==", + "requires": { + "web3-core-helpers": "1.0.0-beta.37", + "xhr2-cookies": "1.1.0" + } + }, + "web3-providers-ipc": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.37.tgz", + "integrity": "sha512-NdRPRxYMIU0C3u18NI8u4bwbhI9pCg5nRgDGYcmSAx5uOBxiYcQy+hb0WkJRRhBoyIXJmy+s26FoH8904+UnPg==", + "requires": { + "oboe": "2.1.3", + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.37" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-providers-ws": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.37.tgz", + "integrity": "sha512-8p6ZLv+1JYa5Vs8oBn33Nn3VGFBbF+wVfO+b78RJS1Qf1uIOzjFVDk3XwYDD7rlz9G5BKpxhaQw+6EGQ7L02aw==", + "requires": { + "underscore": "1.8.3", + "web3-core-helpers": "1.0.0-beta.37", + "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" + }, + "dependencies": { + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "web3-shh": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.37.tgz", + "integrity": "sha512-h5STG/xqZNQWtCLYOu7NiMqwqPea8SfkKQUPUFxXKIPVCFVKpHuQEwW1qcPQRJMLhlQIv17xuoUe1A+RzDNbrw==", + "requires": { + "web3-core": "1.0.0-beta.37", + "web3-core-method": "1.0.0-beta.37", + "web3-core-subscriptions": "1.0.0-beta.37", + "web3-net": "1.0.0-beta.37" + } + }, + "web3-utils": { + "version": "1.0.0-beta.37", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.37.tgz", + "integrity": "sha512-kA1fyhO8nKgU21wi30oJQ/ssvu+9srMdjOTKbHYbQe4ATPcr5YNwwrxG3Bcpbu1bEwRUVKHCkqi+wTvcAWBdlQ==", + "requires": { + "bn.js": "4.11.6", + "eth-lib": "0.1.27", + "ethjs-unit": "0.1.6", + "number-to-bn": "1.7.0", + "randomhex": "0.1.5", + "underscore": "1.8.3", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "underscore": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" + } + } + }, + "websocket": { + "version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2", + "requires": { + "debug": "2.6.9", + "nan": "2.10.0", + "typedarray-to-buffer": "3.1.5", + "yaeti": "0.0.6" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" + } + }, + "xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "requires": { + "global": "4.3.2", + "is-function": "1.0.1", + "parse-headers": "2.0.1", + "xtend": "4.0.1" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "0.0.5", + "object-assign": "4.1.1", + "query-string": "5.1.1", + "simple-get": "2.8.1", + "timed-out": "4.0.1", + "url-set-query": "1.0.0", + "xhr": "2.5.0" + } + }, + "xhr-request-promise": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.2.tgz", + "integrity": "sha1-NDxE0e53JrhkgGloLQ+EDIO0Jh0=", + "requires": { + "xhr-request": "1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "2.1.2" + } + }, + "xlsjs": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/xlsjs/-/xlsjs-0.7.6.tgz", + "integrity": "sha1-2IdUVpqrz47qcMwjlhtGJjSklWU=", + "requires": { + "cfb": "0.11.1", + "codepage": "1.14.0", + "commander": "2.19.0", + "exit-on-epipe": "1.0.1", + "ssf": "0.8.2" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + } + } + }, + "xlsx": { + "version": "0.11.19", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.11.19.tgz", + "integrity": "sha512-UTfD64o5Ka/E6QHL12fzcq5wnt9MCtuwgoUdYSTDxjjDkhNmZwSfPlJH/+Yh8vE6nU/0ax3MXNrc9AP4haAmIg==", + "requires": { + "adler-32": "1.2.0", + "cfb": "1.0.8", + "codepage": "1.12.2", + "commander": "2.13.0", + "crc-32": "1.2.0", + "exit-on-epipe": "1.0.1", + "ssf": "0.10.2" + }, + "dependencies": { + "cfb": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.0.8.tgz", + "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", + "requires": { + "commander": "2.19.0", + "printj": "1.1.2" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + } + } + }, + "codepage": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.12.2.tgz", + "integrity": "sha512-FAN+oPs/ocaPLFvIt4vEOHgWA6UJ6t+fVbbVBoXDpTpC+4JYasomYZEEjR/Miph3qQrVnIShRwwmwu4P35JW1w==", + "requires": { + "commander": "2.14.1", + "exit-on-epipe": "1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "ssf": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", + "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", + "requires": { + "frac": "1.1.2" + } + } + } + }, + "xml2js": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", + "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "requires": { + "sax": "1.2.4", + "xmlbuilder": "4.2.1" + } + }, + "xmlbuilder": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", + "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", + "requires": { + "lodash": "4.17.11" + } + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { - "chalk": "^2.4.1", - "commander": "^2.16.0", - "js-yaml": "^3.12.0", - "validate": "^4.4.1" + "buffer-crc32": "0.2.13", + "fd-slicer": "1.1.0" } } } diff --git a/scripts/package.json b/scripts/package.json index aa7e9c2a..5f362464 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -4,17 +4,21 @@ "description": "", "main": "index.js", "dependencies": { + "chalk": "^2.4.2", "js-yaml": "^3.12.1", + "jsonlint": "^1.6.3", "md-2-json": "^1.0.5", - "yaml-schema-validator": "^1.1.7" + "pajv": "^1.2.0", + "web3": "^1.0.0-beta.37" }, "devDependencies": {}, "scripts": { "json-lint": "/bin/bash bash/json_lint.sh", - "yaml-schema-lint": "/bin/bash bash/yaml_schema_lint.sh", + "yaml-schema-lint": "node yaml_schema_validate.js", "yaml-content-validate": "node yaml_validate.js", "markdown-validate": "node update_swc.js markdown-validate", - "update-swc": "node update_swc.js > ../export/swc-definition.json" + "update-swc": "node update_swc.js > ../export/swc-definition.json", + "validate-dirs": "node dir_structure.js" }, "author": "", "license": "ISC" diff --git a/scripts/swc-config-schema.json b/scripts/swc-config-schema.json new file mode 100644 index 00000000..cef644d4 --- /dev/null +++ b/scripts/swc-config-schema.json @@ -0,0 +1,38 @@ +{ + "title": "SWC config", + "type": "object", + "required": ["description", "issues"], + "properties": { + "description": { + "type": "string" + }, + "issues": { + "title": "Issue set", + "type": "array", + "items": { + "title": "Issue", + "type": "object", + "required": ["id", "count"], + "properties": { + "id": { + "type": "string" + }, + "count": { + "type": "number" + }, + "locations": { + "type": "array", + "items": { + "bytecode_offsets": { + "type": "object" + }, + "line_numbers": { + "type": "object" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/scripts/swc-config-schema.yaml b/scripts/swc-config-schema.yaml deleted file mode 100644 index d1e287dc..00000000 --- a/scripts/swc-config-schema.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -description: - type: string - required: true -issues: -- id: - type: string - required: true - count: - type: number - required: true - locations: - - bytecode_offsets: - - type: number - line_numbers: - - type: number diff --git a/scripts/yaml_schema_validate.js b/scripts/yaml_schema_validate.js new file mode 100644 index 00000000..c03dc1bb --- /dev/null +++ b/scripts/yaml_schema_validate.js @@ -0,0 +1,24 @@ +const { execSync } = require("child_process"); + +const files = execSync("find ../test_cases -name '*.yaml'"); + +const stdout = files.toString().split('\n'); + +let hasError = false; + +stdout.map(file => { + if (file) { + try { + const output = execSync(`./node_modules/pajv/index.js -s swc-config-schema.json -d ${file}`); + console.log(output.toString()); + } catch(err) { + hasError = true; + } + } +}) + +if (hasError) { + process.exit(1); +} else { + process.exit(0); +} diff --git a/scripts/yaml_validate.js b/scripts/yaml_validate.js index 6907df42..61555dd1 100644 --- a/scripts/yaml_validate.js +++ b/scripts/yaml_validate.js @@ -1,11 +1,11 @@ const fs = require('fs'); const path = require('path'); const yaml = require('js-yaml'); +const web3 = require('web3'); +const chalk = require('chalk'); -let files = []; -const walkSync = (dir) => { - let filelist = []; +const walkSync = (dir, filelist=[]) => { fs.readdirSync(dir).forEach((file) => { if(fs.statSync(path.join(dir, file)).isDirectory()) { filelist = walkSync(path.join(dir, file), filelist) @@ -15,81 +15,182 @@ const walkSync = (dir) => { } } }); - files = [...files, ...filelist]; - return files; + return filelist; }; -let hasIssue = false; -const pattern = /^(SWC-)\d{3}$/; +const KECCAK256_HASH_LENGTH = 64; +const HASH_PREFIX_LENGTH = "0x".length; -const validateYamlConfig = () => { - const configs = walkSync('../test_cases'); - configs.map(file => { - const content = fs.readFileSync(file, 'utf8'); - const jsonContent = yaml.safeLoad(content); - - if (jsonContent.description.length === 0) { - // Issue count description - hasIssue = true; - console.log('================') - console.log(`ERROR: ${file} . Missing description.`) - console.log(content); +const ERRORS = {}; + +const CHECKER_ERRORS = { + DESCRIPTION: { + code: '100', + success: 'Description is ok' + }, + SWC_ID_FORMAT: { + code: '101', + success: 'Valid SWC-ID format' + }, + ISSUE_COUNT: { + code: '102', + success: 'Issue count value is correct', + }, + HASH_GENERATION: { + code: '103', + success: 'Hashes was successfuly generated' + }, + HASH_LENGTH: { + code: '104', + success: 'Valid hash length' + }, + HASH_PREFIX: { + code: '105', + success: 'Hash prefix 0x exists' + }, + HASH_COMPARE: { + code: '106', + success: 'Hash was generated regarding creation (or runtime) bytecode in any of contracts at test case json' + }, + LINO_POINTER: { + code: '107', + success: 'Issue location points to nonexistent file' + } +} + + +const logError = (config, code, error) => { + if (Object.keys(ERRORS).indexOf(config) < 0) ERRORS[config] = {}; + ERRORS[config][code] = error +} + + +const GITHUB_CHECKERS = { + description: (jsonContent) => jsonContent.description.length > 0, + issues: { + swcID: (id) => /^(SWC-)\d{3}$/.test(id), + count: (issue) => issue.count === issue.locations.length, + hash: { + length: (hash) => hash.length === KECCAK256_HASH_LENGTH + HASH_PREFIX_LENGTH, + prefix: (hash) => hash.slice(0, 2) === '0x', + generate: (input) => keccak256(`0x${input}`), } + } +} - jsonContent.issues.map((issue) => { - // TODO: test SWC-[\d+] pattern - if (!pattern.test(issue.id)) { - // Issue count description - hasIssue = true; - console.log('================') - console.log(`ERROR: ${file} . Wrong SWC-ID format!`) - console.log(content); - } - // issue count is a valid integer - if (issue.count > 0) { - if (issue.count !== issue.locations.length) { - // the sum of location pairs have to match count: except when count is zero. - hasIssue = true; - console.log('================') - console.log(`Error in ${file}\n`) - console.log('Wrong issue count and locations length:\n'); - console.log(content); - } - } else { - // In case if 0 - if (issue.locations) { - // Or 1 location paris - if (issue.locations.length == 1) { - // with no location settings - issue.locations.map(location => { - if (location.bytecode_offsets && location.bytecode_offsets.length > 0 || - location.line_numbers && location.line_numbers.length > 0) { - hasIssue = true; - console.log('================') - console.log(`Error in ${file}\n`) - console.log('Wrong issue count and locations:\n'); - console.log(content); - } - }) - } else { - hasIssue = true; - console.log('================') - console.log(`Error in ${file}\n`) - console.log('Wrong issue count and locations:\n'); - console.log(content); - } - } - } +const configValidator = (config) => { + const configContent = fs.readFileSync(config, 'utf8'); + const configContentJson = yaml.safeLoad(configContent); - }) - }); + if (!GITHUB_CHECKERS.description(configContentJson)) { + logError(config, 100, 'Missing description!'); + } + configContentJson.issues.map(issue => issueValidator(config, configContent, issue)); +} + +const issueValidator = (config, content, issue) => { + if (!GITHUB_CHECKERS.issues.swcID(issue.id)) { + logError(config, 101, 'Wrong SWC-ID format!'); + } + if (!GITHUB_CHECKERS.issues.count(issue)) { + logError(config, 102, 'Wrong issue count and locations length!'); + } + issue.locations.map(location => locationValidator(config, content, location)); +} + +const generateHash = (hash, config) => { + try { + const contractHex = web3.utils.toHex('0x' + hash) + return web3.utils.keccak256(contractHex); + } catch(err) { + logError(config, 103, err); + return "ERROR"; + } +} + +const hashValidator = (config, hash) => { + const { issues } = GITHUB_CHECKERS; + + if(!issues.hash.length(hash)) { + logError(config, 104, 'Wrong hash length!'); + } + + if(!issues.hash.prefix(hash)) { + logError(config, 105, 'Missing hash prefix!'); + } + + const jsonContentRaw = fs.readFileSync(config.replace('.yaml', '.json'), 'utf8') + const { contracts } = JSON.parse(jsonContentRaw); + + contractKeys = Object.keys(contracts).filter(contract => + contracts[contract] && contracts[contract].bin.length > 0 + ); + const creation = contractKeys.map(contract => generateHash(contracts[contract]['bin'], config)); + const runtime = contractKeys.map(contract => generateHash(contracts[contract]['bin-runtime'], config)); + if(!creation.includes(hash) && !runtime.includes(hash)) { + const displayCreation = creation.join('\n-') + const displayRuntime = runtime.join('\n-') + logError(config, 106, `Wrong hash! Possible variants:\n ${displayCreation} \n ${displayRuntime}`); + } +}; + +const linenoValidator = (config, content, lineno) => { + const pathSplited = config.split('/'); + pathSplited.pop(); + pathSplited.push(lineno); + const path = pathSplited.join('/'); + + if (!fs.existsSync(path)) { + logError(config, 107, 'Solidity file from `locations` doesn\'t exists.'); + } + +} + +const locationValidator = (config, content, location) => { + const { bytecode_offsets, line_numbers} = location; + const hashes = Object.keys(bytecode_offsets); + const linenums = Object.keys(line_numbers); + + hashes.map(hash => hashValidator(config, hash)); + linenums.map(lineno => linenoValidator(config, content, lineno)); +} + + +const validateYamlConfig = () => { + const configs = walkSync('../test_cases'); + configs.map(config => configValidator(config)); } validateYamlConfig(); -if (hasIssue) { +const displayErrors = () => { + console.log(chalk.white.bgRed('ERRORS:')) + const configs = Object.keys(ERRORS); + configs.map(config => { + console.log('*----------------------------------------------*') + console.log(chalk.red.bold(`Config: ${config}`)); + + const errors = Object.keys(ERRORS[config]); + const checkers = Object.keys(CHECKER_ERRORS); + + checkers.map(key => { + const check = CHECKER_ERRORS[key]; + const { code, success } = check; + let displayCheck = chalk.green(` -- ${success}`); + if (errors.includes(code)) { + const error = ERRORS[config][code]; + displayCheck = chalk.red(` -- ${error}`); + } + console.log(displayCheck) + }) + console.log('*----------------------------------------------*') + }) +}; +if (Object.keys(ERRORS).length > 0) { + displayErrors(); process.exit(1); -} else { +} else { + console.log(chalk.green.bold('Success! \nYaml configs were validated. All configs passed required checks.')); process.exit(); } \ No newline at end of file diff --git a/test_cases/arbitrary_jump/FunctionTypes.yaml b/test_cases/arbitrary_jump/FunctionTypes.yaml deleted file mode 100644 index e9770f0c..00000000 --- a/test_cases/arbitrary_jump/FunctionTypes.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Arbitrary jump with function type variable" -issues: -- id: "SWC-127" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [26] diff --git a/test_cases/assert_violations/assert_constructor.yaml b/test_cases/assert_violations/assert_constructor.yaml deleted file mode 100644 index 9788ab1a..00000000 --- a/test_cases/assert_violations/assert_constructor.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation in constructor" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [24] - line_numbers: [10] - diff --git a/test_cases/assert_violations/assert_minimal.yaml b/test_cases/assert_violations/assert_minimal.yaml deleted file mode 100644 index ab0be1eb..00000000 --- a/test_cases/assert_violations/assert_minimal.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Simple assert violation" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [96] - line_numbers: [10] - diff --git a/test_cases/assert_violations/assert_multitx_1.yaml b/test_cases/assert_violations/assert_multitx_1.yaml deleted file mode 100644 index dd1c1c11..00000000 --- a/test_cases/assert_violations/assert_multitx_1.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert is triggered through constructor argument" -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] - diff --git a/test_cases/assert_violations/assert_multitx_2.yaml b/test_cases/assert_violations/assert_multitx_2.yaml deleted file mode 100644 index a4af2f48..00000000 --- a/test_cases/assert_violations/assert_multitx_2.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert can be triggered with 2 transactions" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [161] - line_numbers: [16] - diff --git a/test_cases/assert_violations/constructor_create.yaml b/test_cases/assert_violations/constructor_create.yaml deleted file mode 100644 index 97e13f25..00000000 --- a/test_cases/assert_violations/constructor_create.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation after call to concretely created contract" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [277] - line_numbers: [12] - diff --git a/test_cases/assert_violations/constructor_create_argument.yaml b/test_cases/assert_violations/constructor_create_argument.yaml deleted file mode 100644 index 30c8b491..00000000 --- a/test_cases/assert_violations/constructor_create_argument.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation after call to concretely created contract with argument" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [277] - line_numbers: [11] - diff --git a/test_cases/assert_violations/constructor_create_modifiable.yaml b/test_cases/assert_violations/constructor_create_modifiable.yaml deleted file mode 100644 index e0feb1aa..00000000 --- a/test_cases/assert_violations/constructor_create_modifiable.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation after call to concretely created contract that can be modified" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [277] - line_numbers: [15] - diff --git a/test_cases/assert_violations/gas_model.yaml b/test_cases/assert_violations/gas_model.yaml deleted file mode 100644 index 9061f0e3..00000000 --- a/test_cases/assert_violations/gas_model.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Gas modeling check" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [112] - line_numbers: [13] - diff --git a/test_cases/assert_violations/gas_model_fixed.yaml b/test_cases/assert_violations/gas_model_fixed.yaml deleted file mode 100644 index 521de021..00000000 --- a/test_cases/assert_violations/gas_model_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Gas modeling check fixed" -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/assert_violations/mapping_perfomance_2.yaml b/test_cases/assert_violations/mapping_perfomance_2.yaml deleted file mode 100644 index c2deb076..00000000 --- a/test_cases/assert_violations/mapping_perfomance_2.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Mapping performance test." -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] - diff --git a/test_cases/assert_violations/mapping_performance_1.yaml b/test_cases/assert_violations/mapping_performance_1.yaml deleted file mode 100644 index 1ad895d3..00000000 --- a/test_cases/assert_violations/mapping_performance_1.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Mapping performance test." -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/assert_violations/out-of-bounds-exception.yaml b/test_cases/assert_violations/out-of-bounds-exception.yaml deleted file mode 100644 index 06723e90..00000000 --- a/test_cases/assert_violations/out-of-bounds-exception.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: "Exceptions triggered by out-of-bounds array (not an explicit assert violation)." -issues: -- id: "SWC-110" - count: 0 - diff --git a/test_cases/assert_violations/runtime_create_user_input.yaml b/test_cases/assert_violations/runtime_create_user_input.yaml deleted file mode 100644 index 33b8f2ac..00000000 --- a/test_cases/assert_violations/runtime_create_user_input.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation after call to contract created with user input during runtime" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [296] - line_numbers: [11] - diff --git a/test_cases/assert_violations/runtime_user_input_call.yaml b/test_cases/assert_violations/runtime_user_input_call.yaml deleted file mode 100644 index 193e21f1..00000000 --- a/test_cases/assert_violations/runtime_user_input_call.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Assert violation after call to user input contract" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [269] - line_numbers: [10] - diff --git a/test_cases/assert_violations/sha_of_sha_2_mappings.yaml b/test_cases/assert_violations/sha_of_sha_2_mappings.yaml deleted file mode 100644 index 9f35b7b9..00000000 --- a/test_cases/assert_violations/sha_of_sha_2_mappings.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Check of non-collision between two maps that use SHA as a keys" -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/assert_violations/sha_of_sha_collision.yaml b/test_cases/assert_violations/sha_of_sha_collision.yaml deleted file mode 100644 index fe8a101c..00000000 --- a/test_cases/assert_violations/sha_of_sha_collision.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Check for collision in maps that use SHA hashes as keys" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [319] - line_numbers: [18] - diff --git a/test_cases/assert_violations/sha_of_sha_concrete.yaml b/test_cases/assert_violations/sha_of_sha_concrete.yaml deleted file mode 100644 index ea8499ce..00000000 --- a/test_cases/assert_violations/sha_of_sha_concrete.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Check the mapping that uses the SHA value as a key does not collide with concretes" -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] - diff --git a/test_cases/assert_violations/token-with-backdoor.yaml b/test_cases/assert_violations/token-with-backdoor.yaml deleted file mode 100644 index eef90bc2..00000000 --- a/test_cases/assert_violations/token-with-backdoor.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Assertion can be violated with 3 transactions" -issues: -- id: "SWC-110" - count: 1 - locations: - - bytecode_offsets: [698] - line_numbers: [28] diff --git a/test_cases/assert_violations/two_mapppings.yaml b/test_cases/assert_violations/two_mapppings.yaml deleted file mode 100644 index 5c4d4b4e..00000000 --- a/test_cases/assert_violations/two_mapppings.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Check that two mappings are not colliding with each other" -issues: -- id: "SWC-110" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] - diff --git a/test_cases/call_best_practices/send_loop.yaml b/test_cases/call_best_practices/send_loop.yaml deleted file mode 100644 index 86f71298..00000000 --- a/test_cases/call_best_practices/send_loop.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Multiple sends in a single transaction" -issues: -- id: "SWC-113" - count: 1 - locations: - - bytecode_offsets: [431] - line_numbers: [21,22,23] diff --git a/test_cases/call_best_practices/unchecked_return_value.yaml b/test_cases/call_best_practices/unchecked_return_value.yaml deleted file mode 100644 index f6b30a2d..00000000 --- a/test_cases/call_best_practices/unchecked_return_value.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Unchecked Return Value" -issues: -- id: "SWC-104" - count: 1 - locations: - - bytecode_offsets: [294] - line_numbers: [12] - diff --git a/test_cases/ctf/tokensalechallenge.yaml b/test_cases/ctf/tokensalechallenge.yaml deleted file mode 100644 index adc97cac..00000000 --- a/test_cases/ctf/tokensalechallenge.yaml +++ /dev/null @@ -1,16 +0,0 @@ -description: "Integer overflow leading into Ether theft" -issues: -- id: "SWC-101" - count: 3 - locations: - - bytecode_offsets: [390] - line_numbers: [21] - - bytecode_offsets: [472] - line_numbers: [23] - - bytecode_offsets: [672] - line_numbers: [30] -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [693] - line_numbers: [30] \ No newline at end of file diff --git a/test_cases/default_visibility_functions/visibility_not_set.yaml b/test_cases/default_visibility_functions/visibility_not_set.yaml deleted file mode 100644 index 8a9e9414..00000000 --- a/test_cases/default_visibility_functions/visibility_not_set.yaml +++ /dev/null @@ -1,9 +0,0 @@ -description: "Default function visibility" -issues: -- id: "SWC-100" - count: 2 - locations: - - bytecode_offsets: - line_numbers: [11] - - bytecode_offsets: - line_numbers: [17] diff --git a/test_cases/default_visibility_functions/visibility_not_set_fixed.yaml b/test_cases/default_visibility_functions/visibility_not_set_fixed.yaml deleted file mode 100644 index 121a1465..00000000 --- a/test_cases/default_visibility_functions/visibility_not_set_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Default function visibility" -issues: -- id: "SWC-100" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/default_visibility_variables/storage.yaml b/test_cases/default_visibility_variables/storage.yaml deleted file mode 100644 index 9949f655..00000000 --- a/test_cases/default_visibility_variables/storage.yaml +++ /dev/null @@ -1,18 +0,0 @@ -description: "Default state variable visibility" -issues: -- id: "SWC-108" - count: 6 - locations: - - bytecode_offsets: - line_numbers: [5] - - bytecode_offsets: - line_numbers: [7] - - bytecode_offsets: - line_numbers: [9] - - bytecode_offsets: - line_numbers: [14] - - bytecode_offsets: - line_numbers: [16] - - bytecode_offsets: - line_numbers: [17] - diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy.yaml b/test_cases/delegate_call_to_untrusted_callee/proxy.yaml deleted file mode 100644 index b03e599f..00000000 --- a/test_cases/delegate_call_to_untrusted_callee/proxy.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Simple proxy pattern with delegatecall" -issues: -- id: "SWC-112" - count: 1 - locations: - - bytecode_offsets: [337] - line_numbers: [8] diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_fixed.yaml b/test_cases/delegate_call_to_untrusted_callee/proxy_fixed.yaml deleted file mode 100644 index ed1f6ee3..00000000 --- a/test_cases/delegate_call_to_untrusted_callee/proxy_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Simple proxy pattern with delegatecall (fixed)" -issues: -- id: "SWC-112" - count: 0 - locations: - - bytecode_offsets: - line_numbers: diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.yaml b/test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.yaml deleted file mode 100644 index 15699c26..00000000 --- a/test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Delegatecall to arbitrary address that can never change state" -issues: -- id: "SWC-112" - count: 0 - locations: - - bytecode_offsets: - line_numbers: diff --git a/test_cases/deprecated_constructs/deprecated_simple.yaml b/test_cases/deprecated_constructs/deprecated_simple.yaml deleted file mode 100644 index 5238b245..00000000 --- a/test_cases/deprecated_constructs/deprecated_simple.yaml +++ /dev/null @@ -1,19 +0,0 @@ -description: "Use of deprecated functions and aliases" -issues: -- id: "SWC-111" - count: 7 - locations: - - bytecode_offsets: - line_numbers: [5] - - bytecode_offsets: - line_numbers: [9] - - bytecode_offsets: - line_numbers: [10] - - bytecode_offsets: - line_numbers: [12] - - bytecode_offsets: - line_numbers: [15] - - bytecode_offsets: - line_numbers: [18] - - bytecode_offsets: - line_numbers: [20] \ No newline at end of file diff --git a/test_cases/dos_gas_limit/dos_address.yaml b/test_cases/dos_gas_limit/dos_address.yaml deleted file mode 100644 index bc43d340..00000000 --- a/test_cases/dos_gas_limit/dos_address.yaml +++ /dev/null @@ -1,6 +0,0 @@ -description: "DoS Gas Limit reaches when try to empty the array of addresses for winning the game" -issues: -- id: "SWC-128" - count: 1 - locations: - - line_numbers: [10] diff --git a/test_cases/dos_gas_limit/dos_number.yaml b/test_cases/dos_gas_limit/dos_number.yaml deleted file mode 100644 index 08bc042c..00000000 --- a/test_cases/dos_gas_limit/dos_number.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "DoS Gas Limit in array empty and optionally in for loop" -issues: -- id: "SWC-128" - count: 2 - locations: - - line_numbers: [11] - - line_numbers: [29] diff --git a/test_cases/dos_gas_limit/dos_simple.yaml b/test_cases/dos_gas_limit/dos_simple.yaml deleted file mode 100644 index a8d45e08..00000000 --- a/test_cases/dos_gas_limit/dos_simple.yaml +++ /dev/null @@ -1,6 +0,0 @@ -description: "DoS Gas Limit reaches when try to empty the array of addresses" -issues: -- id: "SWC-128" - count: 1 - locations: - - line_numbers: [16] diff --git a/test_cases/incorrect_inheritance_order/MDTCrowdsale.yaml b/test_cases/incorrect_inheritance_order/MDTCrowdsale.yaml deleted file mode 100644 index a6b34c0d..00000000 --- a/test_cases/incorrect_inheritance_order/MDTCrowdsale.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Incorrect inheritance order" -issues: -- id: "SWC-125" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [162] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.yaml deleted file mode 100644 index 3ff2f140..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.yaml deleted file mode 100644 index 6fa0c99b..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.yaml deleted file mode 100644 index 93cae3c2..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow in mapping" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [9] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.yaml deleted file mode 100644 index 3b46df2c..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow in mapping" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_minimal.yaml deleted file mode 100644 index 3ff2f140..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.yaml deleted file mode 100644 index 6fa0c99b..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_mul.yaml deleted file mode 100644 index 0024fa6f..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_mul.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow using mul" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.yaml deleted file mode 100644 index ab426005..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Single transaction overflow using mul" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.yaml deleted file mode 100644 index 193ac8f6..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Integer overflow (reachable by calling 2 functions over 2 transactions)" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [218] - line_numbers: [24] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.yaml deleted file mode 100644 index cf55a23b..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Multi-transactional, multi-function" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.yaml deleted file mode 100644 index 910163bd..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.yaml +++ /dev/null @@ -1,8 +0,0 @@ -description: "Integer overflow (reachable in 2 transactions)" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [196] - line_numbers: [21] - diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.yaml deleted file mode 100644 index 427af8c2..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Multi-transactional, single function" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.yaml b/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.yaml deleted file mode 100644 index 26ba30cd..00000000 --- a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Integer overflow (unreachable)" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add.yaml b/test_cases/integer_overflow_and_underflow/overflow_simple_add.yaml deleted file mode 100644 index 66dbb44a..00000000 --- a/test_cases/integer_overflow_and_underflow/overflow_simple_add.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Plain and simple ADD overflow example" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [7] diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.yaml b/test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.yaml deleted file mode 100644 index 811c8a75..00000000 --- a/test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Plain and simple ADD overflow example" -issues: -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/integer_overflow_and_underflow/overflow_single_tx.yaml b/test_cases/integer_overflow_and_underflow/overflow_single_tx.yaml deleted file mode 100644 index 960bb3cd..00000000 --- a/test_cases/integer_overflow_and_underflow/overflow_single_tx.yaml +++ /dev/null @@ -1,11 +0,0 @@ -description: "Overflows and underflows micro-samples (single transaction)" -issues: -- id: "SWC-101" - count: 3 - locations: - - bytecode_offsets: [525] - line_numbers: [11] - - bytecode_offsets: [494] - line_numbers: [16] - - bytecode_offsets: [476] - line_numbers: [21] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name1.yaml deleted file mode 100644 index eda0a862..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name1.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 1" -issues: -- id: "SWC-118" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [19] \ No newline at end of file diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.yaml deleted file mode 100644 index 75347a9c..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 1" -issues: -- id: "SWC-118" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name2.yaml deleted file mode 100644 index aa7acb2b..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name2.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 2" -issues: -- id: "SWC-118" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [18] \ No newline at end of file diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.yaml deleted file mode 100644 index e64dd111..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 2" -issues: -- id: "SWC-118" - count: 0 - locations: - - bytecode_offsets: - line_numbers: [] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name3.yaml deleted file mode 100644 index e58c4e7d..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name3.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 3" -issues: -- id: "SWC-118" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [17] \ No newline at end of file diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.yaml b/test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.yaml deleted file mode 100644 index eeed4bf1..00000000 --- a/test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Invalid contructor name variant 3" -issues: -- id: "SWC-118" - count: 0 - locations: - - bytecode_offsets: - line_numbers: [] diff --git a/test_cases/outdated_compiler_version/version_0_4_13.yaml b/test_cases/outdated_compiler_version/version_0_4_13.yaml deleted file mode 100644 index 6b689a70..00000000 --- a/test_cases/outdated_compiler_version/version_0_4_13.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Test for outdated Solidity compiler" -issues: -- id: "SWC-102" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [1] diff --git a/test_cases/pragma_not_locked/floating_pragma.yaml b/test_cases/pragma_not_locked/floating_pragma.yaml deleted file mode 100644 index 9d53dd88..00000000 --- a/test_cases/pragma_not_locked/floating_pragma.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Floating pragma" -issues: -- id: "SWC-103" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [1] \ No newline at end of file diff --git a/test_cases/pragma_not_locked/floating_pragma_fixed.yaml b/test_cases/pragma_not_locked/floating_pragma_fixed.yaml deleted file mode 100644 index 6db287de..00000000 --- a/test_cases/pragma_not_locked/floating_pragma_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Floating pragma fixed" -issues: -- id: "SWC-103" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [1] diff --git a/test_cases/pragma_not_locked/no_pragma.yaml b/test_cases/pragma_not_locked/no_pragma.yaml deleted file mode 100644 index ef0b010c..00000000 --- a/test_cases/pragma_not_locked/no_pragma.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Floating pragma" -issues: -- id: "SWC-103" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [1] diff --git a/test_cases/real_world_samples/BECToken.yaml b/test_cases/real_world_samples/BECToken.yaml deleted file mode 100644 index e9651782..00000000 --- a/test_cases/real_world_samples/BECToken.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "BECToken: Integer overflow in batchTransfer function" -issues: -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [1587] - line_numbers: [257] diff --git a/test_cases/real_world_samples/WalletLibrary.yaml b/test_cases/real_world_samples/WalletLibrary.yaml deleted file mode 100644 index 139ce553..00000000 --- a/test_cases/real_world_samples/WalletLibrary.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Parity Walletlibrary 'accidential suicide'" -issues: -- id: "SWC-106" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [225,226] diff --git a/test_cases/real_world_samples/rubixi.yaml b/test_cases/real_world_samples/rubixi.yaml deleted file mode 100644 index 61834c84..00000000 --- a/test_cases/real_world_samples/rubixi.yaml +++ /dev/null @@ -1,11 +0,0 @@ -description: "Rubixi: Ether can be drained in 2 transactions" -issues: -- id: "SWC-105" - count: 3 - locations: - - bytecode_offsets: [2014] - line_numbers: [75] - - bytecode_offsets: [2644] - line_numbers: [85] - - bytecode_offsets: [1673] - line_numbers: [93] diff --git a/test_cases/reentracy/modifier_reentrancy.yaml b/test_cases/reentracy/modifier_reentrancy.yaml deleted file mode 100644 index e409fb06..00000000 --- a/test_cases/reentracy/modifier_reentrancy.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Reentrancy (state change after external call)" -issues: -- id: "SWC-107" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [8, 9] diff --git a/test_cases/reentracy/modifier_reentrancy_fixed.yaml b/test_cases/reentracy/modifier_reentrancy_fixed.yaml deleted file mode 100644 index 7bc4084f..00000000 --- a/test_cases/reentracy/modifier_reentrancy_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Reentrancy (state change after external call)" -issues: -- id: "SWC-107" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/reentracy/simple_dao.yaml b/test_cases/reentracy/simple_dao.yaml deleted file mode 100644 index 48e96803..00000000 --- a/test_cases/reentracy/simple_dao.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Reentrancy (state change after external call)" -issues: -- id: "SWC-107" - count: 1 - locations: - - bytecode_offsets: [565, 655] - line_numbers: [17,18] diff --git a/test_cases/reentracy/simple_dao_fixed.yaml b/test_cases/reentracy/simple_dao_fixed.yaml deleted file mode 100644 index 01b52ecb..00000000 --- a/test_cases/reentracy/simple_dao_fixed.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: "Reentrancy (state change after external call)" -issues: -- id: "SWC-107" - count: 0 diff --git a/test_cases/requirement_violations/requirement_simple.yaml b/test_cases/requirement_violations/requirement_simple.yaml deleted file mode 100644 index 640a9bb7..00000000 --- a/test_cases/requirement_violations/requirement_simple.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Simple requirement violation" -issues: -- id: "SWC-123" - count: 1 - locations: - - bytecode_offsets: [263,145] - line_numbers: [6,12] diff --git a/test_cases/requirement_violations/requirement_simple_fixed.yaml b/test_cases/requirement_violations/requirement_simple_fixed.yaml deleted file mode 100644 index d58fee96..00000000 --- a/test_cases/requirement_violations/requirement_simple_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Simple requirement violation" -issues: -- id: "SWC-123" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.yaml b/test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.yaml deleted file mode 100644 index 9f0aabaa..00000000 --- a/test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: "Shadowing a state variable in functions" -issues: -- id: "SWC-119" - count: 4 - locations: - - bytecode_offsets: - line_numbers: [7] - - bytecode_offsets: - line_numbers: [11] - - bytecode_offsets: - line_numbers: [16] - - bytecode_offsets: - line_numbers: [17] \ No newline at end of file diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale.yaml b/test_cases/shadowing_inherited_state_variables/TokenSale.yaml deleted file mode 100644 index d0bb073b..00000000 --- a/test_cases/shadowing_inherited_state_variables/TokenSale.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Shadowing a state variable in a inherited contract" -issues: -- id: "SWC-119" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [4] \ No newline at end of file diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale_fixed.yaml b/test_cases/shadowing_inherited_state_variables/TokenSale_fixed.yaml deleted file mode 100644 index 54650d79..00000000 --- a/test_cases/shadowing_inherited_state_variables/TokenSale_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Shadowing a state variable in a inherited contract" -issues: -- id: "SWC-119" - count: 0 - locations: - - bytecode_offsets: - line_numbers: [] diff --git a/test_cases/arbitrary_jump/FunctionTypes.json b/test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.json similarity index 100% rename from test_cases/arbitrary_jump/FunctionTypes.json rename to test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.json diff --git a/test_cases/arbitrary_jump/FunctionTypes.sol b/test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.sol similarity index 100% rename from test_cases/arbitrary_jump/FunctionTypes.sol rename to test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.sol diff --git a/test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.yaml b/test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.yaml new file mode 100644 index 00000000..ca319b95 --- /dev/null +++ b/test_cases/solidity/arbitrary_jump/FunctionTypes/FunctionTypes.yaml @@ -0,0 +1,9 @@ +description: Arbitrary jump with function type variable +issues: +- id: SWC-127 + count: 1 + locations: + - bytecode_offsets: + '0x10262f9b836c8ce4a7c2807a00b08e278094414ceeb2b5cbf4365c7ced0fd2f9': [264] + line_numbers: + FunctionTypes.sol: [26] diff --git a/test_cases/assert_violations/assert_constructor.json b/test_cases/solidity/assert_violations/assert_constructor/assert_constructor.json similarity index 100% rename from test_cases/assert_violations/assert_constructor.json rename to test_cases/solidity/assert_violations/assert_constructor/assert_constructor.json diff --git a/test_cases/assert_violations/assert_constructor.sol b/test_cases/solidity/assert_violations/assert_constructor/assert_constructor.sol similarity index 100% rename from test_cases/assert_violations/assert_constructor.sol rename to test_cases/solidity/assert_violations/assert_constructor/assert_constructor.sol diff --git a/test_cases/solidity/assert_violations/assert_constructor/assert_constructor.yaml b/test_cases/solidity/assert_violations/assert_constructor/assert_constructor.yaml new file mode 100644 index 00000000..d4a44907 --- /dev/null +++ b/test_cases/solidity/assert_violations/assert_constructor/assert_constructor.yaml @@ -0,0 +1,9 @@ +description: Assert violation in constructor +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x78a26dc3f4a5757a59e3a9d9872f127cb3941448491b0e903c126462041f2779': [24] + line_numbers: + assert_constructor.sol: [10] diff --git a/test_cases/assert_violations/assert_minimal.json b/test_cases/solidity/assert_violations/assert_minimal/assert_minimal.json similarity index 100% rename from test_cases/assert_violations/assert_minimal.json rename to test_cases/solidity/assert_violations/assert_minimal/assert_minimal.json diff --git a/test_cases/assert_violations/assert_minimal.sol b/test_cases/solidity/assert_violations/assert_minimal/assert_minimal.sol similarity index 100% rename from test_cases/assert_violations/assert_minimal.sol rename to test_cases/solidity/assert_violations/assert_minimal/assert_minimal.sol diff --git a/test_cases/solidity/assert_violations/assert_minimal/assert_minimal.yaml b/test_cases/solidity/assert_violations/assert_minimal/assert_minimal.yaml new file mode 100644 index 00000000..cf3c8555 --- /dev/null +++ b/test_cases/solidity/assert_violations/assert_minimal/assert_minimal.yaml @@ -0,0 +1,9 @@ +description: Simple assert violation +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0xa40b253d3c13b16521a0123d94cb32124885577e67659d17db972cf36414861b': [96] + line_numbers: + assert_minimal.sol: [10] diff --git a/test_cases/assert_violations/assert_multitx_1.json b/test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.json similarity index 100% rename from test_cases/assert_violations/assert_multitx_1.json rename to test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.json diff --git a/test_cases/assert_violations/assert_multitx_1.sol b/test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.sol similarity index 100% rename from test_cases/assert_violations/assert_multitx_1.sol rename to test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.sol diff --git a/test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.yaml b/test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.yaml new file mode 100644 index 00000000..4af28812 --- /dev/null +++ b/test_cases/solidity/assert_violations/assert_multitx_1/assert_multitx_1.yaml @@ -0,0 +1,5 @@ +description: Assert is triggered through constructor argument +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/assert_multitx_2.json b/test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.json similarity index 100% rename from test_cases/assert_violations/assert_multitx_2.json rename to test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.json diff --git a/test_cases/assert_violations/assert_multitx_2.sol b/test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.sol similarity index 100% rename from test_cases/assert_violations/assert_multitx_2.sol rename to test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.sol diff --git a/test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.yaml b/test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.yaml new file mode 100644 index 00000000..5546a9d7 --- /dev/null +++ b/test_cases/solidity/assert_violations/assert_multitx_2/assert_multitx_2.yaml @@ -0,0 +1,9 @@ +description: Assert can be triggered with 2 transactions +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x25e5dd25cd6cc2409070e066096e3c426133dc56dae1d6d4ae3d565e305cd28b': [161] + line_numbers: + assert_multitx_2.sol: [16] diff --git a/test_cases/assert_violations/constructor_create.json b/test_cases/solidity/assert_violations/constructor_create/constructor_create.json similarity index 100% rename from test_cases/assert_violations/constructor_create.json rename to test_cases/solidity/assert_violations/constructor_create/constructor_create.json diff --git a/test_cases/assert_violations/constructor_create.sol b/test_cases/solidity/assert_violations/constructor_create/constructor_create.sol similarity index 100% rename from test_cases/assert_violations/constructor_create.sol rename to test_cases/solidity/assert_violations/constructor_create/constructor_create.sol diff --git a/test_cases/solidity/assert_violations/constructor_create/constructor_create.yaml b/test_cases/solidity/assert_violations/constructor_create/constructor_create.yaml new file mode 100644 index 00000000..e51575ee --- /dev/null +++ b/test_cases/solidity/assert_violations/constructor_create/constructor_create.yaml @@ -0,0 +1,9 @@ +description: Assert violation after call to concretely created contract +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0xc27f0d2e53876fb4e1100569b750ff701f48b85487e89782f8b8e4dd72369e67': [295] + line_numbers: + constructor_create.sol: [12] diff --git a/test_cases/assert_violations/constructor_create_argument.json b/test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.json similarity index 100% rename from test_cases/assert_violations/constructor_create_argument.json rename to test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.json diff --git a/test_cases/assert_violations/constructor_create_argument.sol b/test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.sol similarity index 100% rename from test_cases/assert_violations/constructor_create_argument.sol rename to test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.sol diff --git a/test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.yaml b/test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.yaml new file mode 100644 index 00000000..278de965 --- /dev/null +++ b/test_cases/solidity/assert_violations/constructor_create_argument/constructor_create_argument.yaml @@ -0,0 +1,9 @@ +description: Assert violation after call to concretely created contract with argument +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0xa9bafdd71a4744d05c44b4cf2f75e05bb66b0252ae3ec370587e49b15fde453c': [295] + line_numbers: + constructor_create_argument.sol: [11] diff --git a/test_cases/assert_violations/constructor_create_modifiable.json b/test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.json similarity index 100% rename from test_cases/assert_violations/constructor_create_modifiable.json rename to test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.json diff --git a/test_cases/assert_violations/constructor_create_modifiable.sol b/test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.sol similarity index 100% rename from test_cases/assert_violations/constructor_create_modifiable.sol rename to test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.sol diff --git a/test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.yaml b/test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.yaml new file mode 100644 index 00000000..efb26b2e --- /dev/null +++ b/test_cases/solidity/assert_violations/constructor_create_modifiable/constructor_create_modifiable.yaml @@ -0,0 +1,9 @@ +description: Assert violation after call to concretely created contract that can be modified +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x1c77f218521194c2d487296217ed6bb645d315faf344a09769103a7eee6a8250': [277] + line_numbers: + constructor_create_modifiable.sol: [15] diff --git a/test_cases/assert_violations/gas_model.json b/test_cases/solidity/assert_violations/gas_model/gas_model.json similarity index 100% rename from test_cases/assert_violations/gas_model.json rename to test_cases/solidity/assert_violations/gas_model/gas_model.json diff --git a/test_cases/assert_violations/gas_model.sol b/test_cases/solidity/assert_violations/gas_model/gas_model.sol similarity index 100% rename from test_cases/assert_violations/gas_model.sol rename to test_cases/solidity/assert_violations/gas_model/gas_model.sol diff --git a/test_cases/solidity/assert_violations/gas_model/gas_model.yaml b/test_cases/solidity/assert_violations/gas_model/gas_model.yaml new file mode 100644 index 00000000..f773db61 --- /dev/null +++ b/test_cases/solidity/assert_violations/gas_model/gas_model.yaml @@ -0,0 +1,9 @@ +description: Gas modeling check +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x1d0245bf42c590285bb4751565a6fabbdb6825e95c009d8e5392b63d9851d9ab': [118] + line_numbers: + gas_model.sol: [13] diff --git a/test_cases/assert_violations/gas_model_fixed.json b/test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.json similarity index 100% rename from test_cases/assert_violations/gas_model_fixed.json rename to test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.json diff --git a/test_cases/assert_violations/gas_model_fixed.sol b/test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.sol similarity index 100% rename from test_cases/assert_violations/gas_model_fixed.sol rename to test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.sol diff --git a/test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.yaml b/test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.yaml new file mode 100644 index 00000000..5bd48d81 --- /dev/null +++ b/test_cases/solidity/assert_violations/gas_model_fixed/gas_model_fixed.yaml @@ -0,0 +1,5 @@ +description: Gas modeling check fixed +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/mapping_perfomance_2.json b/test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.json similarity index 100% rename from test_cases/assert_violations/mapping_perfomance_2.json rename to test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.json diff --git a/test_cases/assert_violations/mapping_perfomance_2.sol b/test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.sol similarity index 100% rename from test_cases/assert_violations/mapping_perfomance_2.sol rename to test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.sol diff --git a/test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.yaml b/test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.yaml new file mode 100644 index 00000000..46b6ea2b --- /dev/null +++ b/test_cases/solidity/assert_violations/mapping_perfomance_2/mapping_perfomance_2.yaml @@ -0,0 +1,5 @@ +description: Mapping performance test. +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/mapping_performance_1.json b/test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.json similarity index 100% rename from test_cases/assert_violations/mapping_performance_1.json rename to test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.json diff --git a/test_cases/assert_violations/mapping_performance_1.sol b/test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.sol similarity index 100% rename from test_cases/assert_violations/mapping_performance_1.sol rename to test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.sol diff --git a/test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.yaml b/test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.yaml new file mode 100644 index 00000000..46b6ea2b --- /dev/null +++ b/test_cases/solidity/assert_violations/mapping_performance_1/mapping_performance_1.yaml @@ -0,0 +1,5 @@ +description: Mapping performance test. +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/out-of-bounds-exception.json b/test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.json similarity index 100% rename from test_cases/assert_violations/out-of-bounds-exception.json rename to test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.json diff --git a/test_cases/assert_violations/out-of-bounds-exception.sol b/test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.sol similarity index 100% rename from test_cases/assert_violations/out-of-bounds-exception.sol rename to test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.sol diff --git a/test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.yaml b/test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.yaml new file mode 100644 index 00000000..26c210cc --- /dev/null +++ b/test_cases/solidity/assert_violations/out-of-bounds-exception/out-of-bounds-exception.yaml @@ -0,0 +1,5 @@ +description: Exceptions triggered by out-of-bounds array (not an explicit assert violation). +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/runtime_create_user_input.json b/test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.json similarity index 100% rename from test_cases/assert_violations/runtime_create_user_input.json rename to test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.json diff --git a/test_cases/assert_violations/runtime_create_user_input.sol b/test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.sol similarity index 100% rename from test_cases/assert_violations/runtime_create_user_input.sol rename to test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.sol diff --git a/test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.yaml b/test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.yaml new file mode 100644 index 00000000..9ff5e54f --- /dev/null +++ b/test_cases/solidity/assert_violations/runtime_create_user_input/runtime_create_user_input.yaml @@ -0,0 +1,9 @@ +description: Assert violation after call to contract created with user input during runtime +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x1410f656e6c549fa79b9b13b559ef15eb4149c80d4f22a314642993add450e19': [336] + line_numbers: + runtime_create_user_input.sol: [11] diff --git a/test_cases/assert_violations/runtime_user_input_call.json b/test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.json similarity index 100% rename from test_cases/assert_violations/runtime_user_input_call.json rename to test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.json diff --git a/test_cases/assert_violations/runtime_user_input_call.sol b/test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.sol similarity index 100% rename from test_cases/assert_violations/runtime_user_input_call.sol rename to test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.sol diff --git a/test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.yaml b/test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.yaml new file mode 100644 index 00000000..e6de0254 --- /dev/null +++ b/test_cases/solidity/assert_violations/runtime_user_input_call/runtime_user_input_call.yaml @@ -0,0 +1,9 @@ +description: Assert violation after call to user input contract +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x8559dc02c1ce9782181ae177826759435d170c82dac501e8f2d626df5eef577e': [269] + line_numbers: + runtime_user_input_call.sol: [10] diff --git a/test_cases/assert_violations/sha_of_sha_2_mappings.json b/test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.json similarity index 100% rename from test_cases/assert_violations/sha_of_sha_2_mappings.json rename to test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.json diff --git a/test_cases/assert_violations/sha_of_sha_2_mappings.sol b/test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.sol similarity index 100% rename from test_cases/assert_violations/sha_of_sha_2_mappings.sol rename to test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.sol diff --git a/test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.yaml b/test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.yaml new file mode 100644 index 00000000..2b38e38c --- /dev/null +++ b/test_cases/solidity/assert_violations/sha_of_sha_2_mappings/sha_of_sha_2_mappings.yaml @@ -0,0 +1,5 @@ +description: Check of non-collision between two maps that use SHA as a keys +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/sha_of_sha_collision.json b/test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.json similarity index 100% rename from test_cases/assert_violations/sha_of_sha_collision.json rename to test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.json diff --git a/test_cases/assert_violations/sha_of_sha_collision.sol b/test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.sol similarity index 100% rename from test_cases/assert_violations/sha_of_sha_collision.sol rename to test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.sol diff --git a/test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.yaml b/test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.yaml new file mode 100644 index 00000000..678b7cba --- /dev/null +++ b/test_cases/solidity/assert_violations/sha_of_sha_collision/sha_of_sha_collision.yaml @@ -0,0 +1,9 @@ +description: Check for collision in maps that use SHA hashes as keys +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0x7cb9e07513139d72ea4ef963082a4b9f9474e7add211816a1b537bdfdd6750f8': [319] + line_numbers: + sha_of_sha_collision.sol: [18] diff --git a/test_cases/assert_violations/sha_of_sha_concrete.json b/test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.json similarity index 100% rename from test_cases/assert_violations/sha_of_sha_concrete.json rename to test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.json diff --git a/test_cases/assert_violations/sha_of_sha_concrete.sol b/test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.sol similarity index 100% rename from test_cases/assert_violations/sha_of_sha_concrete.sol rename to test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.sol diff --git a/test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.yaml b/test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.yaml new file mode 100644 index 00000000..10c5e14e --- /dev/null +++ b/test_cases/solidity/assert_violations/sha_of_sha_concrete/sha_of_sha_concrete.yaml @@ -0,0 +1,5 @@ +description: Check the mapping that uses the SHA value as a key does not collide with concretes +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/assert_violations/token-with-backdoor.json b/test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.json similarity index 100% rename from test_cases/assert_violations/token-with-backdoor.json rename to test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.json diff --git a/test_cases/assert_violations/token-with-backdoor.sol b/test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.sol similarity index 100% rename from test_cases/assert_violations/token-with-backdoor.sol rename to test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.sol diff --git a/test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.yaml b/test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.yaml new file mode 100644 index 00000000..495303fb --- /dev/null +++ b/test_cases/solidity/assert_violations/token-with-backdoor/token-with-backdoor.yaml @@ -0,0 +1,9 @@ +description: Assertion can be violated with 3 transactions +issues: +- id: SWC-110 + count: 1 + locations: + - bytecode_offsets: + '0xc810f8fbf957d5a04cf056b60acf88a61e41c161ef62cc572333b318b688a88b': [698] + line_numbers: + token-with-backdoor.sol: [28] diff --git a/test_cases/assert_violations/two_mapppings.json b/test_cases/solidity/assert_violations/two_mapppings/two_mapppings.json similarity index 100% rename from test_cases/assert_violations/two_mapppings.json rename to test_cases/solidity/assert_violations/two_mapppings/two_mapppings.json diff --git a/test_cases/assert_violations/two_mapppings.sol b/test_cases/solidity/assert_violations/two_mapppings/two_mapppings.sol similarity index 100% rename from test_cases/assert_violations/two_mapppings.sol rename to test_cases/solidity/assert_violations/two_mapppings/two_mapppings.sol diff --git a/test_cases/solidity/assert_violations/two_mapppings/two_mapppings.yaml b/test_cases/solidity/assert_violations/two_mapppings/two_mapppings.yaml new file mode 100644 index 00000000..b901cf84 --- /dev/null +++ b/test_cases/solidity/assert_violations/two_mapppings/two_mapppings.yaml @@ -0,0 +1,5 @@ +description: Check that two mappings are not colliding with each other +issues: +- id: SWC-110 + count: 0 + locations: [] diff --git a/test_cases/call_best_practices/send_loop.json b/test_cases/solidity/call_best_practices/send_loop/send_loop.json similarity index 100% rename from test_cases/call_best_practices/send_loop.json rename to test_cases/solidity/call_best_practices/send_loop/send_loop.json diff --git a/test_cases/call_best_practices/send_loop.sol b/test_cases/solidity/call_best_practices/send_loop/send_loop.sol similarity index 100% rename from test_cases/call_best_practices/send_loop.sol rename to test_cases/solidity/call_best_practices/send_loop/send_loop.sol diff --git a/test_cases/solidity/call_best_practices/send_loop/send_loop.yaml b/test_cases/solidity/call_best_practices/send_loop/send_loop.yaml new file mode 100644 index 00000000..081b6c4c --- /dev/null +++ b/test_cases/solidity/call_best_practices/send_loop/send_loop.yaml @@ -0,0 +1,9 @@ +description: Multiple sends in a single transaction +issues: +- id: SWC-113 + count: 1 + locations: + - bytecode_offsets: + '0x0740310f63ff97d41fdc9170b44535586a824d54c710dd0e9f75d7103bf71ce8': [431] + line_numbers: + send_loop.sol: [21, 22, 23] diff --git a/test_cases/call_best_practices/unchecked_return_value.json b/test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.json similarity index 100% rename from test_cases/call_best_practices/unchecked_return_value.json rename to test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.json diff --git a/test_cases/call_best_practices/unchecked_return_value.sol b/test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.sol similarity index 100% rename from test_cases/call_best_practices/unchecked_return_value.sol rename to test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.sol diff --git a/test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.yaml b/test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.yaml new file mode 100644 index 00000000..0ba643cc --- /dev/null +++ b/test_cases/solidity/call_best_practices/unchecked_return_value/unchecked_return_value.yaml @@ -0,0 +1,9 @@ +description: Unchecked Return Value +issues: +- id: SWC-104 + count: 1 + locations: + - bytecode_offsets: + '0x7730ba96fa0915f6bea9c502afd405e682425ed27e0759775efdb4d3e75a74fb': [294] + line_numbers: + unchecked_return_value.sol: [12] diff --git a/test_cases/ctf/tokensalechallenge.json b/test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.json similarity index 100% rename from test_cases/ctf/tokensalechallenge.json rename to test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.json diff --git a/test_cases/ctf/tokensalechallenge.sol b/test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.sol similarity index 100% rename from test_cases/ctf/tokensalechallenge.sol rename to test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.sol diff --git a/test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.yaml b/test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.yaml new file mode 100644 index 00000000..d982cc62 --- /dev/null +++ b/test_cases/solidity/ctf/tokensalechallenge/tokensalechallenge.yaml @@ -0,0 +1,24 @@ +description: Integer overflow leading into Ether theft +issues: +- id: SWC-101 + count: 3 + locations: + - bytecode_offsets: + '0x28bca0703928a8e32ea9dcdc965ef2fc3e5957d467ea62c7df7e29897930512d': [390] + line_numbers: + tokensalechallenge.sol: [21] + - bytecode_offsets: + '0x28bca0703928a8e32ea9dcdc965ef2fc3e5957d467ea62c7df7e29897930512d': [472] + line_numbers: + tokensalechallenge.sol: [23] + - bytecode_offsets: + '0x28bca0703928a8e32ea9dcdc965ef2fc3e5957d467ea62c7df7e29897930512d': [672] + line_numbers: + tokensalechallenge.sol: [30] +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: + '0x28bca0703928a8e32ea9dcdc965ef2fc3e5957d467ea62c7df7e29897930512d': [693] + line_numbers: + tokensalechallenge.sol: [30] diff --git a/test_cases/default_visibility_functions/visibility_not_set.json b/test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.json similarity index 100% rename from test_cases/default_visibility_functions/visibility_not_set.json rename to test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.json diff --git a/test_cases/default_visibility_functions/visibility_not_set.sol b/test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.sol similarity index 100% rename from test_cases/default_visibility_functions/visibility_not_set.sol rename to test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.sol diff --git a/test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.yaml b/test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.yaml new file mode 100644 index 00000000..a4d2b942 --- /dev/null +++ b/test_cases/solidity/default_visibility_functions/visibility_not_set/visibility_not_set.yaml @@ -0,0 +1,11 @@ +description: Default function visibility +issues: +- id: SWC-100 + count: 2 + locations: + - bytecode_offsets: {} + line_numbers: + visibility_not_set.sol: [11] + - bytecode_offsets: {} + line_numbers: + visibility_not_set.sol: [17] diff --git a/test_cases/default_visibility_functions/visibility_not_set_fixed.json b/test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.json similarity index 100% rename from test_cases/default_visibility_functions/visibility_not_set_fixed.json rename to test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.json diff --git a/test_cases/default_visibility_functions/visibility_not_set_fixed.sol b/test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.sol similarity index 100% rename from test_cases/default_visibility_functions/visibility_not_set_fixed.sol rename to test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.sol diff --git a/test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.yaml b/test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.yaml new file mode 100644 index 00000000..fd2b9721 --- /dev/null +++ b/test_cases/solidity/default_visibility_functions/visibility_not_set_fixed/visibility_not_set_fixed.yaml @@ -0,0 +1,5 @@ +description: Default function visibility +issues: +- id: SWC-100 + count: 0 + locations: [] diff --git a/test_cases/default_visibility_variables/storage.json b/test_cases/solidity/default_visibility_variables/storage/storage.json similarity index 100% rename from test_cases/default_visibility_variables/storage.json rename to test_cases/solidity/default_visibility_variables/storage/storage.json diff --git a/test_cases/default_visibility_variables/storage.sol b/test_cases/solidity/default_visibility_variables/storage/storage.sol similarity index 100% rename from test_cases/default_visibility_variables/storage.sol rename to test_cases/solidity/default_visibility_variables/storage/storage.sol diff --git a/test_cases/solidity/default_visibility_variables/storage/storage.yaml b/test_cases/solidity/default_visibility_variables/storage/storage.yaml new file mode 100644 index 00000000..245a7dc5 --- /dev/null +++ b/test_cases/solidity/default_visibility_variables/storage/storage.yaml @@ -0,0 +1,23 @@ +description: Default state variable visibility +issues: +- id: SWC-108 + count: 6 + locations: + - bytecode_offsets: {} + line_numbers: + storage.sol: [5] + - bytecode_offsets: {} + line_numbers: + storage.sol: [7] + - bytecode_offsets: {} + line_numbers: + storage.sol: [9] + - bytecode_offsets: {} + line_numbers: + storage.sol: [14] + - bytecode_offsets: {} + line_numbers: + storage.sol: [16] + - bytecode_offsets: {} + line_numbers: + storage.sol: [17] diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy.json b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.json similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy.json rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.json diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy.sol b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.sol similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy.sol rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.sol diff --git a/test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.yaml b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.yaml new file mode 100644 index 00000000..fc031299 --- /dev/null +++ b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy/proxy.yaml @@ -0,0 +1,9 @@ +description: Simple proxy pattern with delegatecall +issues: +- id: SWC-112 + count: 1 + locations: + - bytecode_offsets: + '0x0cacc6a10a08e1bfafa8d8feca0d1e899b99bdc57b8455840e21c19db6665bfc': [337] + line_numbers: + proxy.sol: [8] diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_fixed.json b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.json similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy_fixed.json rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.json diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_fixed.sol b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.sol similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy_fixed.sol rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.sol diff --git a/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.yaml b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.yaml new file mode 100644 index 00000000..8d641d88 --- /dev/null +++ b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_fixed/proxy_fixed.yaml @@ -0,0 +1,5 @@ +description: Simple proxy pattern with delegatecall (fixed) +issues: +- id: SWC-112 + count: 0 + locations: [] diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.json b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.json similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.json rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.json diff --git a/test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.sol b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.sol similarity index 100% rename from test_cases/delegate_call_to_untrusted_callee/proxy_pattern_false_positive.sol rename to test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.sol diff --git a/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.yaml b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.yaml new file mode 100644 index 00000000..1b76bbc9 --- /dev/null +++ b/test_cases/solidity/delegate_call_to_untrusted_callee/proxy_pattern_false_positive/proxy_pattern_false_positive.yaml @@ -0,0 +1,5 @@ +description: Delegatecall to arbitrary address that can never change state +issues: +- id: SWC-112 + count: 0 + locations: [] diff --git a/test_cases/deprecated_constructs/deprecated_simple.json b/test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.json similarity index 100% rename from test_cases/deprecated_constructs/deprecated_simple.json rename to test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.json diff --git a/test_cases/deprecated_constructs/deprecated_simple.sol b/test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.sol similarity index 100% rename from test_cases/deprecated_constructs/deprecated_simple.sol rename to test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.sol diff --git a/test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.yaml b/test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.yaml new file mode 100644 index 00000000..d6030b0b --- /dev/null +++ b/test_cases/solidity/deprecated_constructs/deprecated_simple/deprecated_simple.yaml @@ -0,0 +1,26 @@ +description: Use of deprecated functions and aliases +issues: +- id: SWC-111 + count: 7 + locations: + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [5] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [9] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [10] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [12] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [15] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [18] + - bytecode_offsets: {} + line_numbers: + deprecated_simple.sol: [20] diff --git a/test_cases/dos_gas_limit/dos_address.json b/test_cases/solidity/dos_gas_limit/dos_address/dos_address.json similarity index 100% rename from test_cases/dos_gas_limit/dos_address.json rename to test_cases/solidity/dos_gas_limit/dos_address/dos_address.json diff --git a/test_cases/dos_gas_limit/dos_address.sol b/test_cases/solidity/dos_gas_limit/dos_address/dos_address.sol similarity index 100% rename from test_cases/dos_gas_limit/dos_address.sol rename to test_cases/solidity/dos_gas_limit/dos_address/dos_address.sol diff --git a/test_cases/solidity/dos_gas_limit/dos_address/dos_address.yaml b/test_cases/solidity/dos_gas_limit/dos_address/dos_address.yaml new file mode 100644 index 00000000..6f3b696a --- /dev/null +++ b/test_cases/solidity/dos_gas_limit/dos_address/dos_address.yaml @@ -0,0 +1,8 @@ +description: DoS Gas Limit reaches when try to empty the array of addresses for winning the game +issues: +- id: SWC-128 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + dos_address.sol: [10] diff --git a/test_cases/dos_gas_limit/dos_number.json b/test_cases/solidity/dos_gas_limit/dos_number/dos_number.json similarity index 100% rename from test_cases/dos_gas_limit/dos_number.json rename to test_cases/solidity/dos_gas_limit/dos_number/dos_number.json diff --git a/test_cases/dos_gas_limit/dos_number.sol b/test_cases/solidity/dos_gas_limit/dos_number/dos_number.sol similarity index 100% rename from test_cases/dos_gas_limit/dos_number.sol rename to test_cases/solidity/dos_gas_limit/dos_number/dos_number.sol diff --git a/test_cases/solidity/dos_gas_limit/dos_number/dos_number.yaml b/test_cases/solidity/dos_gas_limit/dos_number/dos_number.yaml new file mode 100644 index 00000000..d9e00b6f --- /dev/null +++ b/test_cases/solidity/dos_gas_limit/dos_number/dos_number.yaml @@ -0,0 +1,11 @@ +description: DoS Gas Limit in array empty and optionally in for loop +issues: +- id: SWC-128 + count: 2 + locations: + - bytecode_offsets: {} + line_numbers: + dos_number.sol: [11] + - bytecode_offsets: {} + line_numbers: + dos_number.sol: [29] diff --git a/test_cases/dos_gas_limit/dos_simple.json b/test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.json similarity index 100% rename from test_cases/dos_gas_limit/dos_simple.json rename to test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.json diff --git a/test_cases/dos_gas_limit/dos_simple.sol b/test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.sol similarity index 100% rename from test_cases/dos_gas_limit/dos_simple.sol rename to test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.sol diff --git a/test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.yaml b/test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.yaml new file mode 100644 index 00000000..7f5549b2 --- /dev/null +++ b/test_cases/solidity/dos_gas_limit/dos_simple/dos_simple.yaml @@ -0,0 +1,8 @@ +description: DoS Gas Limit reaches when try to empty the array of addresses +issues: +- id: SWC-128 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + dos_simple.sol: [16] diff --git a/test_cases/incorrect_inheritance_order/MDTCrowdsale.json b/test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.json similarity index 100% rename from test_cases/incorrect_inheritance_order/MDTCrowdsale.json rename to test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.json diff --git a/test_cases/incorrect_inheritance_order/MDTCrowdsale.sol b/test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.sol similarity index 100% rename from test_cases/incorrect_inheritance_order/MDTCrowdsale.sol rename to test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.sol diff --git a/test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.yaml b/test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.yaml new file mode 100644 index 00000000..7b743148 --- /dev/null +++ b/test_cases/solidity/incorrect_inheritance_order/MDTCrowdsale/MDTCrowdsale.yaml @@ -0,0 +1,8 @@ +description: Incorrect inheritance order +issues: +- id: SWC-125 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + MDTCrowdsale.sol: [162] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_benign_1.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.yaml new file mode 100644 index 00000000..8090adaa --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1/integer_overflow_benign_1.yaml @@ -0,0 +1,9 @@ +description: Single transaction overflow +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x6eac85a0077d7fbe4a212397613039dd0303f5729738128c6248e3a25c54cf46': [173] + line_numbers: + integer_overflow_benign_1.sol: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_benign_1_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.yaml new file mode 100644 index 00000000..f7282893 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_benign_1_fixed/integer_overflow_benign_1_fixed.yaml @@ -0,0 +1,5 @@ +description: Single transaction overflow +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.yaml new file mode 100644 index 00000000..c8d7a5a9 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1/integer_overflow_mapping_sym_1.yaml @@ -0,0 +1,9 @@ +description: Single transaction overflow in mapping +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x3c60415e40f53b65bb32a782b5ca77cb5fdf3e2bbd5e942ce263cd674f02444c': [145] + line_numbers: + integer_overflow_mapping_sym_1.sol: [9] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.yaml new file mode 100644 index 00000000..418f581b --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mapping_sym_1_fixed/integer_overflow_mapping_sym_1_fixed.yaml @@ -0,0 +1,5 @@ +description: Single transaction overflow in mapping +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_minimal.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_minimal.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.yaml new file mode 100644 index 00000000..706a39c2 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal/integer_overflow_minimal.yaml @@ -0,0 +1,9 @@ +description: Single transaction overflow +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x80074413148835f7b77d5bf3607abd9e7cdd53db154097aa0e82b9a7bdfbbfe3': [174] + line_numbers: + integer_overflow_minimal.sol: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_minimal_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.yaml new file mode 100644 index 00000000..f7282893 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_minimal_fixed/integer_overflow_minimal_fixed.yaml @@ -0,0 +1,5 @@ +description: Single transaction overflow +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mul.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mul.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.yaml new file mode 100644 index 00000000..5f6724f5 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul/integer_overflow_mul.yaml @@ -0,0 +1,9 @@ +description: Single transaction overflow using mul +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x6447009c99f794580933d06bda6405b9d6c4e95c4b51a37bf3c8b36c9199b0cf': [174] + line_numbers: + integer_overflow_mul.sol: [10] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_mul_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.yaml new file mode 100644 index 00000000..ce24d03a --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_mul_fixed/integer_overflow_mul_fixed.yaml @@ -0,0 +1,5 @@ +description: Single transaction overflow using mul +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.yaml new file mode 100644 index 00000000..973e5c0d --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible/integer_overflow_multitx_multifunc_feasible.yaml @@ -0,0 +1,9 @@ +description: Integer overflow (reachable by calling 2 functions over 2 transactions) +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x956414565a80029c2be2b7c0d39740bf5ad294db15af3a02cb64509638902617': [218] + line_numbers: + integer_overflow_multitx_multifunc_feasible.sol: [24] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.yaml new file mode 100644 index 00000000..86867c25 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_multifunc_feasible_fixed/integer_overflow_multitx_multifunc_feasible_fixed.yaml @@ -0,0 +1,5 @@ +description: Multi-transactional, multi-function +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.yaml new file mode 100644 index 00000000..16e60534 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible/integer_overflow_multitx_onefunc_feasible.yaml @@ -0,0 +1,9 @@ +description: Integer overflow (reachable in 2 transactions) +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0xf2c9f895c91bab86eb41e999544f854169741ed65e9bfcce0108a3adfa7b8be3': [196] + line_numbers: + integer_overflow_multitx_onefunc_feasible.sol: [21] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.yaml new file mode 100644 index 00000000..bdb4f0d4 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_feasible_fixed/integer_overflow_multitx_onefunc_feasible_fixed.yaml @@ -0,0 +1,5 @@ +description: Multi-transactional, single function +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.json b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.json rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.json diff --git a/test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.sol b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible.sol rename to test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.yaml b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.yaml new file mode 100644 index 00000000..0ab818e1 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/integer_overflow_multitx_onefunc_infeasible/integer_overflow_multitx_onefunc_infeasible.yaml @@ -0,0 +1,5 @@ +description: Integer overflow (unreachable) +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add.json b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_simple_add.json rename to test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.json diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add.sol b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_simple_add.sol rename to test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.yaml b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.yaml new file mode 100644 index 00000000..5cedde6d --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add/overflow_simple_add.yaml @@ -0,0 +1,9 @@ +description: Plain and simple ADD overflow example +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x75ad68f906456e1cbfd6190a8f2e2dc5cb2794af4a4929448378642c992e151a': [168] + line_numbers: + overflow_simple_add.sol: [7] diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.json b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.json rename to test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.json diff --git a/test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.sol b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_simple_add_fixed.sol rename to test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.yaml b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.yaml new file mode 100644 index 00000000..b3450520 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/overflow_simple_add_fixed/overflow_simple_add_fixed.yaml @@ -0,0 +1,5 @@ +description: Plain and simple ADD overflow example +issues: +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/integer_overflow_and_underflow/overflow_single_tx.json b/test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.json similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_single_tx.json rename to test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.json diff --git a/test_cases/integer_overflow_and_underflow/overflow_single_tx.sol b/test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.sol similarity index 100% rename from test_cases/integer_overflow_and_underflow/overflow_single_tx.sol rename to test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.sol diff --git a/test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.yaml b/test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.yaml new file mode 100644 index 00000000..0e2779f1 --- /dev/null +++ b/test_cases/solidity/integer_overflow_and_underflow/overflow_single_tx/overflow_single_tx.yaml @@ -0,0 +1,17 @@ +description: Overflows and underflows micro-samples (single transaction) +issues: +- id: SWC-101 + count: 3 + locations: + - bytecode_offsets: + '0xff96d6431ca052ba7228a96a7d27b0adc1f493a2c460cc8a44b2565b9ef14840': [525] + line_numbers: + overflow_single_tx.sol: [11] + - bytecode_offsets: + '0xff96d6431ca052ba7228a96a7d27b0adc1f493a2c460cc8a44b2565b9ef14840': [494] + line_numbers: + overflow_single_tx.sol: [16] + - bytecode_offsets: + '0xff96d6431ca052ba7228a96a7d27b0adc1f493a2c460cc8a44b2565b9ef14840': [476] + line_numbers: + overflow_single_tx.sol: [21] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name1.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name1.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.yaml new file mode 100644 index 00000000..3209fff9 --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1/incorrect_constructor_name1.yaml @@ -0,0 +1,8 @@ +description: Invalid contructor name variant 1 +issues: +- id: SWC-118 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + incorrect_constructor_name1.sol: [19] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name1_fixed.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.yaml new file mode 100644 index 00000000..9f822a20 --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name1_fixed/incorrect_constructor_name1_fixed.yaml @@ -0,0 +1,5 @@ +description: Invalid contructor name variant 1 +issues: +- id: SWC-118 + count: 0 + locations: [] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name2.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name2.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.yaml new file mode 100644 index 00000000..1b99f5b1 --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2/incorrect_constructor_name2.yaml @@ -0,0 +1,8 @@ +description: Invalid contructor name variant 2 +issues: +- id: SWC-118 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + incorrect_constructor_name2.sol: [18] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name2_fixed.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.yaml new file mode 100644 index 00000000..62704b33 --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name2_fixed/incorrect_constructor_name2_fixed.yaml @@ -0,0 +1,5 @@ +description: Invalid contructor name variant 2 +issues: +- id: SWC-118 + count: 0 + locations: [] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name3.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name3.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.yaml new file mode 100644 index 00000000..59e2b91b --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3/incorrect_constructor_name3.yaml @@ -0,0 +1,8 @@ +description: Invalid contructor name variant 3 +issues: +- id: SWC-118 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + incorrect_constructor_name3.sol: [17] diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.json b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.json similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.json rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.json diff --git a/test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.sol b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.sol similarity index 100% rename from test_cases/invalid_constructor_name/incorrect_constructor_name3_fixed.sol rename to test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.sol diff --git a/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.yaml b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.yaml new file mode 100644 index 00000000..dcba2897 --- /dev/null +++ b/test_cases/solidity/invalid_constructor_name/incorrect_constructor_name3_fixed/incorrect_constructor_name3_fixed.yaml @@ -0,0 +1,5 @@ +description: Invalid contructor name variant 3 +issues: +- id: SWC-118 + count: 0 + locations: [] diff --git a/test_cases/outdated_compiler_version/version_0_4_13.sol b/test_cases/solidity/outdated_compiler_version/version_0_4_13/version_0_4_13.sol similarity index 100% rename from test_cases/outdated_compiler_version/version_0_4_13.sol rename to test_cases/solidity/outdated_compiler_version/version_0_4_13/version_0_4_13.sol diff --git a/test_cases/solidity/outdated_compiler_version/version_0_4_13/version_0_4_13.yaml b/test_cases/solidity/outdated_compiler_version/version_0_4_13/version_0_4_13.yaml new file mode 100644 index 00000000..65b96ae6 --- /dev/null +++ b/test_cases/solidity/outdated_compiler_version/version_0_4_13/version_0_4_13.yaml @@ -0,0 +1,8 @@ +description: Test for outdated Solidity compiler +issues: +- id: SWC-102 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + version_0_4_13.sol: [1] diff --git a/test_cases/pragma_not_locked/floating_pragma.json b/test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.json similarity index 100% rename from test_cases/pragma_not_locked/floating_pragma.json rename to test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.json diff --git a/test_cases/pragma_not_locked/floating_pragma.sol b/test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.sol similarity index 100% rename from test_cases/pragma_not_locked/floating_pragma.sol rename to test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.sol diff --git a/test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.yaml b/test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.yaml new file mode 100644 index 00000000..15612683 --- /dev/null +++ b/test_cases/solidity/pragma_not_locked/floating_pragma/floating_pragma.yaml @@ -0,0 +1,8 @@ +description: Floating pragma +issues: +- id: SWC-103 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + floating_pragma.sol: [1] diff --git a/test_cases/pragma_not_locked/floating_pragma_fixed.json b/test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.json similarity index 100% rename from test_cases/pragma_not_locked/floating_pragma_fixed.json rename to test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.json diff --git a/test_cases/pragma_not_locked/floating_pragma_fixed.sol b/test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.sol similarity index 100% rename from test_cases/pragma_not_locked/floating_pragma_fixed.sol rename to test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.sol diff --git a/test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.yaml b/test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.yaml new file mode 100644 index 00000000..a7e60731 --- /dev/null +++ b/test_cases/solidity/pragma_not_locked/floating_pragma_fixed/floating_pragma_fixed.yaml @@ -0,0 +1,8 @@ +description: Floating pragma fixed +issues: +- id: SWC-103 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + floating_pragma_fixed.sol: [1] diff --git a/test_cases/pragma_not_locked/no_pragma.json b/test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.json similarity index 100% rename from test_cases/pragma_not_locked/no_pragma.json rename to test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.json diff --git a/test_cases/pragma_not_locked/no_pragma.sol b/test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.sol similarity index 100% rename from test_cases/pragma_not_locked/no_pragma.sol rename to test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.sol diff --git a/test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.yaml b/test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.yaml new file mode 100644 index 00000000..9e5e1cd6 --- /dev/null +++ b/test_cases/solidity/pragma_not_locked/no_pragma/no_pragma.yaml @@ -0,0 +1,8 @@ +description: Floating pragma +issues: +- id: SWC-103 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + no_pragma.sol: [1] diff --git a/test_cases/real_world_samples/BECToken.json b/test_cases/solidity/real_world_samples/BECToken/BECToken.json similarity index 100% rename from test_cases/real_world_samples/BECToken.json rename to test_cases/solidity/real_world_samples/BECToken/BECToken.json diff --git a/test_cases/real_world_samples/BECToken.sol b/test_cases/solidity/real_world_samples/BECToken/BECToken.sol similarity index 100% rename from test_cases/real_world_samples/BECToken.sol rename to test_cases/solidity/real_world_samples/BECToken/BECToken.sol diff --git a/test_cases/solidity/real_world_samples/BECToken/BECToken.yaml b/test_cases/solidity/real_world_samples/BECToken/BECToken.yaml new file mode 100644 index 00000000..14ab9d58 --- /dev/null +++ b/test_cases/solidity/real_world_samples/BECToken/BECToken.yaml @@ -0,0 +1,9 @@ +description: 'BECToken: Integer overflow in batchTransfer function' +issues: +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0xc7861e3306caf9225c06c773d7d7390d696da69e3ee3c7718080cdbf65b8670d': [1587] + line_numbers: + BECToken.sol: [257] diff --git a/test_cases/real_world_samples/WalletLibrary.json b/test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.json similarity index 100% rename from test_cases/real_world_samples/WalletLibrary.json rename to test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.json diff --git a/test_cases/real_world_samples/WalletLibrary.sol b/test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.sol similarity index 100% rename from test_cases/real_world_samples/WalletLibrary.sol rename to test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.sol diff --git a/test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.yaml b/test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.yaml new file mode 100644 index 00000000..202b1495 --- /dev/null +++ b/test_cases/solidity/real_world_samples/WalletLibrary/WalletLibrary.yaml @@ -0,0 +1,8 @@ +description: Parity Walletlibrary 'accidential suicide' +issues: +- id: SWC-106 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + WalletLibrary.sol: [225, 226] diff --git a/test_cases/real_world_samples/rubixi.json b/test_cases/solidity/real_world_samples/rubixi/rubixi.json similarity index 100% rename from test_cases/real_world_samples/rubixi.json rename to test_cases/solidity/real_world_samples/rubixi/rubixi.json diff --git a/test_cases/real_world_samples/rubixi.sol b/test_cases/solidity/real_world_samples/rubixi/rubixi.sol similarity index 100% rename from test_cases/real_world_samples/rubixi.sol rename to test_cases/solidity/real_world_samples/rubixi/rubixi.sol diff --git a/test_cases/solidity/real_world_samples/rubixi/rubixi.yaml b/test_cases/solidity/real_world_samples/rubixi/rubixi.yaml new file mode 100644 index 00000000..e8d4ad66 --- /dev/null +++ b/test_cases/solidity/real_world_samples/rubixi/rubixi.yaml @@ -0,0 +1,17 @@ +description: 'Rubixi: Ether can be drained in 2 transactions' +issues: +- id: SWC-105 + count: 3 + locations: + - bytecode_offsets: + '0xa99a54e817bb8a1fa4ba0591fed10feb24e937c83492a46cd723c5ddde86465d': [2014] + line_numbers: + rubixi.sol: [75] + - bytecode_offsets: + '0xa99a54e817bb8a1fa4ba0591fed10feb24e937c83492a46cd723c5ddde86465d': [2644] + line_numbers: + rubixi.sol: [85] + - bytecode_offsets: + '0xa99a54e817bb8a1fa4ba0591fed10feb24e937c83492a46cd723c5ddde86465d': [1673] + line_numbers: + rubixi.sol: [93] diff --git a/test_cases/reentracy/modifier_reentrancy.json b/test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.json similarity index 100% rename from test_cases/reentracy/modifier_reentrancy.json rename to test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.json diff --git a/test_cases/reentracy/modifier_reentrancy.sol b/test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.sol similarity index 100% rename from test_cases/reentracy/modifier_reentrancy.sol rename to test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.sol diff --git a/test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.yaml b/test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.yaml new file mode 100644 index 00000000..b59a8af5 --- /dev/null +++ b/test_cases/solidity/reentracy/modifier_reentrancy/modifier_reentrancy.yaml @@ -0,0 +1,8 @@ +description: Reentrancy (state change after external call) +issues: +- id: SWC-107 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + modifier_reentrancy.sol: [8, 9] diff --git a/test_cases/reentracy/modifier_reentrancy_fixed.json b/test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.json similarity index 100% rename from test_cases/reentracy/modifier_reentrancy_fixed.json rename to test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.json diff --git a/test_cases/reentracy/modifier_reentrancy_fixed.sol b/test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.sol similarity index 100% rename from test_cases/reentracy/modifier_reentrancy_fixed.sol rename to test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.sol diff --git a/test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.yaml b/test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.yaml new file mode 100644 index 00000000..7a84cbe5 --- /dev/null +++ b/test_cases/solidity/reentracy/modifier_reentrancy_fixed/modifier_reentrancy_fixed.yaml @@ -0,0 +1,5 @@ +description: Reentrancy (state change after external call) +issues: +- id: SWC-107 + count: 0 + locations: [] diff --git a/test_cases/reentracy/simple_dao.json b/test_cases/solidity/reentracy/simple_dao/simple_dao.json similarity index 100% rename from test_cases/reentracy/simple_dao.json rename to test_cases/solidity/reentracy/simple_dao/simple_dao.json diff --git a/test_cases/reentracy/simple_dao.sol b/test_cases/solidity/reentracy/simple_dao/simple_dao.sol similarity index 100% rename from test_cases/reentracy/simple_dao.sol rename to test_cases/solidity/reentracy/simple_dao/simple_dao.sol diff --git a/test_cases/solidity/reentracy/simple_dao/simple_dao.yaml b/test_cases/solidity/reentracy/simple_dao/simple_dao.yaml new file mode 100644 index 00000000..7bf0643a --- /dev/null +++ b/test_cases/solidity/reentracy/simple_dao/simple_dao.yaml @@ -0,0 +1,9 @@ +description: Reentrancy (state change after external call) +issues: +- id: SWC-107 + count: 1 + locations: + - bytecode_offsets: + '0xe85040f3e719fc3c0e490a0134d2e8daffadf2d2b7f011336f95505f8d9a92f8': [565, 655] + line_numbers: + simple_dao.sol: [17, 18] diff --git a/test_cases/reentracy/simple_dao_fixed.json b/test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.json similarity index 100% rename from test_cases/reentracy/simple_dao_fixed.json rename to test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.json diff --git a/test_cases/reentracy/simple_dao_fixed.sol b/test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.sol similarity index 100% rename from test_cases/reentracy/simple_dao_fixed.sol rename to test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.sol diff --git a/test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.yaml b/test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.yaml new file mode 100644 index 00000000..7a84cbe5 --- /dev/null +++ b/test_cases/solidity/reentracy/simple_dao_fixed/simple_dao_fixed.yaml @@ -0,0 +1,5 @@ +description: Reentrancy (state change after external call) +issues: +- id: SWC-107 + count: 0 + locations: [] diff --git a/test_cases/requirement_violations/requirement_simple.json b/test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.json similarity index 100% rename from test_cases/requirement_violations/requirement_simple.json rename to test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.json diff --git a/test_cases/requirement_violations/requirement_simple.sol b/test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.sol similarity index 100% rename from test_cases/requirement_violations/requirement_simple.sol rename to test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.sol diff --git a/test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.yaml b/test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.yaml new file mode 100644 index 00000000..6e048887 --- /dev/null +++ b/test_cases/solidity/requirement_violations/requirement_simple/requirement_simple.yaml @@ -0,0 +1,9 @@ +description: Simple requirement violation +issues: +- id: SWC-123 + count: 1 + locations: + - bytecode_offsets: + '0xba541cbb2ac6dda7664b6ebdc6372297425c2eeabd88e0af5ca6310f9cf7bbd2': [263, 145] + line_numbers: + requirement_simple.sol: [6, 12] diff --git a/test_cases/requirement_violations/requirement_simple_fixed.json b/test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.json similarity index 100% rename from test_cases/requirement_violations/requirement_simple_fixed.json rename to test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.json diff --git a/test_cases/requirement_violations/requirement_simple_fixed.sol b/test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.sol similarity index 100% rename from test_cases/requirement_violations/requirement_simple_fixed.sol rename to test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.sol diff --git a/test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.yaml b/test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.yaml new file mode 100644 index 00000000..e3a843d4 --- /dev/null +++ b/test_cases/solidity/requirement_violations/requirement_simple_fixed/requirement_simple_fixed.yaml @@ -0,0 +1,5 @@ +description: Simple requirement violation +issues: +- id: SWC-123 + count: 0 + locations: [] diff --git a/test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.json b/test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.json similarity index 100% rename from test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.json rename to test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.json diff --git a/test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.sol b/test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.sol similarity index 100% rename from test_cases/shadowing_inherited_state_variables/ShadowingInFunctions.sol rename to test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.sol diff --git a/test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.yaml b/test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.yaml new file mode 100644 index 00000000..0d857456 --- /dev/null +++ b/test_cases/solidity/shadowing_inherited_state_variables/ShadowingInFunctions/ShadowingInFunctions.yaml @@ -0,0 +1,17 @@ +description: Shadowing a state variable in functions +issues: +- id: SWC-119 + count: 4 + locations: + - bytecode_offsets: {} + line_numbers: + ShadowingInFunctions.sol: [7] + - bytecode_offsets: {} + line_numbers: + ShadowingInFunctions.sol: [11] + - bytecode_offsets: {} + line_numbers: + ShadowingInFunctions.sol: [16] + - bytecode_offsets: {} + line_numbers: + ShadowingInFunctions.sol: [17] diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale.json b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.json similarity index 100% rename from test_cases/shadowing_inherited_state_variables/TokenSale.json rename to test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.json diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale.sol b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.sol similarity index 100% rename from test_cases/shadowing_inherited_state_variables/TokenSale.sol rename to test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.sol diff --git a/test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.yaml b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.yaml new file mode 100644 index 00000000..a1cae404 --- /dev/null +++ b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale/TokenSale.yaml @@ -0,0 +1,8 @@ +description: Shadowing a state variable in a inherited contract +issues: +- id: SWC-119 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + TokenSale.sol: [4] diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale_fixed.json b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.json similarity index 100% rename from test_cases/shadowing_inherited_state_variables/TokenSale_fixed.json rename to test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.json diff --git a/test_cases/shadowing_inherited_state_variables/TokenSale_fixed.sol b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.sol similarity index 100% rename from test_cases/shadowing_inherited_state_variables/TokenSale_fixed.sol rename to test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.sol diff --git a/test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.yaml b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.yaml new file mode 100644 index 00000000..e26efeca --- /dev/null +++ b/test_cases/solidity/shadowing_inherited_state_variables/TokenSale_fixed/TokenSale_fixed.yaml @@ -0,0 +1,5 @@ +description: Shadowing a state variable in a inherited contract +issues: +- id: SWC-119 + count: 0 + locations: [] diff --git a/test_cases/timestamp_dependence/timed_crowdsale.json b/test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.json similarity index 100% rename from test_cases/timestamp_dependence/timed_crowdsale.json rename to test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.json diff --git a/test_cases/timestamp_dependence/timed_crowdsale.sol b/test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.sol similarity index 100% rename from test_cases/timestamp_dependence/timed_crowdsale.sol rename to test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.sol diff --git a/test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.yaml b/test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.yaml new file mode 100644 index 00000000..6dbd5529 --- /dev/null +++ b/test_cases/solidity/timestamp_dependence/timed_crowdsale/timed_crowdsale.yaml @@ -0,0 +1,9 @@ +description: Timestamp Dependence +issues: +- id: SWC-116 + count: 1 + locations: + - bytecode_offsets: + '0x1cf0ec34c92695bee7e3e37bde706bf48768572ae6ca21d67ecb77380cd1b337': [120] + line_numbers: + timed_crowdsale.sol: [6] diff --git a/test_cases/transaction_malleability/transaction_malleablity.json b/test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.json similarity index 100% rename from test_cases/transaction_malleability/transaction_malleablity.json rename to test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.json diff --git a/test_cases/transaction_malleability/transaction_malleablity.sol b/test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.sol similarity index 100% rename from test_cases/transaction_malleability/transaction_malleablity.sol rename to test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.sol diff --git a/test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.yaml b/test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.yaml new file mode 100644 index 00000000..6ebe6e13 --- /dev/null +++ b/test_cases/solidity/transaction_malleability/transaction_malleablity/transaction_malleablity.yaml @@ -0,0 +1,8 @@ +description: Calculates transaction identifier with signature +issues: +- id: SWC-117 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + transaction_malleablity.sol: [23] diff --git a/test_cases/transaction_malleability/transaction_malleablity_fixed.json b/test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.json similarity index 100% rename from test_cases/transaction_malleability/transaction_malleablity_fixed.json rename to test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.json diff --git a/test_cases/transaction_malleability/transaction_malleablity_fixed.sol b/test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.sol similarity index 100% rename from test_cases/transaction_malleability/transaction_malleablity_fixed.sol rename to test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.sol diff --git a/test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.yaml b/test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.yaml new file mode 100644 index 00000000..dae21cdd --- /dev/null +++ b/test_cases/solidity/transaction_malleability/transaction_malleablity_fixed/transaction_malleablity_fixed.yaml @@ -0,0 +1,5 @@ +description: Calculates transaction identifier with signature +issues: +- id: SWC-117 + count: 0 + locations: [] diff --git a/test_cases/transaction_order_dependence/ERC20.json b/test_cases/solidity/transaction_order_dependence/ERC20/ERC20.json similarity index 100% rename from test_cases/transaction_order_dependence/ERC20.json rename to test_cases/solidity/transaction_order_dependence/ERC20/ERC20.json diff --git a/test_cases/transaction_order_dependence/ERC20.sol b/test_cases/solidity/transaction_order_dependence/ERC20/ERC20.sol similarity index 100% rename from test_cases/transaction_order_dependence/ERC20.sol rename to test_cases/solidity/transaction_order_dependence/ERC20/ERC20.sol diff --git a/test_cases/solidity/transaction_order_dependence/ERC20/ERC20.yaml b/test_cases/solidity/transaction_order_dependence/ERC20/ERC20.yaml new file mode 100644 index 00000000..99d1957d --- /dev/null +++ b/test_cases/solidity/transaction_order_dependence/ERC20/ERC20.yaml @@ -0,0 +1,8 @@ +description: ERC20 approve() front running +issues: +- id: SWC-114 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + ERC20.sol: [104] diff --git a/test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.json b/test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.json similarity index 100% rename from test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.json rename to test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.json diff --git a/test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.sol b/test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.sol similarity index 100% rename from test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.sol rename to test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.sol diff --git a/test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.yaml b/test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.yaml new file mode 100644 index 00000000..8b998b2c --- /dev/null +++ b/test_cases/solidity/transaction_order_dependence/eth_tx_order_dependence_minimal/eth_tx_order_dependence_minimal.yaml @@ -0,0 +1,8 @@ +description: 'Simple claim/set reward example for front running ' +issues: +- id: SWC-114 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + eth_tx_order_dependence_minimal.sol: [17] diff --git a/test_cases/tx_origin/mycontract.json b/test_cases/solidity/tx_origin/mycontract/mycontract.json similarity index 100% rename from test_cases/tx_origin/mycontract.json rename to test_cases/solidity/tx_origin/mycontract/mycontract.json diff --git a/test_cases/tx_origin/mycontract.sol b/test_cases/solidity/tx_origin/mycontract/mycontract.sol similarity index 100% rename from test_cases/tx_origin/mycontract.sol rename to test_cases/solidity/tx_origin/mycontract/mycontract.sol diff --git a/test_cases/solidity/tx_origin/mycontract/mycontract.yaml b/test_cases/solidity/tx_origin/mycontract/mycontract.yaml new file mode 100644 index 00000000..687d3e93 --- /dev/null +++ b/test_cases/solidity/tx_origin/mycontract/mycontract.yaml @@ -0,0 +1,9 @@ +description: Use tx.origin to authorize ETH withdrawls +issues: +- id: SWC-115 + count: 1 + locations: + - bytecode_offsets: + '0xb5277138e87869e9e71cf9737221a19a68d46fdb979a6c9b4837100a5ba8eb8f': [204] + line_numbers: + mycontract.sol: [18] diff --git a/test_cases/tx_origin/mycontract_fixed.json b/test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.json similarity index 100% rename from test_cases/tx_origin/mycontract_fixed.json rename to test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.json diff --git a/test_cases/tx_origin/mycontract_fixed.sol b/test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.sol similarity index 100% rename from test_cases/tx_origin/mycontract_fixed.sol rename to test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.sol diff --git a/test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.yaml b/test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.yaml new file mode 100644 index 00000000..c1146006 --- /dev/null +++ b/test_cases/solidity/tx_origin/mycontract_fixed/mycontract_fixed.yaml @@ -0,0 +1,5 @@ +description: Use tx.origin to authorize ETH withdrawls +issues: +- id: SWC-115 + count: 0 + locations: [] diff --git a/test_cases/typographical_error/typo_one_command.json b/test_cases/solidity/typographical_error/typo_one_command/typo_one_command.json similarity index 100% rename from test_cases/typographical_error/typo_one_command.json rename to test_cases/solidity/typographical_error/typo_one_command/typo_one_command.json diff --git a/test_cases/typographical_error/typo_one_command.sol b/test_cases/solidity/typographical_error/typo_one_command/typo_one_command.sol similarity index 100% rename from test_cases/typographical_error/typo_one_command.sol rename to test_cases/solidity/typographical_error/typo_one_command/typo_one_command.sol diff --git a/test_cases/solidity/typographical_error/typo_one_command/typo_one_command.yaml b/test_cases/solidity/typographical_error/typo_one_command/typo_one_command.yaml new file mode 100644 index 00000000..ad85619a --- /dev/null +++ b/test_cases/solidity/typographical_error/typo_one_command/typo_one_command.yaml @@ -0,0 +1,8 @@ +description: Typographical error in an operation of summing a variable (uint) with 1 +issues: +- id: SWC-129 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + typo_one_command.sol: [7] diff --git a/test_cases/typographical_error/typo_safe_math.json b/test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.json similarity index 100% rename from test_cases/typographical_error/typo_safe_math.json rename to test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.json diff --git a/test_cases/typographical_error/typo_safe_math.sol b/test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.sol similarity index 100% rename from test_cases/typographical_error/typo_safe_math.sol rename to test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.sol diff --git a/test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.yaml b/test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.yaml new file mode 100644 index 00000000..4ab54261 --- /dev/null +++ b/test_cases/solidity/typographical_error/typo_safe_math/typo_safe_math.yaml @@ -0,0 +1,8 @@ +description: Typographical error in an operation of summing a variable (uint) with 1, it also includes a safe way to do it. +issues: +- id: SWC-129 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + typo_safe_math.sol: [75] diff --git a/test_cases/typographical_error/typo_simple.json b/test_cases/solidity/typographical_error/typo_simple/typo_simple.json similarity index 100% rename from test_cases/typographical_error/typo_simple.json rename to test_cases/solidity/typographical_error/typo_simple/typo_simple.json diff --git a/test_cases/typographical_error/typo_simple.sol b/test_cases/solidity/typographical_error/typo_simple/typo_simple.sol similarity index 100% rename from test_cases/typographical_error/typo_simple.sol rename to test_cases/solidity/typographical_error/typo_simple/typo_simple.sol diff --git a/test_cases/solidity/typographical_error/typo_simple/typo_simple.yaml b/test_cases/solidity/typographical_error/typo_simple/typo_simple.yaml new file mode 100644 index 00000000..f6220584 --- /dev/null +++ b/test_cases/solidity/typographical_error/typo_simple/typo_simple.yaml @@ -0,0 +1,8 @@ +description: Typographical error in an operation of summing a variable (uint) with 1 +issues: +- id: SWC-129 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + typo_simple.sol: [9] diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette.json b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.json similarity index 100% rename from test_cases/uninitialised_storage_pointer/crypto_roulette.json rename to test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.json diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette.sol b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.sol similarity index 100% rename from test_cases/uninitialised_storage_pointer/crypto_roulette.sol rename to test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.sol diff --git a/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.yaml b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.yaml new file mode 100644 index 00000000..87408f51 --- /dev/null +++ b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette/crypto_roulette.yaml @@ -0,0 +1,8 @@ +description: Test for uninitialised storage variable +issues: +- id: SWC-109 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + crypto_roulette.sol: [39] diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.json b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.json similarity index 100% rename from test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.json rename to test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.json diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.sol b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.sol similarity index 100% rename from test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.sol rename to test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.sol diff --git a/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.yaml b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.yaml new file mode 100644 index 00000000..b8741ad4 --- /dev/null +++ b/test_cases/solidity/uninitialised_storage_pointer/crypto_roulette_fixed/crypto_roulette_fixed.yaml @@ -0,0 +1,5 @@ +description: Test for uninitialised storage variable +issues: +- id: SWC-109 + count: 0 + locations: [] diff --git a/test_cases/unprotected_critical_functions/multiowned_not_vulnerable.json b/test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.json similarity index 100% rename from test_cases/unprotected_critical_functions/multiowned_not_vulnerable.json rename to test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.json diff --git a/test_cases/unprotected_critical_functions/multiowned_not_vulnerable.sol b/test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.sol similarity index 100% rename from test_cases/unprotected_critical_functions/multiowned_not_vulnerable.sol rename to test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.sol diff --git a/test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.yaml b/test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.yaml new file mode 100644 index 00000000..d3fd457e --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/multiowned_not_vulnerable/multiowned_not_vulnerable.yaml @@ -0,0 +1,5 @@ +description: Ether withdrawal function and correclty named constructor (not vulnerable) +issues: +- id: SWC-105 + count: 0 + locations: [] diff --git a/test_cases/unprotected_critical_functions/multiowned_vulnerable.json b/test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.json similarity index 100% rename from test_cases/unprotected_critical_functions/multiowned_vulnerable.json rename to test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.json diff --git a/test_cases/unprotected_critical_functions/multiowned_vulnerable.sol b/test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.sol similarity index 100% rename from test_cases/unprotected_critical_functions/multiowned_vulnerable.sol rename to test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.sol diff --git a/test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.yaml b/test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.yaml new file mode 100644 index 00000000..c821fc6e --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/multiowned_vulnerable/multiowned_vulnerable.yaml @@ -0,0 +1,8 @@ +description: Ether withdrawal function and correclty named constructor (not vulnerable) +issues: +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + multiowned_vulnerable.sol: [50] diff --git a/test_cases/unprotected_critical_functions/simple_ether_drain.json b/test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.json similarity index 100% rename from test_cases/unprotected_critical_functions/simple_ether_drain.json rename to test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.json diff --git a/test_cases/unprotected_critical_functions/simple_ether_drain.sol b/test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.sol similarity index 100% rename from test_cases/unprotected_critical_functions/simple_ether_drain.sol rename to test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.sol diff --git a/test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.yaml b/test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.yaml new file mode 100644 index 00000000..6a56d369 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/simple_ether_drain/simple_ether_drain.yaml @@ -0,0 +1,9 @@ +description: Anybody can withdraw all Ether from the contract account +issues: +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: + '0x59daf6eb0bec2ba9fdba57aa700afca264b2f6698c46edc806dbf790ca670e53': [156] + line_numbers: + simple_ether_drain.sol: [4] diff --git a/test_cases/unprotected_critical_functions/simple_suicide.json b/test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.json similarity index 100% rename from test_cases/unprotected_critical_functions/simple_suicide.json rename to test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.json diff --git a/test_cases/unprotected_critical_functions/simple_suicide.sol b/test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.sol similarity index 100% rename from test_cases/unprotected_critical_functions/simple_suicide.sol rename to test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.sol diff --git a/test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.yaml b/test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.yaml new file mode 100644 index 00000000..03da5958 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/simple_suicide/simple_suicide.yaml @@ -0,0 +1,9 @@ +description: Trivially killable contract +issues: +- id: SWC-106 + count: 1 + locations: + - bytecode_offsets: + '0xa297f6363737429d38ab9ff27525596cfcf3315873ada3e93605ec06f465b8f7': [112] + line_numbers: + simple_suicide.sol: [4] diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_feasible.json b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.json similarity index 100% rename from test_cases/unprotected_critical_functions/suicide_multitx_feasible.json rename to test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.json diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_feasible.sol b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.sol similarity index 100% rename from test_cases/unprotected_critical_functions/suicide_multitx_feasible.sol rename to test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.sol diff --git a/test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.yaml b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.yaml new file mode 100644 index 00000000..34bacb9d --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_feasible/suicide_multitx_feasible.yaml @@ -0,0 +1,9 @@ +description: Contract can be killed with 2 transactions +issues: +- id: SWC-106 + count: 1 + locations: + - bytecode_offsets: + '0x4c20e9cbecd3c45ce0150249b859cb413b468db3bbff8cc29aaee21ce64f7c5d': [233] + line_numbers: + suicide_multitx_feasible.sol: [16] diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_infeasible.json b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.json similarity index 100% rename from test_cases/unprotected_critical_functions/suicide_multitx_infeasible.json rename to test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.json diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_infeasible.sol b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.sol similarity index 100% rename from test_cases/unprotected_critical_functions/suicide_multitx_infeasible.sol rename to test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.sol diff --git a/test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.yaml b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.yaml new file mode 100644 index 00000000..aec793c7 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/suicide_multitx_infeasible/suicide_multitx_infeasible.yaml @@ -0,0 +1,5 @@ +description: Unreachable SUICIDE instruction +issues: +- id: SWC-106 + count: 0 + locations: [] diff --git a/test_cases/unprotected_critical_functions/wallet_01_ok.json b/test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.json similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_01_ok.json rename to test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.json diff --git a/test_cases/unprotected_critical_functions/wallet_01_ok.sol b/test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.sol similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_01_ok.sol rename to test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.sol diff --git a/test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.yaml b/test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.yaml new file mode 100644 index 00000000..b6dcd24e --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/wallet_01_ok/wallet_01_ok.yaml @@ -0,0 +1,5 @@ +description: User can withdraw Ether, but not more than they paid in +issues: +- id: SWC-105 + count: 0 + locations: [] diff --git a/test_cases/unprotected_critical_functions/wallet_02_refund_nosub.json b/test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.json similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_02_refund_nosub.json rename to test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.json diff --git a/test_cases/unprotected_critical_functions/wallet_02_refund_nosub.sol b/test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.sol similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_02_refund_nosub.sol rename to test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.sol diff --git a/test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.yaml b/test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.yaml new file mode 100644 index 00000000..b1558901 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/wallet_02_refund_nosub/wallet_02_refund_nosub.yaml @@ -0,0 +1,9 @@ +description: Attacker can pay in a small amount of Ether and call refund() repeatedly to empty the contract +issues: +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: + '0x06f59ace58eaeefe2d2c5d359776c2b853b1aecb16c2cb1b35b4eacec3d3e7a5': [776] + line_numbers: + wallet_02_refund_nosub.sol: [29] diff --git a/test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.json b/test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.json similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.json rename to test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.json diff --git a/test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.sol b/test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.sol similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.sol rename to test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.sol diff --git a/test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.yaml b/test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.yaml new file mode 100644 index 00000000..faaa6024 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/wallet_03_wrong_constructor/wallet_03_wrong_constructor.yaml @@ -0,0 +1,9 @@ +description: Attacker can become 'creator' by calling initWallet() and withdraw all funds +issues: +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: + '0xed3adab60fdd20b999b0656f703a23055371a57fb8813fe33a5d9a954bcd5484': [705] + line_numbers: + wallet_03_wrong_constructor.sol: [31] diff --git a/test_cases/unprotected_critical_functions/wallet_04_confused_sign.json b/test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.json similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_04_confused_sign.json rename to test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.json diff --git a/test_cases/unprotected_critical_functions/wallet_04_confused_sign.sol b/test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.sol similarity index 100% rename from test_cases/unprotected_critical_functions/wallet_04_confused_sign.sol rename to test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.sol diff --git a/test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.yaml b/test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.yaml new file mode 100644 index 00000000..35dc8055 --- /dev/null +++ b/test_cases/solidity/unprotected_critical_functions/wallet_04_confused_sign/wallet_04_confused_sign.yaml @@ -0,0 +1,9 @@ +description: Attacker can withdraw unlimited funds due erroneous comparison operator in withdraw function +issues: +- id: SWC-105 + count: 1 + locations: + - bytecode_offsets: + '0xabb778ab80a415887f74d7f545bcb219e03ff41cc152ed99fa9d2122adf87774': [340] + line_numbers: + wallet_04_confused_sign.sol: [24] diff --git a/test_cases/weak_randomness/guess_the_random_number.json b/test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.json similarity index 100% rename from test_cases/weak_randomness/guess_the_random_number.json rename to test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.json diff --git a/test_cases/weak_randomness/guess_the_random_number.sol b/test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.sol similarity index 100% rename from test_cases/weak_randomness/guess_the_random_number.sol rename to test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.sol diff --git a/test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.yaml b/test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.yaml new file mode 100644 index 00000000..d37dd2f5 --- /dev/null +++ b/test_cases/solidity/weak_randomness/guess_the_random_number/guess_the_random_number.yaml @@ -0,0 +1,8 @@ +description: Guess the number from a predictable on chain source +issues: +- id: SWC-120 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + guess_the_random_number.sol: [14] diff --git a/test_cases/weak_randomness/guess_the_random_number_fixed.json b/test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.json similarity index 100% rename from test_cases/weak_randomness/guess_the_random_number_fixed.json rename to test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.json diff --git a/test_cases/weak_randomness/guess_the_random_number_fixed.sol b/test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.sol similarity index 100% rename from test_cases/weak_randomness/guess_the_random_number_fixed.sol rename to test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.sol diff --git a/test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.yaml b/test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.yaml new file mode 100644 index 00000000..901f71e9 --- /dev/null +++ b/test_cases/solidity/weak_randomness/guess_the_random_number_fixed/guess_the_random_number_fixed.yaml @@ -0,0 +1,5 @@ +description: Guess the number from a predictable on chain source +issues: +- id: SWC-120 + count: 0 + locations: [] diff --git a/test_cases/weak_randomness/old_blockhash.json b/test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.json similarity index 100% rename from test_cases/weak_randomness/old_blockhash.json rename to test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.json diff --git a/test_cases/weak_randomness/old_blockhash.sol b/test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.sol similarity index 100% rename from test_cases/weak_randomness/old_blockhash.sol rename to test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.sol diff --git a/test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.yaml b/test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.yaml new file mode 100644 index 00000000..6e258e4f --- /dev/null +++ b/test_cases/solidity/weak_randomness/old_blockhash/old_blockhash.yaml @@ -0,0 +1,8 @@ +description: Weak Sources of Randomness +issues: +- id: SWC-120 + count: 1 + locations: + - bytecode_offsets: {} + line_numbers: + old_blockhash.sol: [29] diff --git a/test_cases/weak_randomness/old_blockhash_fixed.json b/test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.json similarity index 100% rename from test_cases/weak_randomness/old_blockhash_fixed.json rename to test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.json diff --git a/test_cases/weak_randomness/old_blockhash_fixed.sol b/test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.sol similarity index 100% rename from test_cases/weak_randomness/old_blockhash_fixed.sol rename to test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.sol diff --git a/test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.yaml b/test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.yaml new file mode 100644 index 00000000..36cc0416 --- /dev/null +++ b/test_cases/solidity/weak_randomness/old_blockhash_fixed/old_blockhash_fixed.yaml @@ -0,0 +1,5 @@ +description: Weak Sources of Randomness +issues: +- id: SWC-120 + count: 0 + locations: [] diff --git a/test_cases/weak_randomness/random_number_generator.json b/test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.json similarity index 100% rename from test_cases/weak_randomness/random_number_generator.json rename to test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.json diff --git a/test_cases/weak_randomness/random_number_generator.sol b/test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.sol similarity index 100% rename from test_cases/weak_randomness/random_number_generator.sol rename to test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.sol diff --git a/test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.yaml b/test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.yaml new file mode 100644 index 00000000..6fcab5f3 --- /dev/null +++ b/test_cases/solidity/weak_randomness/random_number_generator/random_number_generator.yaml @@ -0,0 +1,17 @@ +description: Weak Sources of Randomness +issues: +- id: SWC-120 + count: 4 + locations: + - bytecode_offsets: {} + line_numbers: + random_number_generator.sol: [5] + - bytecode_offsets: {} + line_numbers: + random_number_generator.sol: [10] + - bytecode_offsets: {} + line_numbers: + random_number_generator.sol: [11] + - bytecode_offsets: {} + line_numbers: + random_number_generator.sol: [12] diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.json b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.json similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.json rename to test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.json diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.sol b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.sol similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.sol rename to test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.sol diff --git a/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.yaml b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.yaml new file mode 100644 index 00000000..d4876bb5 --- /dev/null +++ b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple/arbitrary_location_write_simple.yaml @@ -0,0 +1,16 @@ +description: Simple variant of write to arbitrary storage location +issues: +- id: SWC-124 + count: 1 + locations: + - bytecode_offsets: + '0x4d778370f4fe1789bc427ab08efc768fcb4c6c8b68d2ee41178340423445bd45': [294] + line_numbers: + arbitrary_location_write_simple.sol: [26] +- id: SWC-101 + count: 1 + locations: + - bytecode_offsets: + '0x4d778370f4fe1789bc427ab08efc768fcb4c6c8b68d2ee41178340423445bd45': [331] + line_numbers: + arbitrary_location_write_simple.sol: [21] diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.json b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.json similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.json rename to test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.json diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.sol b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.sol similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.sol rename to test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.sol diff --git a/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.yaml b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.yaml new file mode 100644 index 00000000..7b6aec39 --- /dev/null +++ b/test_cases/solidity/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed/arbitrary_location_write_simple_fixed.yaml @@ -0,0 +1,8 @@ +description: Simple variant of write to arbitrary storage location +issues: +- id: SWC-124 + count: 0 + locations: [] +- id: SWC-101 + count: 0 + locations: [] diff --git a/test_cases/write_to_arbitrary_storage_location/mapping_write.json b/test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.json similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/mapping_write.json rename to test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.json diff --git a/test_cases/write_to_arbitrary_storage_location/mapping_write.sol b/test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.sol similarity index 100% rename from test_cases/write_to_arbitrary_storage_location/mapping_write.sol rename to test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.sol diff --git a/test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.yaml b/test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.yaml new file mode 100644 index 00000000..522c97fe --- /dev/null +++ b/test_cases/solidity/write_to_arbitrary_storage_location/mapping_write/mapping_write.yaml @@ -0,0 +1,9 @@ +description: Write to arbitrary storage location using dynamic arrays +issues: +- id: SWC-124 + count: 1 + locations: + - bytecode_offsets: + '0xb3f8b66f8449fff6ee9ba17ae5534dfb2d8f4c4281c8a9ad56c1354a55c389d3': [395] + line_numbers: + mapping_write.sol: [14] diff --git a/test_cases/timestamp_dependence/timed_crowdsale.yaml b/test_cases/timestamp_dependence/timed_crowdsale.yaml deleted file mode 100644 index 86d56f52..00000000 --- a/test_cases/timestamp_dependence/timed_crowdsale.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Timestamp Dependence" -issues: -- id: "SWC-116" - count: 1 - locations: - - bytecode_offsets: [120] - line_numbers: [6] diff --git a/test_cases/transaction_malleability/transaction_malleablity.yaml b/test_cases/transaction_malleability/transaction_malleablity.yaml deleted file mode 100644 index 00478d2b..00000000 --- a/test_cases/transaction_malleability/transaction_malleablity.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Calculates transaction identifier with signature" -issues: -- id: "SWC-117" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [23] diff --git a/test_cases/transaction_malleability/transaction_malleablity_fixed.yaml b/test_cases/transaction_malleability/transaction_malleablity_fixed.yaml deleted file mode 100644 index 88ca0e8c..00000000 --- a/test_cases/transaction_malleability/transaction_malleablity_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Calculates transaction identifier with signature" -issues: -- id: "SWC-117" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/transaction_order_dependence/ERC20.yaml b/test_cases/transaction_order_dependence/ERC20.yaml deleted file mode 100644 index f5431310..00000000 --- a/test_cases/transaction_order_dependence/ERC20.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "ERC20 approve() front running" -issues: -- id: "SWC-114" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [104] diff --git a/test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.yaml b/test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.yaml deleted file mode 100644 index d9e17a9e..00000000 --- a/test_cases/transaction_order_dependence/eth_tx_order_dependence_minimal.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Simple claim/set reward example for front running " -issues: -- id: "SWC-114" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [17] \ No newline at end of file diff --git a/test_cases/tx_origin/mycontract.yaml b/test_cases/tx_origin/mycontract.yaml deleted file mode 100644 index 0b93a306..00000000 --- a/test_cases/tx_origin/mycontract.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Use tx.origin to authorize ETH withdrawls" -issues: -- id: "SWC-115" - count: 1 - locations: - - bytecode_offsets: [204] - line_numbers: [18] \ No newline at end of file diff --git a/test_cases/tx_origin/mycontract_fixed.yaml b/test_cases/tx_origin/mycontract_fixed.yaml deleted file mode 100644 index 2e72f268..00000000 --- a/test_cases/tx_origin/mycontract_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Use tx.origin to authorize ETH withdrawls" -issues: -- id: "SWC-115" - count: 0 - locations: - - bytecode_offsets: - line_numbers: [] diff --git a/test_cases/typographical_error/typo_one_command.yaml b/test_cases/typographical_error/typo_one_command.yaml deleted file mode 100644 index 50abb6e5..00000000 --- a/test_cases/typographical_error/typo_one_command.yaml +++ /dev/null @@ -1,6 +0,0 @@ -description: "Typographical error in an operation of summing a variable (uint) with 1" -issues: -- id: "SWC-129" - count: 1 - locations: - - line_numbers: [7] diff --git a/test_cases/typographical_error/typo_safe_math.yaml b/test_cases/typographical_error/typo_safe_math.yaml deleted file mode 100644 index ea0bdb51..00000000 --- a/test_cases/typographical_error/typo_safe_math.yaml +++ /dev/null @@ -1,6 +0,0 @@ -description: "Typographical error in an operation of summing a variable (uint) with 1, it also includes a safe way to do it." -issues: -- id: "SWC-129" - count: 1 - locations: - - line_numbers: [75] diff --git a/test_cases/typographical_error/typo_simple.yaml b/test_cases/typographical_error/typo_simple.yaml deleted file mode 100644 index 76254d31..00000000 --- a/test_cases/typographical_error/typo_simple.yaml +++ /dev/null @@ -1,6 +0,0 @@ -description: "Typographical error in an operation of summing a variable (uint) with 1" -issues: -- id: "SWC-129" - count: 1 - locations: - - line_numbers: [9] diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette.yaml b/test_cases/uninitialised_storage_pointer/crypto_roulette.yaml deleted file mode 100644 index c3440a05..00000000 --- a/test_cases/uninitialised_storage_pointer/crypto_roulette.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Test for uninitialised storage variable" -issues: -- id: "SWC-109" - count: 1 - locations: - - bytecode_offsets: - line_numbers: [39] \ No newline at end of file diff --git a/test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.yaml b/test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.yaml deleted file mode 100644 index c261554b..00000000 --- a/test_cases/uninitialised_storage_pointer/crypto_roulette_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Test for uninitialised storage variable" -issues: -- id: "SWC-109" - count: 0 - locations: - - bytecode_offsets: - line_numbers: [] diff --git a/test_cases/unprotected_critical_functions/multiowned_not_vulnerable.yaml b/test_cases/unprotected_critical_functions/multiowned_not_vulnerable.yaml deleted file mode 100644 index aa359da0..00000000 --- a/test_cases/unprotected_critical_functions/multiowned_not_vulnerable.yaml +++ /dev/null @@ -1,5 +0,0 @@ -description: "Ether withdrawal function and correclty named constructor (not vulnerable)" -issues: -- id: "SWC-105" - count: 0 - diff --git a/test_cases/unprotected_critical_functions/multiowned_vulnerable.yaml b/test_cases/unprotected_critical_functions/multiowned_vulnerable.yaml deleted file mode 100644 index 15bd8ac8..00000000 --- a/test_cases/unprotected_critical_functions/multiowned_vulnerable.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Ether withdrawal function and correclty named constructor (not vulnerable)" -issues: -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [50] diff --git a/test_cases/unprotected_critical_functions/simple_ether_drain.yaml b/test_cases/unprotected_critical_functions/simple_ether_drain.yaml deleted file mode 100644 index 59dc4cd8..00000000 --- a/test_cases/unprotected_critical_functions/simple_ether_drain.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Anybody can withdraw all Ether from the contract account" -issues: -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [156] - line_numbers: [4] diff --git a/test_cases/unprotected_critical_functions/simple_suicide.yaml b/test_cases/unprotected_critical_functions/simple_suicide.yaml deleted file mode 100644 index d0eaa76c..00000000 --- a/test_cases/unprotected_critical_functions/simple_suicide.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Trivially killable contract" -issues: -- id: "SWC-106" - count: 1 - locations: - - bytecode_offsets: [112] - line_numbers: [4] diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_feasible.yaml b/test_cases/unprotected_critical_functions/suicide_multitx_feasible.yaml deleted file mode 100644 index ed5c5fff..00000000 --- a/test_cases/unprotected_critical_functions/suicide_multitx_feasible.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Contract can be killed with 2 transactions" -issues: -- id: "SWC-106" - count: 1 - locations: - - bytecode_offsets: [233] - line_numbers: [16] diff --git a/test_cases/unprotected_critical_functions/suicide_multitx_infeasible.yaml b/test_cases/unprotected_critical_functions/suicide_multitx_infeasible.yaml deleted file mode 100644 index 0c5f2394..00000000 --- a/test_cases/unprotected_critical_functions/suicide_multitx_infeasible.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: "Unreachable SUICIDE instruction" -issues: -- id: "SWC-106" - count: 0 diff --git a/test_cases/unprotected_critical_functions/wallet_01_ok.yaml b/test_cases/unprotected_critical_functions/wallet_01_ok.yaml deleted file mode 100644 index 9151132d..00000000 --- a/test_cases/unprotected_critical_functions/wallet_01_ok.yaml +++ /dev/null @@ -1,4 +0,0 @@ -description: "User can withdraw Ether, but not more than they paid in" -issues: -- id: "SWC-105" - count: 0 diff --git a/test_cases/unprotected_critical_functions/wallet_02_refund_nosub.yaml b/test_cases/unprotected_critical_functions/wallet_02_refund_nosub.yaml deleted file mode 100644 index 2dfe93d3..00000000 --- a/test_cases/unprotected_critical_functions/wallet_02_refund_nosub.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Attacker can pay in a small amount of Ether and call refund() repeatedly to empty the contract" -issues: -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [776] - line_numbers: [29] diff --git a/test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.yaml b/test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.yaml deleted file mode 100644 index 0fcdef79..00000000 --- a/test_cases/unprotected_critical_functions/wallet_03_wrong_constructor.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Attacker can become 'creator' by calling initWallet() and withdraw all funds" -issues: -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [705] - line_numbers: [31] diff --git a/test_cases/unprotected_critical_functions/wallet_04_confused_sign.yaml b/test_cases/unprotected_critical_functions/wallet_04_confused_sign.yaml deleted file mode 100644 index 190ec7c2..00000000 --- a/test_cases/unprotected_critical_functions/wallet_04_confused_sign.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Attacker can withdraw unlimited funds due erroneous comparison operator in withdraw function" -issues: -- id: "SWC-105" - count: 1 - locations: - - bytecode_offsets: [340] - line_numbers: [24] diff --git a/test_cases/weak_randomness/guess_the_random_number.yaml b/test_cases/weak_randomness/guess_the_random_number.yaml deleted file mode 100644 index 1b81aff6..00000000 --- a/test_cases/weak_randomness/guess_the_random_number.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Guess the number from a predictable on chain source" -issues: -- id: "SWC-120" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [14] diff --git a/test_cases/weak_randomness/guess_the_random_number_fixed.yaml b/test_cases/weak_randomness/guess_the_random_number_fixed.yaml deleted file mode 100644 index 976c860f..00000000 --- a/test_cases/weak_randomness/guess_the_random_number_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Guess the number from a predictable on chain source" -issues: -- id: "SWC-120" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/weak_randomness/old_blockhash.yaml b/test_cases/weak_randomness/old_blockhash.yaml deleted file mode 100644 index efd20cfb..00000000 --- a/test_cases/weak_randomness/old_blockhash.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Weak Sources of Randomness" -issues: -- id: "SWC-120" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [29] diff --git a/test_cases/weak_randomness/old_blockhash_fixed.yaml b/test_cases/weak_randomness/old_blockhash_fixed.yaml deleted file mode 100644 index 61c5940d..00000000 --- a/test_cases/weak_randomness/old_blockhash_fixed.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Weak Sources of Randomness" -issues: -- id: "SWC-120" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/weak_randomness/random_number_generator.yaml b/test_cases/weak_randomness/random_number_generator.yaml deleted file mode 100644 index de3e50b5..00000000 --- a/test_cases/weak_randomness/random_number_generator.yaml +++ /dev/null @@ -1,13 +0,0 @@ -description: "Weak Sources of Randomness" -issues: -- id: "SWC-120" - count: 4 - locations: - - bytecode_offsets: [] - line_numbers: [5] - - bytecode_offsets: [] - line_numbers: [10] - - bytecode_offsets: [] - line_numbers: [11] - - bytecode_offsets: [] - line_numbers: [12] diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.yaml b/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.yaml deleted file mode 100644 index e58ec139..00000000 --- a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple.yaml +++ /dev/null @@ -1,12 +0,0 @@ -description: "Simple variant of write to arbitrary storage location" -issues: -- id: "SWC-124" - count: 1 - locations: - - bytecode_offsets: [294] - line_numbers: [26] -- id: "SWC-101" - count: 1 - locations: - - bytecode_offsets: [331] - line_numbers: [21] diff --git a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.yaml b/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.yaml deleted file mode 100644 index 2ef9dca6..00000000 --- a/test_cases/write_to_arbitrary_storage_location/arbitrary_location_write_simple_fixed.yaml +++ /dev/null @@ -1,12 +0,0 @@ -description: "Simple variant of write to arbitrary storage location" -issues: -- id: "SWC-124" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] -- id: "SWC-101" - count: 0 - locations: - - bytecode_offsets: [] - line_numbers: [] diff --git a/test_cases/write_to_arbitrary_storage_location/mapping_write.yaml b/test_cases/write_to_arbitrary_storage_location/mapping_write.yaml deleted file mode 100644 index ae6b0e8b..00000000 --- a/test_cases/write_to_arbitrary_storage_location/mapping_write.yaml +++ /dev/null @@ -1,7 +0,0 @@ -description: "Write to arbitrary storage location using dynamic arrays" -issues: -- id: "SWC-124" - count: 1 - locations: - - bytecode_offsets: [] - line_numbers: [14]