diff --git a/config/config.json.sample b/config/config.json.sample deleted file mode 100644 index eb6b5e6..0000000 --- a/config/config.json.sample +++ /dev/null @@ -1,13 +0,0 @@ -{ - "LINKDROP_MASTER_ADDRESS": "", - "SIGNING_KEY": "", - "FACTORY_ADDRESS": "0xBa051891B752ecE3670671812486fe8dd34CC1c8", - "CAMPAIGN_ID": "1", - "LINKS_NUMBER": "100", - "WEI_AMOUNT": "10", - "TOKEN_ADDRESS": "0x0000000000000000000000000000000000000000", - "TOKENS_AMOUNT": "0", - "EXPIRATION_TIME": "10000000000", - "CHAIN": "mainnet", - "DEFAULT_WALLET": "" -} diff --git a/generate-erc1155.js b/generate-erc1155.js new file mode 100644 index 0000000..3cd7787 --- /dev/null +++ b/generate-erc1155.js @@ -0,0 +1,75 @@ +const fs = require('fs') +const path = require('path') +const ora = require('ora') +const term = require('terminal-kit').terminal +const ethers = require('ethers') +const fastcsv = require('fast-csv') +const LinkdropSDK = require('@linkdrop/sdk').default +const config = require('./config') + +;(async () => { + let spinner + try { + spinner = ora({ + text: term.bold.green.str('Generating links'), + color: 'green' + }) + spinner.start() + + const linkdropSDK = new LinkdropSDK({ + linkdropMasterAddress: config.LINKDROP_MASTER_ADDRESS, + factoryAddress: config.FACTORY_ADDRESS || '0xBa051891B752ecE3670671812486fe8dd34CC1c8', + chain: config.CHAIN || 'mainnet', + claimHost: config.CLAIM_HOST, + jsonRpcUrl: config.JSON_RPC_URL, + apiHost: config.API_HOST + }) + + const proxyAddress = linkdropSDK.getProxyAddress(config.CAMPAIGN_ID) + + // Generate links + const links = [] + const tokenIds = JSON.parse(decodeURI(config.TOKEN_IDS)) + + for (let i = 0; i < config.LINKS_NUMBER; i++) { + + const { + url + } = await linkdropSDK.generateLinkERC1155({ + signingKeyOrWallet: config.SIGNING_KEY, + weiAmount: config.WEI_AMOUNT || 0, + nftAddress: config.TOKEN_ADDRESS || ethers.constants.AddressZero, + tokenAmount: config.TOKENS_AMOUNT || 0, + expirationTime: config.EXPIRATION_TIME || 10000000000, + campaignId: config.CAMPAIGN_ID || 1, + wallet: config.DEFAULT_WALLET, + tokenId: tokenIds[i] + }) + + const finalUrl = config.MANUAL === "true" ? `${url}&manual=true` : url + + links.push({ url: finalUrl }) + } + + // Save links + const dir = path.join(__dirname, './output') + const filename = path.join(dir, 'linkdrop.csv') + + try { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) + } + const ws = fs.createWriteStream(filename) + fastcsv.write(links).pipe(ws) + } catch (err) { + throw new Error(err) + } + + spinner.succeed(term.bold.str(`Saved generated links to ^_${filename}`)) + + return links + } catch (err) { + spinner.fail(term.bold.red.str('Failed to generate links')) + throw new Error(err) + } +})() diff --git a/index.js b/generate-erc20.js similarity index 87% rename from index.js rename to generate-erc20.js index 1b4947c..2f9fe97 100644 --- a/index.js +++ b/generate-erc20.js @@ -18,9 +18,11 @@ const config = require('./config') const linkdropSDK = new LinkdropSDK({ linkdropMasterAddress: config.LINKDROP_MASTER_ADDRESS, - factoryAddress: - config.FACTORY_ADDRESS || '0xBa051891B752ecE3670671812486fe8dd34CC1c8', - chain: config.CHAIN || 'mainnet' + factoryAddress: config.FACTORY_ADDRESS || '0xBa051891B752ecE3670671812486fe8dd34CC1c8', + chain: config.CHAIN || 'mainnet', + claimHost: config.CLAIM_HOST, + jsonRpcUrl: config.JSON_RPC_URL, + apiHost: config.API_HOST }) const proxyAddress = linkdropSDK.getProxyAddress(config.CAMPAIGN_ID) @@ -30,10 +32,7 @@ const config = require('./config') for (let i = 0; i < config.LINKS_NUMBER; i++) { const { - url, - linkId, - linkKey, - linkdropSignerSignature + url } = await linkdropSDK.generateLink({ signingKeyOrWallet: config.SIGNING_KEY, weiAmount: config.WEI_AMOUNT || 0, diff --git a/generate-erc721.js b/generate-erc721.js new file mode 100644 index 0000000..a30a0d7 --- /dev/null +++ b/generate-erc721.js @@ -0,0 +1,73 @@ +const fs = require('fs') +const path = require('path') +const ora = require('ora') +const term = require('terminal-kit').terminal +const ethers = require('ethers') +const fastcsv = require('fast-csv') +const LinkdropSDK = require('@linkdrop/sdk').default +const config = require('./config') + +;(async () => { + let spinner + try { + spinner = ora({ + text: term.bold.green.str('Generating links'), + color: 'green' + }) + spinner.start() + + const linkdropSDK = new LinkdropSDK({ + linkdropMasterAddress: config.LINKDROP_MASTER_ADDRESS, + factoryAddress: config.FACTORY_ADDRESS || '0xBa051891B752ecE3670671812486fe8dd34CC1c8', + chain: config.CHAIN || 'mainnet', + claimHost: config.CLAIM_HOST, + jsonRpcUrl: config.JSON_RPC_URL, + apiHost: config.API_HOST + }) + + + const proxyAddress = linkdropSDK.getProxyAddress(config.CAMPAIGN_ID) + + // Generate links + const links = [] + + const tokenIds = JSON.parse(decodeURI(config.TOKEN_IDS)) + + for (let i = 0; i < config.LINKS_NUMBER; i++) { + const { + url + } = await linkdropSDK.generateLinkERC721({ + signingKeyOrWallet: config.SIGNING_KEY, + weiAmount: config.WEI_AMOUNT || 0, + expirationTime: config.EXPIRATION_TIME || 10000000000, + campaignId: config.CAMPAIGN_ID || 1, + wallet: config.DEFAULT_WALLET, + nftAddress: config.TOKEN_ADDRESS || ethers.constants.AddressZero, + tokenId: tokenIds[i] + }) + + links.push({ url }) + } + + // Save links + const dir = path.join(__dirname, './output') + const filename = path.join(dir, 'linkdrop.csv') + + try { + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) + } + const ws = fs.createWriteStream(filename) + fastcsv.write(links).pipe(ws) + } catch (err) { + throw new Error(err) + } + + spinner.succeed(term.bold.str(`Saved generated links to ^_${filename}`)) + + return links + } catch (err) { + spinner.fail(term.bold.red.str('Failed to generate links')) + throw new Error(err) + } +})() diff --git a/package.json b/package.json index fc90c60..a963c06 100644 --- a/package.json +++ b/package.json @@ -6,10 +6,14 @@ "author": "Amir Jumaniyazov ", "license": "MIT", "private": false, - "scripts": { "generate": "node index" }, + "scripts": { + "generate-erc20": "node generate-erc20.js", + "generate-erc721": "node generate-erc721.js", + "generate-erc1155": "node generate-erc1155.js" + }, "dependencies": { "@babel/runtime": "^7.7.7", - "@linkdrop/sdk": "^1.1.2", + "@linkdrop/sdk": "^1.2.0", "ethers": "^4.0.41", "fast-csv": "^4.0.1", "ora": "^4.0.3", diff --git a/yarn.lock b/yarn.lock index 34c5a93..872835b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,24 +44,25 @@ lodash.isundefined "^3.0.1" lodash.uniq "^4.5.0" -"@linkdrop/contracts@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@linkdrop/contracts/-/contracts-1.1.2.tgz#8807984751da9f3e4ee83a1587efd91f7e74ebfb" - integrity sha512-N+KQ+O2uNyPhcR+0VoBBsNZrjTqc1VOmCIR1NBQhF4rMN3cs7lP+G/KkyZ1cPvxyscnpSltG7d5DaTl3C0ehkA== +"@linkdrop/contracts@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@linkdrop/contracts/-/contracts-1.2.0.tgz#29d59758be6fa085a38154aabc868a2f3a09d950" + integrity sha512-cYZUAuBbfUFQDuZ39w6/4cN+oqDWjaRBpldYUZ8SMegDijucpoahZl5lcrRYN9OvYecWbeSACgoSaPvtGCJXKQ== dependencies: - "@linkdrop/sdk" "^1.1.2" + "@linkdrop/sdk" "^1.2.0" ethereum-waffle "^2.0.14" ethers "^4.0.27" - openzeppelin-solidity "^2.2.0" + openzeppelin-solidity "^3.4.0" solc "^0.5.10" -"@linkdrop/sdk@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@linkdrop/sdk/-/sdk-1.1.2.tgz#e15e6b172d6351887441a2c40d8bdbb85ec0d256" - integrity sha512-11aS+QPB3Uma9scVYuoqBEnHw4LzPN5qgmTYkU37zM+qz5jtiB1B4hgbY+W1lzjtLTBfnNFxHZpfUxy/CP/oig== +"@linkdrop/sdk@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@linkdrop/sdk/-/sdk-1.2.0.tgz#75cf13af4ced8ae63958ff69d3c86f3e7e7d2624" + integrity sha512-GmOILxAeppcefWkidAoaF2KEfhigVoNXXCY3m6dFYRKTYg5Z0s2vBn4AIaikpNhxWArzphluKDChhaMMWya42A== dependencies: - "@linkdrop/contracts" "^1.1.2" + "@linkdrop/contracts" "^1.2.0" axios "^0.18.1" + ethereumjs-wallet "^0.6.3" ethers "^4.0.27" "@resolver-engine/core@^0.3.3": @@ -147,6 +148,20 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.22.tgz#b8d9eae3328b96910a373cf06ac8d3c5abe9c200" integrity sha512-r5i93jqbPWGXYXxianGATOxTelkp6ih/U0WVnvaqAvTqM+0U6J3kw6Xk6uq/dWNRkEVw/0SLcO5ORXbVNz4FMQ== +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + abstract-leveldown@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-3.0.0.tgz#5cb89f958a44f526779d740d1440e743e0c30a57" @@ -1073,6 +1088,11 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" +blakejs@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.1.tgz#bf313053978b2cd4c444a48795710be05c785702" + integrity sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg== + bluebird@^3.5.0: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -1088,6 +1108,11 @@ bn.js@4.11.8, bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.10.0, bn.js@^4. resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + body-parser@1.19.0, body-parser@^1.16.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -1128,12 +1153,12 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= -browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6, browserify-aes@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== @@ -1672,7 +1697,7 @@ create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2, create-hash@^1.2.0: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== @@ -2045,6 +2070,19 @@ elliptic@6.5.2, elliptic@^6.0.0, elliptic@^6.4.0, elliptic@^6.5.2: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -2306,6 +2344,27 @@ ethereum-common@^0.0.18: resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + ethereum-waffle@^2.0.14: version "2.2.0" resolved "https://registry.yarnpkg.com/ethereum-waffle/-/ethereum-waffle-2.2.0.tgz#14faef4c2304b1e8c979eed6a8f1c69027c31e17" @@ -2543,6 +2602,21 @@ ethereumjs-wallet@0.6.3: utf8 "^3.0.0" uuid "^3.3.2" +ethereumjs-wallet@^0.6.3: + version "0.6.5" + resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.5.tgz#685e9091645cee230ad125c007658833991ed474" + integrity sha512-MDwjwB9VQVnpp/Dc1XzA6J1a3wgHQ4hSvA1uWNatdpOrtCbPVuQSKSyRnjLvS0a+KKMw2pvQ9Ybqpb3+eW8oNA== + dependencies: + aes-js "^3.1.1" + bs58check "^2.1.2" + ethereum-cryptography "^0.1.3" + ethereumjs-util "^6.0.0" + randombytes "^2.0.6" + safe-buffer "^5.1.2" + scryptsy "^1.2.1" + utf8 "^3.0.0" + uuid "^3.3.2" + ethers@4.0.0-beta.3: version "4.0.0-beta.3" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.3.tgz#15bef14e57e94ecbeb7f9b39dd0a4bd435bc9066" @@ -3339,7 +3413,7 @@ hash.js@1.1.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hash.js@^1.0.0, hash.js@^1.0.3: +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -3361,7 +3435,7 @@ heap@0.2.6: resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" integrity sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw= -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.0, hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -3963,6 +4037,15 @@ keccak@^2.0.0: nan "^2.14.0" safe-buffer "^5.2.0" +keccak@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.2.tgz#4c2c6e8c54e04f2670ee49fa734eb9da152206e0" + integrity sha512-PyKKjkH53wDMLGrvmRGSNWgmSxZOUqbnXwKL9tmgbFYA1iAYqW21kfR7mZXV0MlESiefxQQE9X9fTa3X+2MPDQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + keccakjs@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" @@ -4626,6 +4709,11 @@ nextgen-events@^1.3.0: resolved "https://registry.yarnpkg.com/nextgen-events/-/nextgen-events-1.3.0.tgz#a32665d1ab6f026448b19d75c4603ec20292fa22" integrity sha512-eBz5mrO4Hw2eenPVm0AVPHuAzg/RZetAWMI547RH8O9+a0UYhCysiZ3KoNWslnWNlHetb9kzowEshsKsmFo2YQ== +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + node-bitmap@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/node-bitmap/-/node-bitmap-0.0.1.tgz#180eac7003e0c707618ef31368f62f84b2a69091" @@ -4644,6 +4732,11 @@ node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" +node-gyp-build@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3" + integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q== + normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -4813,10 +4906,10 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" -openzeppelin-solidity@^2.2.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-2.4.0.tgz#5f0a7b30571c45493449166e57b947203415349d" - integrity sha512-533gc5jkspxW5YT0qJo02Za5q1LHwXK9CJCc48jNj/22ncNM/3M/3JfWLqfpB90uqLwOKOovpl0JfaMQTR+gXQ== +openzeppelin-solidity@^3.4.0: + version "3.4.2" + resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-3.4.2.tgz#ec9b3d701c459e6075691bbda642d54290e0c7ab" + integrity sha512-mpk74A6Bo+/ISfalUqtD8bAfINQgkGH2yInUFn/uBYz1pXbefwMTApjlnCYr+HpQpeOgO7nO8deJYrzBGDFDMA== ora@^4.0.3: version "4.0.3" @@ -4989,6 +5082,17 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +pbkdf2@^3.0.17: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -5237,7 +5341,7 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -5312,6 +5416,15 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~1.0.15: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -5584,6 +5697,11 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-event-emitter@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz#5b692ef22329ed8f69fdce607e50ca734f6f20af" @@ -5613,6 +5731,11 @@ scrypt-js@2.0.4: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== +scrypt-js@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + scrypt.js@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.3.0.tgz#6c62d61728ad533c8c376a2e5e3e86d41a95c4c0" @@ -5655,6 +5778,15 @@ secp256k1@^3.0.1: nan "^2.14.0" safe-buffer "^5.1.2" +secp256k1@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + seedrandom@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.1.tgz#eb3dde015bcf55df05a233514e5df44ef9dce083" @@ -6045,6 +6177,13 @@ string.prototype.trimright@^2.1.1: define-properties "^1.1.3" function-bind "^1.1.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -6537,7 +6676,7 @@ utf8@3.0.0, utf8@^3.0.0: resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= @@ -6924,7 +7063,6 @@ websocket@1.0.29: dependencies: debug "^2.2.0" es5-ext "^0.10.50" - gulp "^4.0.2" nan "^2.14.0" typedarray-to-buffer "^3.1.5" yaeti "^0.0.6"