@0x/contracts-asset-proxy
: Rebase and update Eth2DaiBridge
to use IWallet
from exchange-libs
.
This commit is contained in:
parent
f993b6d1ed
commit
584f8b13fe
@ -20,9 +20,9 @@ pragma solidity ^0.5.9;
|
|||||||
pragma experimental ABIEncoderV2;
|
pragma experimental ABIEncoderV2;
|
||||||
|
|
||||||
import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol";
|
import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol";
|
||||||
|
import "@0x/contracts-exchange-libs/contracts/src/IWallet.sol";
|
||||||
import "../interfaces/IERC20Bridge.sol";
|
import "../interfaces/IERC20Bridge.sol";
|
||||||
import "../interfaces/IEth2Dai.sol";
|
import "../interfaces/IEth2Dai.sol";
|
||||||
import "../interfaces/IWallet.sol";
|
|
||||||
|
|
||||||
|
|
||||||
// solhint-disable space-after-comma
|
// solhint-disable space-after-comma
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
"compile:truffle": "truffle compile"
|
"compile:truffle": "truffle compile"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"abis": "./generated-artifacts/@(ERC1155Proxy|ERC20BridgeProxy|ERC20Proxy|ERC721Proxy|Eth2DaiBridge|IAssetData|IAssetProxy|IAssetProxyDispatcher|IAuthorizable|IERC20Bridge|IEth2Dai|IWallet|MixinAssetProxyDispatcher|MixinAuthorizable|MultiAssetProxy|Ownable|StaticCallProxy|TestERC20Bridge|TestEth2DaiBridge|TestStaticCallTarget).json",
|
"abis": "./generated-artifacts/@(ERC1155Proxy|ERC20BridgeProxy|ERC20Proxy|ERC721Proxy|Eth2DaiBridge|IAssetData|IAssetProxy|IAssetProxyDispatcher|IAuthorizable|IERC20Bridge|IEth2Dai|IUniswapExchange|IUniswapExchangeFactory|MixinAssetProxyDispatcher|MixinAuthorizable|MultiAssetProxy|Ownable|StaticCallProxy|TestERC20Bridge|TestEth2DaiBridge|TestStaticCallTarget|TestUniswapBridge|UniswapBridge).json",
|
||||||
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
|
"abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually."
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -16,7 +16,8 @@ import * as IAssetProxyDispatcher from '../generated-artifacts/IAssetProxyDispat
|
|||||||
import * as IAuthorizable from '../generated-artifacts/IAuthorizable.json';
|
import * as IAuthorizable from '../generated-artifacts/IAuthorizable.json';
|
||||||
import * as IERC20Bridge from '../generated-artifacts/IERC20Bridge.json';
|
import * as IERC20Bridge from '../generated-artifacts/IERC20Bridge.json';
|
||||||
import * as IEth2Dai from '../generated-artifacts/IEth2Dai.json';
|
import * as IEth2Dai from '../generated-artifacts/IEth2Dai.json';
|
||||||
import * as IWallet from '../generated-artifacts/IWallet.json';
|
import * as IUniswapExchange from '../generated-artifacts/IUniswapExchange.json';
|
||||||
|
import * as IUniswapExchangeFactory from '../generated-artifacts/IUniswapExchangeFactory.json';
|
||||||
import * as MixinAssetProxyDispatcher from '../generated-artifacts/MixinAssetProxyDispatcher.json';
|
import * as MixinAssetProxyDispatcher from '../generated-artifacts/MixinAssetProxyDispatcher.json';
|
||||||
import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json';
|
import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json';
|
||||||
import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json';
|
import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json';
|
||||||
@ -25,6 +26,8 @@ import * as StaticCallProxy from '../generated-artifacts/StaticCallProxy.json';
|
|||||||
import * as TestERC20Bridge from '../generated-artifacts/TestERC20Bridge.json';
|
import * as TestERC20Bridge from '../generated-artifacts/TestERC20Bridge.json';
|
||||||
import * as TestEth2DaiBridge from '../generated-artifacts/TestEth2DaiBridge.json';
|
import * as TestEth2DaiBridge from '../generated-artifacts/TestEth2DaiBridge.json';
|
||||||
import * as TestStaticCallTarget from '../generated-artifacts/TestStaticCallTarget.json';
|
import * as TestStaticCallTarget from '../generated-artifacts/TestStaticCallTarget.json';
|
||||||
|
import * as TestUniswapBridge from '../generated-artifacts/TestUniswapBridge.json';
|
||||||
|
import * as UniswapBridge from '../generated-artifacts/UniswapBridge.json';
|
||||||
export const artifacts = {
|
export const artifacts = {
|
||||||
MixinAssetProxyDispatcher: MixinAssetProxyDispatcher as ContractArtifact,
|
MixinAssetProxyDispatcher: MixinAssetProxyDispatcher as ContractArtifact,
|
||||||
MixinAuthorizable: MixinAuthorizable as ContractArtifact,
|
MixinAuthorizable: MixinAuthorizable as ContractArtifact,
|
||||||
@ -36,14 +39,17 @@ export const artifacts = {
|
|||||||
MultiAssetProxy: MultiAssetProxy as ContractArtifact,
|
MultiAssetProxy: MultiAssetProxy as ContractArtifact,
|
||||||
StaticCallProxy: StaticCallProxy as ContractArtifact,
|
StaticCallProxy: StaticCallProxy as ContractArtifact,
|
||||||
Eth2DaiBridge: Eth2DaiBridge as ContractArtifact,
|
Eth2DaiBridge: Eth2DaiBridge as ContractArtifact,
|
||||||
|
UniswapBridge: UniswapBridge as ContractArtifact,
|
||||||
IAssetData: IAssetData as ContractArtifact,
|
IAssetData: IAssetData as ContractArtifact,
|
||||||
IAssetProxy: IAssetProxy as ContractArtifact,
|
IAssetProxy: IAssetProxy as ContractArtifact,
|
||||||
IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact,
|
IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact,
|
||||||
IAuthorizable: IAuthorizable as ContractArtifact,
|
IAuthorizable: IAuthorizable as ContractArtifact,
|
||||||
IERC20Bridge: IERC20Bridge as ContractArtifact,
|
IERC20Bridge: IERC20Bridge as ContractArtifact,
|
||||||
IEth2Dai: IEth2Dai as ContractArtifact,
|
IEth2Dai: IEth2Dai as ContractArtifact,
|
||||||
IWallet: IWallet as ContractArtifact,
|
IUniswapExchange: IUniswapExchange as ContractArtifact,
|
||||||
|
IUniswapExchangeFactory: IUniswapExchangeFactory as ContractArtifact,
|
||||||
TestERC20Bridge: TestERC20Bridge as ContractArtifact,
|
TestERC20Bridge: TestERC20Bridge as ContractArtifact,
|
||||||
TestEth2DaiBridge: TestEth2DaiBridge as ContractArtifact,
|
TestEth2DaiBridge: TestEth2DaiBridge as ContractArtifact,
|
||||||
TestStaticCallTarget: TestStaticCallTarget as ContractArtifact,
|
TestStaticCallTarget: TestStaticCallTarget as ContractArtifact,
|
||||||
|
TestUniswapBridge: TestUniswapBridge as ContractArtifact,
|
||||||
};
|
};
|
||||||
|
@ -14,7 +14,8 @@ export * from '../generated-wrappers/i_asset_proxy_dispatcher';
|
|||||||
export * from '../generated-wrappers/i_authorizable';
|
export * from '../generated-wrappers/i_authorizable';
|
||||||
export * from '../generated-wrappers/i_erc20_bridge';
|
export * from '../generated-wrappers/i_erc20_bridge';
|
||||||
export * from '../generated-wrappers/i_eth2_dai';
|
export * from '../generated-wrappers/i_eth2_dai';
|
||||||
export * from '../generated-wrappers/i_wallet';
|
export * from '../generated-wrappers/i_uniswap_exchange';
|
||||||
|
export * from '../generated-wrappers/i_uniswap_exchange_factory';
|
||||||
export * from '../generated-wrappers/mixin_asset_proxy_dispatcher';
|
export * from '../generated-wrappers/mixin_asset_proxy_dispatcher';
|
||||||
export * from '../generated-wrappers/mixin_authorizable';
|
export * from '../generated-wrappers/mixin_authorizable';
|
||||||
export * from '../generated-wrappers/multi_asset_proxy';
|
export * from '../generated-wrappers/multi_asset_proxy';
|
||||||
@ -23,3 +24,5 @@ export * from '../generated-wrappers/static_call_proxy';
|
|||||||
export * from '../generated-wrappers/test_erc20_bridge';
|
export * from '../generated-wrappers/test_erc20_bridge';
|
||||||
export * from '../generated-wrappers/test_eth2_dai_bridge';
|
export * from '../generated-wrappers/test_eth2_dai_bridge';
|
||||||
export * from '../generated-wrappers/test_static_call_target';
|
export * from '../generated-wrappers/test_static_call_target';
|
||||||
|
export * from '../generated-wrappers/test_uniswap_bridge';
|
||||||
|
export * from '../generated-wrappers/uniswap_bridge';
|
||||||
|
@ -47,10 +47,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
describe('isValidSignature()', () => {
|
describe('isValidSignature()', () => {
|
||||||
it('returns success bytes', async () => {
|
it('returns success bytes', async () => {
|
||||||
const LEGACY_WALLET_MAGIC_VALUE = '0xb0671381';
|
const LEGACY_WALLET_MAGIC_VALUE = '0xb0671381';
|
||||||
const result = await testContract.isValidSignature.callAsync(
|
const result = await testContract.isValidSignature.callAsync(hexRandom(), hexRandom(_.random(0, 32)));
|
||||||
hexRandom(),
|
|
||||||
hexRandom(_.random(0, 32)),
|
|
||||||
);
|
|
||||||
expect(result).to.eq(LEGACY_WALLET_MAGIC_VALUE);
|
expect(result).to.eq(LEGACY_WALLET_MAGIC_VALUE);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -115,10 +112,9 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
_opts.fromTokenRevertReason,
|
_opts.fromTokenRevertReason,
|
||||||
);
|
);
|
||||||
// Set the token balance for the token we're converting from.
|
// Set the token balance for the token we're converting from.
|
||||||
await testContract.setTokenBalance.awaitTransactionSuccessAsync(
|
await testContract.setTokenBalance.awaitTransactionSuccessAsync(_opts.fromTokenAddress, {
|
||||||
_opts.fromTokenAddress,
|
value: new BigNumber(_opts.fromTokenBalance),
|
||||||
{ value: new BigNumber(_opts.fromTokenBalance) },
|
});
|
||||||
);
|
|
||||||
// Call withdrawTo().
|
// Call withdrawTo().
|
||||||
const [result, receipt] = await txHelper.getResultAndReceiptAsync(
|
const [result, receipt] = await txHelper.getResultAndReceiptAsync(
|
||||||
testContract.withdrawTo,
|
testContract.withdrawTo,
|
||||||
@ -136,7 +132,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
return {
|
return {
|
||||||
opts: _opts,
|
opts: _opts,
|
||||||
result,
|
result,
|
||||||
logs: receipt.logs as any as DecodedLogs,
|
logs: (receipt.logs as any) as DecodedLogs,
|
||||||
blockTime: await env.web3Wrapper.getBlockTimestampAsync(receipt.blockNumber),
|
blockTime: await env.web3Wrapper.getBlockTimestampAsync(receipt.blockNumber),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -161,10 +157,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
toTokenAddress: tokenAddress,
|
toTokenAddress: tokenAddress,
|
||||||
});
|
});
|
||||||
expect(result).to.eq(AssetProxyId.ERC20Bridge);
|
expect(result).to.eq(AssetProxyId.ERC20Bridge);
|
||||||
const transfers = filterLogsToArguments<TokenTransferArgs>(
|
const transfers = filterLogsToArguments<TokenTransferArgs>(logs, ContractEvents.TokenTransfer);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenTransfer,
|
|
||||||
);
|
|
||||||
expect(transfers.length).to.eq(1);
|
expect(transfers.length).to.eq(1);
|
||||||
expect(transfers[0].token).to.eq(tokenAddress);
|
expect(transfers[0].token).to.eq(tokenAddress);
|
||||||
expect(transfers[0].from).to.eq(testContract.address);
|
expect(transfers[0].from).to.eq(testContract.address);
|
||||||
@ -192,10 +185,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
|
|
||||||
it('sets allowance for "from" token', async () => {
|
it('sets allowance for "from" token', async () => {
|
||||||
const { opts, logs } = await withdrawToAsync();
|
const { opts, logs } = await withdrawToAsync();
|
||||||
const approvals = filterLogsToArguments<TokenApproveArgs>(
|
const approvals = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
expect(approvals.length).to.eq(1);
|
expect(approvals.length).to.eq(1);
|
||||||
expect(approvals[0].spender).to.eq(exchangeAddress);
|
expect(approvals[0].spender).to.eq(exchangeAddress);
|
||||||
@ -205,10 +195,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
it('sets allowance for "from" token on subsequent calls', async () => {
|
it('sets allowance for "from" token on subsequent calls', async () => {
|
||||||
const { opts } = await withdrawToAsync();
|
const { opts } = await withdrawToAsync();
|
||||||
const { logs } = await withdrawToAsync(opts);
|
const { logs } = await withdrawToAsync(opts);
|
||||||
const approvals = filterLogsToArguments<TokenApproveArgs>(
|
const approvals = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
expect(approvals.length).to.eq(1);
|
expect(approvals.length).to.eq(1);
|
||||||
expect(approvals[0].spender).to.eq(exchangeAddress);
|
expect(approvals[0].spender).to.eq(exchangeAddress);
|
||||||
@ -241,10 +228,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
toTokenAddress: wethTokenAddress,
|
toTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
let calls: any = filterLogs<TokenToEthSwapInputArgs>(
|
let calls: any = filterLogs<TokenToEthSwapInputArgs>(logs, ContractEvents.TokenToEthSwapInput);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenToEthSwapInput,
|
|
||||||
);
|
|
||||||
expect(calls.length).to.eq(1);
|
expect(calls.length).to.eq(1);
|
||||||
expect(calls[0].args.exchange).to.eq(exchangeAddress);
|
expect(calls[0].args.exchange).to.eq(exchangeAddress);
|
||||||
expect(calls[0].args.tokensSold).to.bignumber.eq(opts.fromTokenBalance);
|
expect(calls[0].args.tokensSold).to.bignumber.eq(opts.fromTokenBalance);
|
||||||
@ -271,10 +255,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
const { opts, logs, blockTime } = await withdrawToAsync({
|
const { opts, logs, blockTime } = await withdrawToAsync({
|
||||||
toTokenAddress: wethTokenAddress,
|
toTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const calls = filterLogsToArguments<TokenToEthSwapInputArgs>(
|
const calls = filterLogsToArguments<TokenToEthSwapInputArgs>(logs, ContractEvents.TokenToEthSwapInput);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenToEthSwapInput,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
expect(calls.length).to.eq(1);
|
expect(calls.length).to.eq(1);
|
||||||
expect(calls[0].exchange).to.eq(exchangeAddress);
|
expect(calls[0].exchange).to.eq(exchangeAddress);
|
||||||
@ -287,10 +268,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
const { opts, logs } = await withdrawToAsync({
|
const { opts, logs } = await withdrawToAsync({
|
||||||
toTokenAddress: wethTokenAddress,
|
toTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const transfers = filterLogsToArguments<TokenApproveArgs>(
|
const transfers = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
expect(transfers.length).to.eq(1);
|
expect(transfers.length).to.eq(1);
|
||||||
expect(transfers[0].spender).to.eq(exchangeAddress);
|
expect(transfers[0].spender).to.eq(exchangeAddress);
|
||||||
@ -302,10 +280,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
toTokenAddress: wethTokenAddress,
|
toTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const { logs } = await withdrawToAsync(opts);
|
const { logs } = await withdrawToAsync(opts);
|
||||||
const approvals = filterLogsToArguments<TokenApproveArgs>(
|
const approvals = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.fromTokenAddress);
|
||||||
expect(approvals.length).to.eq(1);
|
expect(approvals.length).to.eq(1);
|
||||||
expect(approvals[0].spender).to.eq(exchangeAddress);
|
expect(approvals[0].spender).to.eq(exchangeAddress);
|
||||||
@ -348,10 +323,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
fromTokenAddress: wethTokenAddress,
|
fromTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
||||||
let calls: any = filterLogs<WethWithdrawArgs>(
|
let calls: any = filterLogs<WethWithdrawArgs>(logs, ContractEvents.WethWithdraw);
|
||||||
logs,
|
|
||||||
ContractEvents.WethWithdraw,
|
|
||||||
);
|
|
||||||
expect(calls.length).to.eq(1);
|
expect(calls.length).to.eq(1);
|
||||||
expect(calls[0].args.amount).to.bignumber.eq(opts.fromTokenBalance);
|
expect(calls[0].args.amount).to.bignumber.eq(opts.fromTokenBalance);
|
||||||
calls = filterLogs<EthToTokenTransferInputArgs>(
|
calls = filterLogs<EthToTokenTransferInputArgs>(
|
||||||
@ -369,10 +341,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
const { opts, logs } = await withdrawToAsync({
|
const { opts, logs } = await withdrawToAsync({
|
||||||
fromTokenAddress: wethTokenAddress,
|
fromTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const approvals = filterLogsToArguments<TokenApproveArgs>(
|
const approvals = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
||||||
expect(approvals.length).to.eq(1);
|
expect(approvals.length).to.eq(1);
|
||||||
expect(approvals[0].spender).to.eq(exchangeAddress);
|
expect(approvals[0].spender).to.eq(exchangeAddress);
|
||||||
@ -384,10 +353,7 @@ blockchainTests.resets('UniswapBridge unit tests', env => {
|
|||||||
fromTokenAddress: wethTokenAddress,
|
fromTokenAddress: wethTokenAddress,
|
||||||
});
|
});
|
||||||
const { logs } = await withdrawToAsync(opts);
|
const { logs } = await withdrawToAsync(opts);
|
||||||
const approvals = filterLogsToArguments<TokenApproveArgs>(
|
const approvals = filterLogsToArguments<TokenApproveArgs>(logs, ContractEvents.TokenApprove);
|
||||||
logs,
|
|
||||||
ContractEvents.TokenApprove,
|
|
||||||
);
|
|
||||||
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
const exchangeAddress = await getExchangeForTokenAsync(opts.toTokenAddress);
|
||||||
expect(approvals.length).to.eq(1);
|
expect(approvals.length).to.eq(1);
|
||||||
expect(approvals[0].spender).to.eq(exchangeAddress);
|
expect(approvals[0].spender).to.eq(exchangeAddress);
|
||||||
|
@ -14,7 +14,8 @@
|
|||||||
"generated-artifacts/IAuthorizable.json",
|
"generated-artifacts/IAuthorizable.json",
|
||||||
"generated-artifacts/IERC20Bridge.json",
|
"generated-artifacts/IERC20Bridge.json",
|
||||||
"generated-artifacts/IEth2Dai.json",
|
"generated-artifacts/IEth2Dai.json",
|
||||||
"generated-artifacts/IWallet.json",
|
"generated-artifacts/IUniswapExchange.json",
|
||||||
|
"generated-artifacts/IUniswapExchangeFactory.json",
|
||||||
"generated-artifacts/MixinAssetProxyDispatcher.json",
|
"generated-artifacts/MixinAssetProxyDispatcher.json",
|
||||||
"generated-artifacts/MixinAuthorizable.json",
|
"generated-artifacts/MixinAuthorizable.json",
|
||||||
"generated-artifacts/MultiAssetProxy.json",
|
"generated-artifacts/MultiAssetProxy.json",
|
||||||
@ -22,7 +23,9 @@
|
|||||||
"generated-artifacts/StaticCallProxy.json",
|
"generated-artifacts/StaticCallProxy.json",
|
||||||
"generated-artifacts/TestERC20Bridge.json",
|
"generated-artifacts/TestERC20Bridge.json",
|
||||||
"generated-artifacts/TestEth2DaiBridge.json",
|
"generated-artifacts/TestEth2DaiBridge.json",
|
||||||
"generated-artifacts/TestStaticCallTarget.json"
|
"generated-artifacts/TestStaticCallTarget.json",
|
||||||
|
"generated-artifacts/TestUniswapBridge.json",
|
||||||
|
"generated-artifacts/UniswapBridge.json"
|
||||||
],
|
],
|
||||||
"exclude": ["./deploy/solc/solc_bin"]
|
"exclude": ["./deploy/solc/solc_bin"]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user