Merge pull request #1054 from 0xProject/addValidationMethods
Temporarily Add Back Validation Methods
This commit is contained in:
commit
6a619a4084
@ -46,6 +46,7 @@ export {
|
|||||||
BalanceAndAllowance,
|
BalanceAndAllowance,
|
||||||
OrderAndTraderInfo,
|
OrderAndTraderInfo,
|
||||||
TraderInfo,
|
TraderInfo,
|
||||||
|
ValidateOrderFillableOpts,
|
||||||
} from '@0xproject/contract-wrappers';
|
} from '@0xproject/contract-wrappers';
|
||||||
|
|
||||||
export { OrderWatcher, OnOrderStateChangeCallback, OrderWatcherConfig } from '@0xproject/order-watcher';
|
export { OrderWatcher, OnOrderStateChangeCallback, OrderWatcherConfig } from '@0xproject/order-watcher';
|
||||||
|
@ -4,6 +4,16 @@
|
|||||||
"changes": [
|
"changes": [
|
||||||
{
|
{
|
||||||
"note": "Add `OrderValidatorWrapper`"
|
"note": "Add `OrderValidatorWrapper`"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note":
|
||||||
|
"Export `AssetBalanceAndProxyAllowanceFetcher` and `OrderFilledCancelledFetcher` implementations",
|
||||||
|
"pr": 1054
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note":
|
||||||
|
"Add `validateOrderFillableOrThrowAsync` and `validateFillOrderThrowIfInvalidAsync` to ExchangeWrapper",
|
||||||
|
"pr": 1054
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -111,6 +111,8 @@ export class ContractWrappers {
|
|||||||
this.exchange = new ExchangeWrapper(
|
this.exchange = new ExchangeWrapper(
|
||||||
this._web3Wrapper,
|
this._web3Wrapper,
|
||||||
config.networkId,
|
config.networkId,
|
||||||
|
this.erc20Token,
|
||||||
|
this.erc721Token,
|
||||||
config.exchangeContractAddress,
|
config.exchangeContractAddress,
|
||||||
config.zrxContractAddress,
|
config.zrxContractAddress,
|
||||||
blockPollingIntervalMs,
|
blockPollingIntervalMs,
|
||||||
|
@ -1,12 +1,19 @@
|
|||||||
import { schemas } from '@0xproject/json-schemas';
|
import { schemas } from '@0xproject/json-schemas';
|
||||||
import { assetDataUtils } from '@0xproject/order-utils';
|
import {
|
||||||
|
assetDataUtils,
|
||||||
|
BalanceAndProxyAllowanceLazyStore,
|
||||||
|
ExchangeTransferSimulator,
|
||||||
|
OrderValidationUtils,
|
||||||
|
} from '@0xproject/order-utils';
|
||||||
import { AssetProxyId, Order, SignedOrder } from '@0xproject/types';
|
import { AssetProxyId, Order, SignedOrder } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
import { Web3Wrapper } from '@0xproject/web3-wrapper';
|
||||||
import { ContractAbi, LogWithDecodedArgs } from 'ethereum-types';
|
import { BlockParamLiteral, ContractAbi, LogWithDecodedArgs } from 'ethereum-types';
|
||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { artifacts } from '../artifacts';
|
import { artifacts } from '../artifacts';
|
||||||
|
import { AssetBalanceAndProxyAllowanceFetcher } from '../fetchers/asset_balance_and_proxy_allowance_fetcher';
|
||||||
|
import { OrderFilledCancelledFetcher } from '../fetchers/order_filled_cancelled_fetcher';
|
||||||
import { methodOptsSchema } from '../schemas/method_opts_schema';
|
import { methodOptsSchema } from '../schemas/method_opts_schema';
|
||||||
import { orderTxOptsSchema } from '../schemas/order_tx_opts_schema';
|
import { orderTxOptsSchema } from '../schemas/order_tx_opts_schema';
|
||||||
import { txOptsSchema } from '../schemas/tx_opts_schema';
|
import { txOptsSchema } from '../schemas/tx_opts_schema';
|
||||||
@ -17,13 +24,17 @@ import {
|
|||||||
IndexedFilterValues,
|
IndexedFilterValues,
|
||||||
MethodOpts,
|
MethodOpts,
|
||||||
OrderInfo,
|
OrderInfo,
|
||||||
|
OrderStatus,
|
||||||
OrderTransactionOpts,
|
OrderTransactionOpts,
|
||||||
|
ValidateOrderFillableOpts,
|
||||||
} from '../types';
|
} from '../types';
|
||||||
import { assert } from '../utils/assert';
|
import { assert } from '../utils/assert';
|
||||||
import { decorators } from '../utils/decorators';
|
import { decorators } from '../utils/decorators';
|
||||||
import { TransactionEncoder } from '../utils/transaction_encoder';
|
import { TransactionEncoder } from '../utils/transaction_encoder';
|
||||||
|
|
||||||
import { ContractWrapper } from './contract_wrapper';
|
import { ContractWrapper } from './contract_wrapper';
|
||||||
|
import { ERC20TokenWrapper } from './erc20_token_wrapper';
|
||||||
|
import { ERC721TokenWrapper } from './erc721_token_wrapper';
|
||||||
import { ExchangeContract, ExchangeEventArgs, ExchangeEvents } from './generated/exchange';
|
import { ExchangeContract, ExchangeEventArgs, ExchangeEvents } from './generated/exchange';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -33,6 +44,8 @@ import { ExchangeContract, ExchangeEventArgs, ExchangeEvents } from './generated
|
|||||||
export class ExchangeWrapper extends ContractWrapper {
|
export class ExchangeWrapper extends ContractWrapper {
|
||||||
public abi: ContractAbi = artifacts.Exchange.compilerOutput.abi;
|
public abi: ContractAbi = artifacts.Exchange.compilerOutput.abi;
|
||||||
private _exchangeContractIfExists?: ExchangeContract;
|
private _exchangeContractIfExists?: ExchangeContract;
|
||||||
|
private _erc721TokenWrapper: ERC721TokenWrapper;
|
||||||
|
private _erc20TokenWrapper: ERC20TokenWrapper;
|
||||||
private _contractAddressIfExists?: string;
|
private _contractAddressIfExists?: string;
|
||||||
private _zrxContractAddressIfExists?: string;
|
private _zrxContractAddressIfExists?: string;
|
||||||
/**
|
/**
|
||||||
@ -48,11 +61,15 @@ export class ExchangeWrapper extends ContractWrapper {
|
|||||||
constructor(
|
constructor(
|
||||||
web3Wrapper: Web3Wrapper,
|
web3Wrapper: Web3Wrapper,
|
||||||
networkId: number,
|
networkId: number,
|
||||||
|
erc20TokenWrapper: ERC20TokenWrapper,
|
||||||
|
erc721TokenWrapper: ERC721TokenWrapper,
|
||||||
contractAddressIfExists?: string,
|
contractAddressIfExists?: string,
|
||||||
zrxContractAddressIfExists?: string,
|
zrxContractAddressIfExists?: string,
|
||||||
blockPollingIntervalMs?: number,
|
blockPollingIntervalMs?: number,
|
||||||
) {
|
) {
|
||||||
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
super(web3Wrapper, networkId, blockPollingIntervalMs);
|
||||||
|
this._erc20TokenWrapper = erc20TokenWrapper;
|
||||||
|
this._erc721TokenWrapper = erc721TokenWrapper;
|
||||||
this._contractAddressIfExists = contractAddressIfExists;
|
this._contractAddressIfExists = contractAddressIfExists;
|
||||||
this._zrxContractAddressIfExists = zrxContractAddressIfExists;
|
this._zrxContractAddressIfExists = zrxContractAddressIfExists;
|
||||||
}
|
}
|
||||||
@ -1084,6 +1101,64 @@ export class ExchangeWrapper extends ContractWrapper {
|
|||||||
);
|
);
|
||||||
return logs;
|
return logs;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Validate if the supplied order is fillable, and throw if it isn't
|
||||||
|
* @param signedOrder SignedOrder of interest
|
||||||
|
* @param opts ValidateOrderFillableOpts options (e.g expectedFillTakerTokenAmount.
|
||||||
|
* If it isn't supplied, we check if the order is fillable for a non-zero amount)
|
||||||
|
*/
|
||||||
|
public async validateOrderFillableOrThrowAsync(
|
||||||
|
signedOrder: SignedOrder,
|
||||||
|
opts: ValidateOrderFillableOpts = {},
|
||||||
|
): Promise<void> {
|
||||||
|
const balanceAllowanceFetcher = new AssetBalanceAndProxyAllowanceFetcher(
|
||||||
|
this._erc20TokenWrapper,
|
||||||
|
this._erc721TokenWrapper,
|
||||||
|
BlockParamLiteral.Latest,
|
||||||
|
);
|
||||||
|
const balanceAllowanceStore = new BalanceAndProxyAllowanceLazyStore(balanceAllowanceFetcher);
|
||||||
|
const exchangeTradeSimulator = new ExchangeTransferSimulator(balanceAllowanceStore);
|
||||||
|
|
||||||
|
const expectedFillTakerTokenAmountIfExists = opts.expectedFillTakerTokenAmount;
|
||||||
|
const filledCancelledFetcher = new OrderFilledCancelledFetcher(this, BlockParamLiteral.Latest);
|
||||||
|
const orderValidationUtils = new OrderValidationUtils(filledCancelledFetcher);
|
||||||
|
await orderValidationUtils.validateOrderFillableOrThrowAsync(
|
||||||
|
exchangeTradeSimulator,
|
||||||
|
signedOrder,
|
||||||
|
this.getZRXAssetData(),
|
||||||
|
expectedFillTakerTokenAmountIfExists,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Validate a call to FillOrder and throw if it wouldn't succeed
|
||||||
|
* @param signedOrder SignedOrder of interest
|
||||||
|
* @param fillTakerAssetAmount Amount we'd like to fill the order for
|
||||||
|
* @param takerAddress The taker of the order
|
||||||
|
*/
|
||||||
|
public async validateFillOrderThrowIfInvalidAsync(
|
||||||
|
signedOrder: SignedOrder,
|
||||||
|
fillTakerAssetAmount: BigNumber,
|
||||||
|
takerAddress: string,
|
||||||
|
): Promise<void> {
|
||||||
|
const balanceAllowanceFetcher = new AssetBalanceAndProxyAllowanceFetcher(
|
||||||
|
this._erc20TokenWrapper,
|
||||||
|
this._erc721TokenWrapper,
|
||||||
|
BlockParamLiteral.Latest,
|
||||||
|
);
|
||||||
|
const balanceAllowanceStore = new BalanceAndProxyAllowanceLazyStore(balanceAllowanceFetcher);
|
||||||
|
const exchangeTradeSimulator = new ExchangeTransferSimulator(balanceAllowanceStore);
|
||||||
|
|
||||||
|
const filledCancelledFetcher = new OrderFilledCancelledFetcher(this, BlockParamLiteral.Latest);
|
||||||
|
const orderValidationUtils = new OrderValidationUtils(filledCancelledFetcher);
|
||||||
|
await orderValidationUtils.validateFillOrderThrowIfInvalidAsync(
|
||||||
|
exchangeTradeSimulator,
|
||||||
|
this._web3Wrapper.getProvider(),
|
||||||
|
signedOrder,
|
||||||
|
fillTakerAssetAmount,
|
||||||
|
takerAddress,
|
||||||
|
this.getZRXAssetData(),
|
||||||
|
);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Retrieves the Ethereum address of the Exchange contract deployed on the network
|
* Retrieves the Ethereum address of the Exchange contract deployed on the network
|
||||||
* that the user-passed web3 provider is connected to.
|
* that the user-passed web3 provider is connected to.
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
// tslint:disable:no-unnecessary-type-assertion
|
// tslint:disable:no-unnecessary-type-assertion
|
||||||
import { BlockParamLiteral, ERC20TokenWrapper, ERC721TokenWrapper } from '@0xproject/contract-wrappers';
|
|
||||||
import { AbstractBalanceAndProxyAllowanceFetcher, assetDataUtils } from '@0xproject/order-utils';
|
import { AbstractBalanceAndProxyAllowanceFetcher, assetDataUtils } from '@0xproject/order-utils';
|
||||||
import { AssetProxyId, ERC20AssetData, ERC721AssetData } from '@0xproject/types';
|
import { AssetProxyId, ERC20AssetData, ERC721AssetData } from '@0xproject/types';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
import { BlockParamLiteral } from 'ethereum-types';
|
||||||
|
|
||||||
|
import { ERC20TokenWrapper } from '../contract_wrappers/erc20_token_wrapper';
|
||||||
|
import { ERC721TokenWrapper } from '../contract_wrappers/erc721_token_wrapper';
|
||||||
|
|
||||||
export class AssetBalanceAndProxyAllowanceFetcher implements AbstractBalanceAndProxyAllowanceFetcher {
|
export class AssetBalanceAndProxyAllowanceFetcher implements AbstractBalanceAndProxyAllowanceFetcher {
|
||||||
private readonly _erc20Token: ERC20TokenWrapper;
|
private readonly _erc20Token: ERC20TokenWrapper;
|
@ -1,7 +1,10 @@
|
|||||||
// tslint:disable:no-unnecessary-type-assertion
|
// tslint:disable:no-unnecessary-type-assertion
|
||||||
import { BlockParamLiteral, ExchangeWrapper } from '@0xproject/contract-wrappers';
|
|
||||||
import { AbstractOrderFilledCancelledFetcher } from '@0xproject/order-utils';
|
import { AbstractOrderFilledCancelledFetcher } from '@0xproject/order-utils';
|
||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
import { BlockParamLiteral } from 'ethereum-types';
|
||||||
|
|
||||||
|
import { ERC20TokenWrapper } from '../contract_wrappers/erc20_token_wrapper';
|
||||||
|
import { ExchangeWrapper } from '../contract_wrappers/exchange_wrapper';
|
||||||
|
|
||||||
export class OrderFilledCancelledFetcher implements AbstractOrderFilledCancelledFetcher {
|
export class OrderFilledCancelledFetcher implements AbstractOrderFilledCancelledFetcher {
|
||||||
private readonly _exchange: ExchangeWrapper;
|
private readonly _exchange: ExchangeWrapper;
|
@ -25,6 +25,7 @@ export {
|
|||||||
BalanceAndAllowance,
|
BalanceAndAllowance,
|
||||||
OrderAndTraderInfo,
|
OrderAndTraderInfo,
|
||||||
TraderInfo,
|
TraderInfo,
|
||||||
|
ValidateOrderFillableOpts,
|
||||||
} from './types';
|
} from './types';
|
||||||
|
|
||||||
export { Order, SignedOrder, AssetProxyId } from '@0xproject/types';
|
export { Order, SignedOrder, AssetProxyId } from '@0xproject/types';
|
||||||
@ -85,3 +86,8 @@ export {
|
|||||||
ExchangeEventArgs,
|
ExchangeEventArgs,
|
||||||
ExchangeEvents,
|
ExchangeEvents,
|
||||||
} from './contract_wrappers/generated/exchange';
|
} from './contract_wrappers/generated/exchange';
|
||||||
|
|
||||||
|
export { AbstractBalanceAndProxyAllowanceFetcher, AbstractOrderFilledCancelledFetcher } from '@0xproject/order-utils';
|
||||||
|
|
||||||
|
export { AssetBalanceAndProxyAllowanceFetcher } from './fetchers/asset_balance_and_proxy_allowance_fetcher';
|
||||||
|
export { OrderFilledCancelledFetcher } from './fetchers/order_filled_cancelled_fetcher';
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// tslint:disable:no-unnecessary-type-assertion
|
// tslint:disable:no-unnecessary-type-assertion
|
||||||
import {
|
import {
|
||||||
|
AssetBalanceAndProxyAllowanceFetcher,
|
||||||
ContractWrappers,
|
ContractWrappers,
|
||||||
ERC20TokenApprovalEventArgs,
|
ERC20TokenApprovalEventArgs,
|
||||||
ERC20TokenEventArgs,
|
ERC20TokenEventArgs,
|
||||||
@ -15,6 +16,7 @@ import {
|
|||||||
ExchangeEventArgs,
|
ExchangeEventArgs,
|
||||||
ExchangeEvents,
|
ExchangeEvents,
|
||||||
ExchangeFillEventArgs,
|
ExchangeFillEventArgs,
|
||||||
|
OrderFilledCancelledFetcher,
|
||||||
WETH9DepositEventArgs,
|
WETH9DepositEventArgs,
|
||||||
WETH9EventArgs,
|
WETH9EventArgs,
|
||||||
WETH9Events,
|
WETH9Events,
|
||||||
@ -34,8 +36,6 @@ import { BlockParamLiteral, LogEntryEvent, LogWithDecodedArgs, Provider } from '
|
|||||||
import * as _ from 'lodash';
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
import { artifacts } from '../artifacts';
|
import { artifacts } from '../artifacts';
|
||||||
import { AssetBalanceAndProxyAllowanceFetcher } from '../fetchers/asset_balance_and_proxy_allowance_fetcher';
|
|
||||||
import { OrderFilledCancelledFetcher } from '../fetchers/order_filled_cancelled_fetcher';
|
|
||||||
import { orderWatcherPartialConfigSchema } from '../schemas/order_watcher_partial_config_schema';
|
import { orderWatcherPartialConfigSchema } from '../schemas/order_watcher_partial_config_schema';
|
||||||
import { OnOrderStateChangeCallback, OrderWatcherConfig, OrderWatcherError } from '../types';
|
import { OnOrderStateChangeCallback, OrderWatcherConfig, OrderWatcherError } from '../types';
|
||||||
import { assert } from '../utils/assert';
|
import { assert } from '../utils/assert';
|
||||||
|
62
yarn.lock
62
yarn.lock
@ -1411,9 +1411,9 @@ aes-js@3.0.0:
|
|||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
|
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d"
|
||||||
|
|
||||||
aes-js@^3.1.1:
|
aes-js@^0.2.3:
|
||||||
version "3.1.1"
|
version "0.2.4"
|
||||||
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.1.1.tgz#89fd1f94ae51b4c72d62466adc1a7323ff52f072"
|
resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d"
|
||||||
|
|
||||||
ajv-keywords@^2.1.0:
|
ajv-keywords@^2.1.0:
|
||||||
version "2.1.1"
|
version "2.1.1"
|
||||||
@ -2479,6 +2479,10 @@ balanced-match@^1.0.0:
|
|||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
|
||||||
|
|
||||||
|
base-x@^1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac"
|
||||||
|
|
||||||
base-x@^3.0.2:
|
base-x@^3.0.2:
|
||||||
version "3.0.4"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.4.tgz#94c1788736da065edb1d68808869e357c977fa77"
|
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.4.tgz#94c1788736da065edb1d68808869e357c977fa77"
|
||||||
@ -2886,7 +2890,7 @@ browserslist@^2.1.2:
|
|||||||
caniuse-lite "^1.0.30000792"
|
caniuse-lite "^1.0.30000792"
|
||||||
electron-to-chromium "^1.3.30"
|
electron-to-chromium "^1.3.30"
|
||||||
|
|
||||||
bs58@=4.0.1, bs58@^4.0.0:
|
bs58@=4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
|
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2896,13 +2900,18 @@ bs58@^2.0.1:
|
|||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d"
|
resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d"
|
||||||
|
|
||||||
bs58check@^2.1.2:
|
bs58@^3.1.0:
|
||||||
version "2.1.2"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"
|
resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e"
|
||||||
dependencies:
|
dependencies:
|
||||||
bs58 "^4.0.0"
|
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"
|
create-hash "^1.1.0"
|
||||||
safe-buffer "^5.1.2"
|
|
||||||
|
|
||||||
btoa@1.1.2:
|
btoa@1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
@ -5288,7 +5297,7 @@ ethereumjs-util@5.1.5, ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumj
|
|||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
secp256k1 "^3.0.1"
|
secp256k1 "^3.0.1"
|
||||||
|
|
||||||
ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0:
|
ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0, ethereumjs-util@^4.4.0:
|
||||||
version "4.5.0"
|
version "4.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6"
|
resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -5342,18 +5351,17 @@ ethereumjs-vm@^2.0.2, ethereumjs-vm@^2.1.0, ethereumjs-vm@^2.3.4:
|
|||||||
rustbn.js "~0.1.1"
|
rustbn.js "~0.1.1"
|
||||||
safe-buffer "^5.1.1"
|
safe-buffer "^5.1.1"
|
||||||
|
|
||||||
ethereumjs-wallet@~0.6.0:
|
ethereumjs-wallet@0.6.0:
|
||||||
version "0.6.2"
|
version "0.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.2.tgz#67244b6af3e8113b53d709124b25477b64aeccda"
|
resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb"
|
||||||
dependencies:
|
dependencies:
|
||||||
aes-js "^3.1.1"
|
aes-js "^0.2.3"
|
||||||
bs58check "^2.1.2"
|
bs58check "^1.0.8"
|
||||||
ethereumjs-util "^5.2.0"
|
ethereumjs-util "^4.4.0"
|
||||||
hdkey "^1.0.0"
|
hdkey "^0.7.0"
|
||||||
safe-buffer "^5.1.2"
|
|
||||||
scrypt.js "^0.2.0"
|
scrypt.js "^0.2.0"
|
||||||
utf8 "^3.0.0"
|
utf8 "^2.1.1"
|
||||||
uuid "^3.3.2"
|
uuid "^2.0.1"
|
||||||
|
|
||||||
ethers@0xproject/ethers.js#eip-838-reasons, ethers@3.0.22:
|
ethers@0xproject/ethers.js#eip-838-reasons, ethers@3.0.22:
|
||||||
version "3.0.18"
|
version "3.0.18"
|
||||||
@ -6794,21 +6802,13 @@ hawk@~6.0.2:
|
|||||||
hoek "4.x.x"
|
hoek "4.x.x"
|
||||||
sntp "2.x.x"
|
sntp "2.x.x"
|
||||||
|
|
||||||
hdkey@^0.7.1:
|
hdkey@^0.7.0, hdkey@^0.7.1:
|
||||||
version "0.7.1"
|
version "0.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632"
|
resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632"
|
||||||
dependencies:
|
dependencies:
|
||||||
coinstring "^2.0.0"
|
coinstring "^2.0.0"
|
||||||
secp256k1 "^3.0.1"
|
secp256k1 "^3.0.1"
|
||||||
|
|
||||||
hdkey@^1.0.0:
|
|
||||||
version "1.1.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-1.1.0.tgz#e74e7b01d2c47f797fa65d1d839adb7a44639f29"
|
|
||||||
dependencies:
|
|
||||||
coinstring "^2.0.0"
|
|
||||||
safe-buffer "^5.1.1"
|
|
||||||
secp256k1 "^3.0.1"
|
|
||||||
|
|
||||||
he@1.1.1:
|
he@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
|
||||||
@ -14311,10 +14311,6 @@ utf8@^2.1.1:
|
|||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96"
|
resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96"
|
||||||
|
|
||||||
utf8@^3.0.0:
|
|
||||||
version "3.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1"
|
|
||||||
|
|
||||||
util-deprecate@~1.0.1:
|
util-deprecate@~1.0.1:
|
||||||
version "1.0.2"
|
version "1.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user