aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json3
-rw-r--r--src/contract_wrappers/token_wrapper.ts17
-rw-r--r--src/types.ts1
-rw-r--r--test/token_wrapper_test.ts65
-rw-r--r--yarn.lock231
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);
});
diff --git a/yarn.lock b/yarn.lock
index 309b75c5b..144095202 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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"