diff options
-rw-r--r-- | package.json | 3 | ||||
-rw-r--r-- | src/contract_wrappers/token_wrapper.ts | 17 | ||||
-rw-r--r-- | src/types.ts | 1 | ||||
-rw-r--r-- | test/token_wrapper_test.ts | 65 | ||||
-rw-r--r-- | yarn.lock | 231 |
5 files changed, 274 insertions, 43 deletions
diff --git a/package.json b/package.json index 75a55b899..6051759ea 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,6 @@ "docs:json": "typedoc --json docs/index.json .", "docs:generate": "typedoc --out docs .", "docs:open": "opn docs/index.html", - "clean": "shx rm -rf _bundles lib test_temp", "build:dev": "npm run clean && run-p build:*:dev", "build:umd:dev": "webpack", @@ -60,7 +59,7 @@ "chai-as-promised": "^6.0.0", "chai-bignumber": "^2.0.0", "copyfiles": "^1.2.0", - "ethereumjs-testrpc": "^3.0.5", + "ethereumjs-testrpc": "3.0.5", "json-loader": "^0.5.4", "mocha": "^3.4.1", "npm-run-all": "^4.0.2", diff --git a/src/contract_wrappers/token_wrapper.ts b/src/contract_wrappers/token_wrapper.ts index 35e008905..cedbfbdae 100644 --- a/src/contract_wrappers/token_wrapper.ts +++ b/src/contract_wrappers/token_wrapper.ts @@ -52,7 +52,7 @@ export class TokenWrapper extends ContractWrapper { * of an owner address. */ public async setProxyAllowanceAsync(tokenAddress: string, ownerAddress: string, - amountInBaseUnits: BigNumber.BigNumber) { + amountInBaseUnits: BigNumber.BigNumber): Promise<void> { assert.isETHAddressHex('ownerAddress', ownerAddress); assert.isETHAddressHex('tokenAddress', tokenAddress); assert.isBigNumber('amountInBaseUnits', amountInBaseUnits); @@ -69,6 +69,21 @@ export class TokenWrapper extends ContractWrapper { gas, }); } + /** + * Transfers `amountInBaseUnits` ERC20 tokens from `fromAddress` to `toAddress`. + */ + public async transferAsync(tokenAddress: string, fromAddress: string, toAddress: string, + amountInBaseUnits: BigNumber.BigNumber): Promise<void> { + assert.isETHAddressHex('tokenAddress', tokenAddress); + assert.isETHAddressHex('fromAddress', fromAddress); + assert.isETHAddressHex('toAddress', toAddress); + assert.isBigNumber('amountInBaseUnits', amountInBaseUnits); + + const tokenContract = await this.getTokenContractAsync(tokenAddress); + await tokenContract.transfer(toAddress, amountInBaseUnits, { + from: fromAddress, + }); + } private async getTokenContractAsync(tokenAddress: string): Promise<TokenContract> { let tokenContract = this.tokenContractsByAddress[tokenAddress]; if (!_.isUndefined(tokenContract)) { diff --git a/src/types.ts b/src/types.ts index 25338a531..aaf703d31 100644 --- a/src/types.ts +++ b/src/types.ts @@ -47,6 +47,7 @@ export interface TokenContract { allowance: { call: (ownerAddress: string, allowedAddress: string) => Promise<BigNumber.BigNumber>; }; + transfer: (to: string, amountInBaseUnits: BigNumber.BigNumber, txOpts: TxOpts) => Promise<boolean>; approve: (proxyAddress: string, amountInBaseUnits: BigNumber.BigNumber, txOpts: TxOpts) => void; } diff --git a/test/token_wrapper_test.ts b/test/token_wrapper_test.ts index 5ce3efb14..4af07a8b2 100644 --- a/test/token_wrapper_test.ts +++ b/test/token_wrapper_test.ts @@ -28,63 +28,84 @@ describe('TokenWrapper', () => { afterEach(async () => { await blockchainLifecycle.revertAsync(); }); + describe('#transferAsync', () => { + it('should successfully transfer tokens', async () => { + const token = tokens[0]; + const fromAddress = userAddresses[0]; + const toAddress = userAddresses[1]; + const preBalance = await zeroEx.token.getBalanceAsync(token.address, toAddress); + expect(preBalance).to.be.bignumber.equal(0); + const transferAmount = new BigNumber(42); + await zeroEx.token.transferAsync(token.address, fromAddress, toAddress, transferAmount); + const postBalance = await zeroEx.token.getBalanceAsync(token.address, toAddress); + expect(postBalance).to.be.bignumber.equal(transferAmount); + }); + it('should throw a CONTRACT_DOES_NOT_EXIST error for a non-existent token contract', async () => { + const nonExistentTokenAddress = '0x9dd402f14d67e001d8efbe6583e51bf9706aa065'; + const fromAddress = userAddresses[0]; + const toAddress = userAddresses[0]; + expect(zeroEx.token.transferAsync( + nonExistentTokenAddress, fromAddress, toAddress, new BigNumber(42), + )).to.be.rejectedWith(ZeroExError.CONTRACT_DOES_NOT_EXIST); + }); + }); describe('#getBalanceAsync', () => { it('should return the balance for an existing ERC20 token', async () => { - const aToken = tokens[0]; - const aOwnerAddress = userAddresses[0]; - const balance = await zeroEx.token.getBalanceAsync(aToken.address, aOwnerAddress); + const token = tokens[0]; + const ownerAddress = userAddresses[0]; + const balance = await zeroEx.token.getBalanceAsync(token.address, ownerAddress); const expectedBalance = new BigNumber('100000000000000000000000000'); expect(balance).to.be.bignumber.equal(expectedBalance); }); it('should throw a CONTRACT_DOES_NOT_EXIST error for a non-existent token contract', async () => { const nonExistentTokenAddress = '0x9dd402f14d67e001d8efbe6583e51bf9706aa065'; - const aOwnerAddress = userAddresses[0]; - expect(zeroEx.token.getBalanceAsync(nonExistentTokenAddress, aOwnerAddress)) + const ownerAddress = userAddresses[0]; + expect(zeroEx.token.getBalanceAsync(nonExistentTokenAddress, ownerAddress)) .to.be.rejectedWith(ZeroExError.CONTRACT_DOES_NOT_EXIST); }); it('should return a balance of 0 for a non-existent owner address', async () => { - const aToken = tokens[0]; - const aNonExistentOwner = '0x198C6Ad858F213Fb31b6FE809E25040E6B964593'; - const balance = await zeroEx.token.getBalanceAsync(aToken.address, aNonExistentOwner); + const token = tokens[0]; + const nonExistentOwner = '0x198C6Ad858F213Fb31b6FE809E25040E6B964593'; + const balance = await zeroEx.token.getBalanceAsync(token.address, nonExistentOwner); const expectedBalance = new BigNumber('0'); expect(balance).to.be.bignumber.equal(expectedBalance); }); }); describe('#getProxyAllowanceAsync', () => { it('should get the proxy allowance', async () => { - const aToken = tokens[0]; - const aOwnerAddress = userAddresses[0]; + const token = tokens[0]; + const ownerAddress = userAddresses[0]; const amountInUnits = new BigNumber('50'); - const amountInBaseUnits = ZeroEx.toBaseUnitAmount(amountInUnits, aToken.decimals); - await zeroEx.token.setProxyAllowanceAsync(aToken.address, aOwnerAddress, amountInBaseUnits); + const amountInBaseUnits = ZeroEx.toBaseUnitAmount(amountInUnits, token.decimals); + await zeroEx.token.setProxyAllowanceAsync(token.address, ownerAddress, amountInBaseUnits); - const allowance = await zeroEx.token.getProxyAllowanceAsync(aToken.address, aOwnerAddress); + const allowance = await zeroEx.token.getProxyAllowanceAsync(token.address, ownerAddress); const expectedAllowance = amountInBaseUnits; expect(allowance).to.be.bignumber.equal(expectedAllowance); }); it('should return 0 if no allowance set yet', async () => { - const aToken = tokens[0]; - const aOwnerAddress = userAddresses[0]; - const allowance = await zeroEx.token.getProxyAllowanceAsync(aToken.address, aOwnerAddress); + const token = tokens[0]; + const ownerAddress = userAddresses[0]; + const allowance = await zeroEx.token.getProxyAllowanceAsync(token.address, ownerAddress); const expectedAllowance = new BigNumber('0'); expect(allowance).to.be.bignumber.equal(expectedAllowance); }); }); describe('#setProxyAllowanceAsync', () => { it('should set the proxy allowance', async () => { - const aToken = tokens[0]; - const aOwnerAddress = userAddresses[0]; + const token = tokens[0]; + const ownerAddress = userAddresses[0]; - const allowanceBeforeSet = await zeroEx.token.getProxyAllowanceAsync(aToken.address, aOwnerAddress); + const allowanceBeforeSet = await zeroEx.token.getProxyAllowanceAsync(token.address, ownerAddress); const expectedAllowanceBeforeAllowanceSet = new BigNumber('0'); expect(allowanceBeforeSet).to.be.bignumber.equal(expectedAllowanceBeforeAllowanceSet); const amountInUnits = new BigNumber('50'); - const amountInBaseUnits = ZeroEx.toBaseUnitAmount(amountInUnits, aToken.decimals); - await zeroEx.token.setProxyAllowanceAsync(aToken.address, aOwnerAddress, amountInBaseUnits); + const amountInBaseUnits = ZeroEx.toBaseUnitAmount(amountInUnits, token.decimals); + await zeroEx.token.setProxyAllowanceAsync(token.address, ownerAddress, amountInBaseUnits); - const allowanceAfterSet = await zeroEx.token.getProxyAllowanceAsync(aToken.address, aOwnerAddress); + const allowanceAfterSet = await zeroEx.token.getProxyAllowanceAsync(token.address, ownerAddress); const expectedAllowanceAfterAllowanceSet = amountInBaseUnits; expect(allowanceAfterSet).to.be.bignumber.equal(expectedAllowanceAfterAllowanceSet); }); @@ -90,6 +90,10 @@ acorn@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" +aes-js@^0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d" + ajv-keywords@^1.1.1: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" @@ -227,7 +231,7 @@ async-eventemitter@^0.2.2: dependencies: async "^2.4.0" -async@^1.4.0, async@^1.4.2: +async@^1.4.0, async@^1.4.2, async@^1.5.2, async@~1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -386,6 +390,10 @@ balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +base-x@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" + base64-js@^1.0.2: version "1.2.0" resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" @@ -404,10 +412,14 @@ bignumber.js@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.0.2.tgz#2d1dc37ee5968867ecea90b6da4d16e68608d21d" -"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": +"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", "bignumber.js@git+https://github.com/debris/bignumber.js.git#master": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" +bignumber.js@~2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.1.4.tgz#29b3bb693dbb238e88b72eac2fb89650888b2d59" + binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" @@ -416,6 +428,15 @@ bindings@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" +bip39@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.2.0.tgz#40e73f70674c267f148cdbf8374f2a50be166b0d" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.0" + randombytes "^2.0.1" + unorm "^1.3.3" + bip66@^1.1.3: version "1.1.5" resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" @@ -524,6 +545,23 @@ browserify-zlib@^0.1.4: dependencies: pako "~0.2.0" +bs58@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d" + +bs58@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e" + dependencies: + base-x "^1.1.0" + +bs58check@^1.0.8: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-1.3.4.tgz#c52540073749117714fa042c3047eb8f9151cbf8" + dependencies: + bs58 "^3.1.0" + create-hash "^1.1.0" + buffer-shims@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" @@ -563,7 +601,7 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase@^1.0.2: +camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -657,7 +695,7 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.2.0: +cliui@^3.0.3, cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: @@ -677,6 +715,13 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +coinstring@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/coinstring/-/coinstring-2.3.0.tgz#cdb63363a961502404a25afb82c2e26d5ff627a4" + dependencies: + bs58 "^2.0.1" + create-hash "^1.1.1" + colors@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" @@ -1057,6 +1102,10 @@ eth-sig-util@^1.2.1: dependencies: ethereumjs-util "^5.1.1" +ethereum-common@0.0.16: + version "0.0.16" + resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.16.tgz#9a1e169ead34ab75e089f50ca512bfd0fbd12655" + ethereum-common@0.0.18, ethereum-common@^0.0.18: version "0.0.18" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" @@ -1068,7 +1117,7 @@ ethereumjs-abi@^0.6.4: bn.js "^4.10.0" ethereumjs-util "^4.3.0" -ethereumjs-account@^2.0.3: +ethereumjs-account@^2.0.3, ethereumjs-account@~2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz#f8c30231bcb707f4514d8a052c1f9da103624d47" dependencies: @@ -1085,18 +1134,47 @@ ethereumjs-block@^1.2.2: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" -ethereumjs-testrpc@^3.0.5: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.0.tgz#a961ea4c43f3e05d5a7cddd83ee24136e1af09b9" +ethereumjs-block@~1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz#2ec7534a59021b8ec9b83c30e49690c6ebaedda1" + dependencies: + async "^1.5.2" + ethereum-common "0.0.16" + ethereumjs-tx "^1.0.0" + ethereumjs-util "^4.0.1" + merkle-patricia-tree "^2.1.2" -ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2: +ethereumjs-testrpc@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.0.5.tgz#0d5c5174d0f92278c7cc8785b85a5aafedd7513a" + dependencies: + async "~1.5.0" + bignumber.js "~2.1.4" + bip39 "~2.2.0" + ethereumjs-account "~2.0.4" + ethereumjs-block "~1.2.2" + ethereumjs-tx "^1.3.0" + ethereumjs-util "~4.5.0" + ethereumjs-vm "~2.0.1" + ethereumjs-wallet "~0.6.0" + fake-merkle-patricia-tree "~1.0.1" + heap "~0.2.6" + merkle-patricia-tree "~2.1.2" + seedrandom "~2.4.2" + shelljs "~0.6.0" + solc "0.4.6" + web3 "~0.16.0" + web3-provider-engine "~8.1.0" + yargs "~3.29.0" + +ethereumjs-tx@^1.0.0, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.1.tgz#d6909abcfb37da6404fc18124d351eda20047dac" dependencies: ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0: +ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0, ethereumjs-util@^4.4.0, ethereumjs-util@~4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" dependencies: @@ -1106,7 +1184,7 @@ ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0: rlp "^2.0.0" secp256k1 "^3.0.1" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1: +ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.1.1.tgz#122fb38dea747dc62b3aebfc365d1bd48be4b73e" dependencies: @@ -1117,7 +1195,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.1.1: rlp "^2.0.0" secp256k1 "^3.0.1" -ethereumjs-vm@^2.0.2: +ethereumjs-vm@^2.0.2, ethereumjs-vm@~2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.0.2.tgz#84e2372a5715a80a62f7f2a312f8c64537e8a842" dependencies: @@ -1131,6 +1209,18 @@ ethereumjs-vm@^2.0.2: functional-red-black-tree "^1.0.1" merkle-patricia-tree "^2.1.2" +ethereumjs-wallet@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb" + dependencies: + aes-js "^0.2.3" + bs58check "^1.0.8" + ethereumjs-util "^4.4.0" + hdkey "^0.7.0" + scrypt.js "^0.2.0" + utf8 "^2.1.1" + uuid "^2.0.1" + ethjs-abi@0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.1.8.tgz#cd288583ed628cdfadaf8adefa3ba1dbcbca6c18" @@ -1198,7 +1288,7 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" -fake-merkle-patricia-tree@^1.0.1: +fake-merkle-patricia-tree@^1.0.1, fake-merkle-patricia-tree@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" dependencies: @@ -1508,6 +1598,17 @@ hawk@~3.1.3: hoek "2.x.x" sntp "1.x.x" +hdkey@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632" + dependencies: + coinstring "^2.0.0" + secp256k1 "^3.0.1" + +heap@~0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" + highlight.js@^9.0.0: version "9.11.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.11.0.tgz#47f98c7399918700db2caf230ded12cec41a84ae" @@ -1736,6 +1837,13 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" +isomorphic-fetch@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -2149,7 +2257,7 @@ merge-source-map@^1.0.2: dependencies: source-map "^0.5.3" -merkle-patricia-tree@^2.1.2: +merkle-patricia-tree@^2.1.2, merkle-patricia-tree@~2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz#724483d54b75631a48fedda55e114051706a7291" dependencies: @@ -2255,7 +2363,7 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -nan@^2.0.5, nan@^2.2.1, nan@^2.3.0: +nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -2267,7 +2375,7 @@ node-abi@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.2.tgz#00f3e0a58100eb480133b48c99a32cc1f9e6c93e" -node-fetch@~1.6.0: +node-fetch@^1.0.1, node-fetch@~1.6.0: version "1.6.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" dependencies: @@ -2575,7 +2683,7 @@ pause-stream@0.0.11: dependencies: through "~2.3" -pbkdf2@^3.0.3: +pbkdf2@^3.0.0, pbkdf2@^3.0.3: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" dependencies: @@ -2933,6 +3041,25 @@ samsam@1.x, samsam@^1.1.3: version "1.2.1" resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67" +scrypt.js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" + dependencies: + scrypt "^6.0.2" + scryptsy "^1.2.1" + +scrypt@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/scrypt/-/scrypt-6.0.3.tgz#04e014a5682b53fa50c2d5cce167d719c06d870d" + dependencies: + nan "^2.0.8" + +scryptsy@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" + dependencies: + pbkdf2 "^3.0.3" + secp256k1@^3.0.1: version "3.2.5" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.2.5.tgz#0dde5b27e5021665f6dffca7b2c3e010c6c13c93" @@ -2946,6 +3073,10 @@ secp256k1@^3.0.1: nan "^2.2.1" prebuild-install "^2.0.0" +seedrandom@~2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" + semaphore@>=1.0.1, semaphore@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.0.5.tgz#b492576e66af193db95d65e25ec53f5f19798d60" @@ -3013,6 +3144,10 @@ shelljs@^0.7.0, shelljs@^0.7.3: interpret "^1.0.0" rechoir "^0.6.2" +shelljs@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" + shx@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/shx/-/shx-0.2.2.tgz#0a304d020b0edf1306ad81570e80f0346df58a39" @@ -3064,6 +3199,15 @@ sntp@1.x.x: dependencies: hoek "2.x.x" +solc@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.6.tgz#afa929a1ceafc0252cfbb4217c8e2b1dab139db7" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + yargs "^4.7.1" + solc@^0.4.2: version "0.4.11" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.11.tgz#2522eb43e7c0419bac2060b96e20a2593bfb5e8b" @@ -3514,6 +3658,10 @@ universalify@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.0.tgz#9eb1c4651debcc670cc94f1a75762332bb967778" +unorm@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" + unzip-response@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" @@ -3597,12 +3745,40 @@ web3-provider-engine@^12.1.0: xhr "^2.2.0" xtend "^4.0.1" +web3-provider-engine@~8.1.0: + version "8.1.19" + resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-8.1.19.tgz#3ccae95adecef55632e2a73bf3bee64b7e62fcf7" + dependencies: + async "^2.1.2" + clone "^2.0.0" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.0.1" + ethereumjs-vm "^2.0.2" + isomorphic-fetch "^2.2.0" + request "^2.67.0" + semaphore "^1.0.3" + solc "^0.4.2" + tape "^4.4.0" + web3 "^0.16.0" + xhr "^2.2.0" + xtend "^4.0.1" + web3-typescript-typings@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/web3-typescript-typings/-/web3-typescript-typings-0.0.8.tgz#96997eeaf670fbaaf28d8814a1c27dce1a07df66" dependencies: bignumber.js "^4.0.2" +web3@^0.16.0, web3@~0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.16.0.tgz#a4554175cd462943035b1f1d39432f741c6b6019" + dependencies: + bignumber.js "git+https://github.com/debris/bignumber.js#master" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xmlhttprequest "*" + web3@^0.18.0: version "0.18.4" resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" @@ -3656,6 +3832,10 @@ webpack@^2.6.0: webpack-sources "^0.2.3" yargs "^6.0.0" +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -3676,6 +3856,10 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +window-size@^0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" @@ -3734,7 +3918,7 @@ xtend@~2.1.1: dependencies: object-keys "~0.4.0" -y18n@^3.2.1: +y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" @@ -3824,3 +4008,14 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" + +yargs@~3.29.0: + version "3.29.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c" + dependencies: + camelcase "^1.2.1" + cliui "^3.0.3" + decamelize "^1.0.0" + os-locale "^1.4.0" + window-size "^0.1.2" + y18n "^3.2.0" |