aboutsummaryrefslogtreecommitdiffstats
path: root/packages/contracts/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/contracts/test')
-rw-r--r--packages/contracts/test/asset_proxy_dispatcher/auth.ts (renamed from packages/contracts/test/token_transfer_proxy/auth.ts)46
-rw-r--r--packages/contracts/test/asset_proxy_dispatcher/dispatcher.ts28
-rw-r--r--packages/contracts/test/asset_proxy_dispatcher/proxies.ts167
-rw-r--r--packages/contracts/test/exchange/core.ts60
-rw-r--r--packages/contracts/test/exchange/helpers.ts1
-rw-r--r--packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts8
-rw-r--r--packages/contracts/test/token_transfer_proxy/transfer_from.ts103
7 files changed, 80 insertions, 333 deletions
diff --git a/packages/contracts/test/token_transfer_proxy/auth.ts b/packages/contracts/test/asset_proxy_dispatcher/auth.ts
index dc9eae4ff..ded5ff287 100644
--- a/packages/contracts/test/token_transfer_proxy/auth.ts
+++ b/packages/contracts/test/asset_proxy_dispatcher/auth.ts
@@ -3,7 +3,7 @@ import { Web3Wrapper } from '@0xproject/web3-wrapper';
import * as chai from 'chai';
import * as Web3 from 'web3';
-import { TokenTransferProxyContract } from '../../src/contract_wrappers/generated/token_transfer_proxy';
+import { AssetProxyDispatcherContract } from '../../src/contract_wrappers/generated/asset_proxy_dispatcher';
import { constants } from '../../src/utils/constants';
import { ContractName } from '../../src/utils/types';
import { chaiSetup } from '../utils/chai_setup';
@@ -14,19 +14,19 @@ chaiSetup.configure();
const expect = chai.expect;
const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper);
-describe('TokenTransferProxy', () => {
+describe('AssetProxyDispatcher - Auth', () => {
let owner: string;
let notOwner: string;
let address: string;
- let tokenTransferProxy: TokenTransferProxyContract;
+ let assetProxyDispatcher: AssetProxyDispatcherContract;
before(async () => {
const accounts = await web3Wrapper.getAvailableAddressesAsync();
owner = address = accounts[0];
notOwner = accounts[1];
- const tokenTransferProxyInstance = await deployer.deployAsync(ContractName.TokenTransferProxy);
- tokenTransferProxy = new TokenTransferProxyContract(
- tokenTransferProxyInstance.abi,
- tokenTransferProxyInstance.address,
+ const assetProxyDispatcherInstance = await deployer.deployAsync(ContractName.AssetProxyDispatcher);
+ assetProxyDispatcher = new AssetProxyDispatcherContract(
+ assetProxyDispatcherInstance.abi,
+ assetProxyDispatcherInstance.address,
provider,
);
});
@@ -39,44 +39,44 @@ describe('TokenTransferProxy', () => {
describe('addAuthorizedAddress', () => {
it('should throw if not called by owner', async () => {
return expect(
- tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(notOwner, { from: notOwner }),
+ assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(notOwner, { from: notOwner }),
).to.be.rejectedWith(constants.REVERT);
});
it('should allow owner to add an authorized address', async () => {
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
- const isAuthorized = await tokenTransferProxy.authorized.callAsync(address);
+ await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
+ const isAuthorized = await assetProxyDispatcher.authorized.callAsync(address);
expect(isAuthorized).to.be.true();
});
it('should throw if owner attempts to authorize a duplicate address', async () => {
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
+ await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
return expect(
- tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, { from: owner }),
+ assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, { from: owner }),
).to.be.rejectedWith(constants.REVERT);
});
});
describe('removeAuthorizedAddress', () => {
it('should throw if not called by owner', async () => {
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
+ await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
return expect(
- tokenTransferProxy.removeAuthorizedAddress.sendTransactionAsync(address, {
+ assetProxyDispatcher.removeAuthorizedAddress.sendTransactionAsync(address, {
from: notOwner,
}),
).to.be.rejectedWith(constants.REVERT);
});
it('should allow owner to remove an authorized address', async () => {
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
- await tokenTransferProxy.removeAuthorizedAddress.sendTransactionAsync(address, {
+ await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, { from: owner });
+ await assetProxyDispatcher.removeAuthorizedAddress.sendTransactionAsync(address, {
from: owner,
});
- const isAuthorized = await tokenTransferProxy.authorized.callAsync(address);
+ const isAuthorized = await assetProxyDispatcher.authorized.callAsync(address);
expect(isAuthorized).to.be.false();
});
it('should throw if owner attempts to remove an address that is not authorized', async () => {
return expect(
- tokenTransferProxy.removeAuthorizedAddress.sendTransactionAsync(address, {
+ assetProxyDispatcher.removeAuthorizedAddress.sendTransactionAsync(address, {
from: owner,
}),
).to.be.rejectedWith(constants.REVERT);
@@ -85,19 +85,19 @@ describe('TokenTransferProxy', () => {
describe('getAuthorizedAddresses', () => {
it('should return all authorized addresses', async () => {
- const initial = await tokenTransferProxy.getAuthorizedAddresses.callAsync();
+ const initial = await assetProxyDispatcher.getAuthorizedAddresses.callAsync();
expect(initial).to.have.length(0);
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(address, {
+ await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(address, {
from: owner,
});
- const afterAdd = await tokenTransferProxy.getAuthorizedAddresses.callAsync();
+ const afterAdd = await assetProxyDispatcher.getAuthorizedAddresses.callAsync();
expect(afterAdd).to.have.length(1);
expect(afterAdd).to.include(address);
- await tokenTransferProxy.removeAuthorizedAddress.sendTransactionAsync(address, {
+ await assetProxyDispatcher.removeAuthorizedAddress.sendTransactionAsync(address, {
from: owner,
});
- const afterRemove = await tokenTransferProxy.getAuthorizedAddresses.callAsync();
+ const afterRemove = await assetProxyDispatcher.getAuthorizedAddresses.callAsync();
expect(afterRemove).to.have.length(0);
});
});
diff --git a/packages/contracts/test/asset_proxy_dispatcher/dispatcher.ts b/packages/contracts/test/asset_proxy_dispatcher/dispatcher.ts
index 606965743..103bce10d 100644
--- a/packages/contracts/test/asset_proxy_dispatcher/dispatcher.ts
+++ b/packages/contracts/test/asset_proxy_dispatcher/dispatcher.ts
@@ -10,9 +10,7 @@ import { DummyERC721TokenContract } from '../../src/contract_wrappers/generated/
import { DummyTokenContract } from '../../src/contract_wrappers/generated/dummy_token';
import { ERC20ProxyContract } from '../../src/contract_wrappers/generated/e_r_c20_proxy';
import { ERC721ProxyContract } from '../../src/contract_wrappers/generated/e_r_c721_proxy';
-import { ERC20Proxy_v1Contract } from '../../src/contract_wrappers/generated/erc20proxy_v1';
-import { TokenTransferProxyContract } from '../../src/contract_wrappers/generated/token_transfer_proxy';
-import { encodeERC20ProxyData, encodeERC20V1ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
+import { encodeERC20ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
import { Balances } from '../../src/utils/balances';
import { constants } from '../../src/utils/constants';
import { AssetProxyId, ContractName } from '../../src/utils/types';
@@ -34,9 +32,7 @@ describe('AssetProxyDispatcher', () => {
let takerAddress: string;
let zrx: DummyTokenContract;
let dmyBalances: Balances;
- let tokenTransferProxy: TokenTransferProxyContract;
let assetProxyDispatcher: AssetProxyDispatcherContract;
- let erc20TransferProxyV1: ERC20Proxy_v1Contract;
let erc20TransferProxy: ERC20ProxyContract;
let erc721TransferProxy: ERC721ProxyContract;
const INITIAL_BALANCE = new BigNumber(10000);
@@ -59,28 +55,6 @@ describe('AssetProxyDispatcher', () => {
await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(exchangeAddress, {
from: owner,
});
- // Deploy TokenTransferProxy
- const tokenTransferProxyInstance = await deployer.deployAsync(ContractName.TokenTransferProxy);
- tokenTransferProxy = new TokenTransferProxyContract(
- tokenTransferProxyInstance.abi,
- tokenTransferProxyInstance.address,
- provider,
- );
- // Deploy ERC20 V1 Proxy
- const erc20TransferProxyV1Instance = await deployer.deployAsync(ContractName.ERC20V1Proxy, [
- tokenTransferProxy.address,
- ]);
- erc20TransferProxyV1 = new ERC20Proxy_v1Contract(
- erc20TransferProxyV1Instance.abi,
- erc20TransferProxyV1Instance.address,
- provider,
- );
- await erc20TransferProxyV1.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcher.address, {
- from: owner,
- });
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(erc20TransferProxyV1.address, {
- from: owner,
- });
// Deploy ERC20 Proxy
const erc20TransferProxyInstance = await deployer.deployAsync(ContractName.ERC20Proxy);
erc20TransferProxy = new ERC20ProxyContract(
diff --git a/packages/contracts/test/asset_proxy_dispatcher/proxies.ts b/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
index 6ffc5c998..b7adf5a7e 100644
--- a/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
+++ b/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
@@ -10,9 +10,7 @@ import { DummyERC721TokenContract } from '../../src/contract_wrappers/generated/
import { DummyTokenContract } from '../../src/contract_wrappers/generated/dummy_token';
import { ERC20ProxyContract } from '../../src/contract_wrappers/generated/e_r_c20_proxy';
import { ERC721ProxyContract } from '../../src/contract_wrappers/generated/e_r_c721_proxy';
-import { ERC20Proxy_v1Contract } from '../../src/contract_wrappers/generated/erc20proxy_v1';
-import { TokenTransferProxyContract } from '../../src/contract_wrappers/generated/token_transfer_proxy';
-import { encodeERC20ProxyData, encodeERC20V1ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
+import { encodeERC20ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
import { Balances } from '../../src/utils/balances';
import { constants } from '../../src/utils/constants';
import { AssetProxyId, ContractName } from '../../src/utils/types';
@@ -34,8 +32,6 @@ describe('Asset Transfer Proxies', () => {
let zrx: DummyTokenContract;
let erc721Token: DummyERC721TokenContract;
let dmyBalances: Balances;
- let tokenTransferProxy: TokenTransferProxyContract;
- let erc20TransferProxyV1: ERC20Proxy_v1Contract;
let erc20TransferProxy: ERC20ProxyContract;
let erc721TransferProxy: ERC721ProxyContract;
const makerTokenId = new BigNumber('0x1010101010101010101010101010101010101010101010101010101010101010');
@@ -50,28 +46,6 @@ describe('Asset Transfer Proxies', () => {
assetProxyDispatcherAddress = accounts[2];
makerAddress = accounts[3];
takerAddress = accounts[4];
- // Deploy TokenTransferProxy
- const tokenTransferProxyInstance = await deployer.deployAsync(ContractName.TokenTransferProxy);
- tokenTransferProxy = new TokenTransferProxyContract(
- tokenTransferProxyInstance.abi,
- tokenTransferProxyInstance.address,
- provider,
- );
- // Deploy ERC20 V1 Proxy
- const erc20TransferProxyV1Instance = await deployer.deployAsync(ContractName.ERC20V1Proxy, [
- tokenTransferProxy.address,
- ]);
- erc20TransferProxyV1 = new ERC20Proxy_v1Contract(
- erc20TransferProxyV1Instance.abi,
- erc20TransferProxyV1Instance.address,
- provider,
- );
- await erc20TransferProxyV1.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcherAddress, {
- from: owner,
- });
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(erc20TransferProxyV1.address, {
- from: owner,
- });
// Deploy ERC20 Proxy
const erc20TransferProxyInstance = await deployer.deployAsync(ContractName.ERC20Proxy);
erc20TransferProxy = new ERC20ProxyContract(
@@ -98,12 +72,6 @@ describe('Asset Transfer Proxies', () => {
await zrx.setBalance.sendTransactionAsync(makerAddress, INITIAL_BALANCE, { from: tokenOwner });
await zrx.setBalance.sendTransactionAsync(takerAddress, INITIAL_BALANCE, { from: tokenOwner });
dmyBalances = new Balances([zrx], [makerAddress, takerAddress]);
- await zrx.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_BALANCE, {
- from: takerAddress,
- });
- await zrx.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_BALANCE, {
- from: makerAddress,
- });
await zrx.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_BALANCE, {
from: takerAddress,
});
@@ -130,94 +98,6 @@ describe('Asset Transfer Proxies', () => {
afterEach(async () => {
await blockchainLifecycle.revertAsync();
});
- describe('Transfer Proxy - ERC20V1', () => {
- it('should successfully encode/decode metadata', async () => {
- const metadata = await erc20TransferProxyV1.encodeMetadata.callAsync(AssetProxyId.ERC20V1, zrx.address);
- const address = await erc20TransferProxyV1.decodeMetadata.callAsync(metadata);
- expect(address).to.be.equal(zrx.address);
- });
-
- it('should successfully decode metadata encoded by typescript helpers', async () => {
- const metadata = encodeERC20V1ProxyData(zrx.address);
- const address = await erc20TransferProxyV1.decodeMetadata.callAsync(metadata);
- expect(address).to.be.equal(zrx.address);
- });
-
- it('should successfully encode/decode metadata padded with zeros', async () => {
- const metadata = await erc20TransferProxyV1.encodeMetadata.callAsync(
- AssetProxyId.ERC20V1,
- testAddressPaddedWithZeros,
- );
- const address = await erc20TransferProxyV1.decodeMetadata.callAsync(metadata);
- expect(address).to.be.equal(testAddressPaddedWithZeros);
- });
-
- it('should successfully decode metadata padded with zeros and encoded by typescript helpers', async () => {
- const metadata = encodeERC20V1ProxyData(testAddressPaddedWithZeros);
- const address = await erc20TransferProxyV1.decodeMetadata.callAsync(metadata);
- expect(address).to.be.equal(testAddressPaddedWithZeros);
- });
-
- it('should successfully transfer tokens', async () => {
- // Construct metadata for ERC20V1 proxy
- const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
- // Perform a transfer from makerAddress to takerAddress
- const balances = await dmyBalances.getAsync();
- const amount = new BigNumber(10);
- await erc20TransferProxyV1.transferFrom.sendTransactionAsync(
- encodedProxyMetadata,
- makerAddress,
- takerAddress,
- amount,
- { from: assetProxyDispatcherAddress },
- );
- // Verify transfer was successful
- const newBalances = await dmyBalances.getAsync();
- expect(newBalances[makerAddress][zrx.address]).to.be.bignumber.equal(
- balances[makerAddress][zrx.address].minus(amount),
- );
- expect(newBalances[takerAddress][zrx.address]).to.be.bignumber.equal(
- balances[takerAddress][zrx.address].add(amount),
- );
- });
-
- it('should do nothing if transferring 0 amount of a token', async () => {
- // Construct metadata for ERC20V1 proxy
- const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
- // Perform a transfer from makerAddress to takerAddress
- const balances = await dmyBalances.getAsync();
- const amount = new BigNumber(0);
- await erc20TransferProxyV1.transferFrom.sendTransactionAsync(
- encodedProxyMetadata,
- makerAddress,
- takerAddress,
- amount,
- { from: assetProxyDispatcherAddress },
- );
- // Verify transfer was successful
- const newBalances = await dmyBalances.getAsync();
- expect(newBalances[makerAddress][zrx.address]).to.be.bignumber.equal(balances[makerAddress][zrx.address]);
- expect(newBalances[takerAddress][zrx.address]).to.be.bignumber.equal(balances[takerAddress][zrx.address]);
- });
-
- it('should throw if requesting address is not authorized', async () => {
- // Construct metadata for ERC20V1 proxy
- const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
- // Perform a transfer from makerAddress to takerAddress
- const balances = await dmyBalances.getAsync();
- const amount = new BigNumber(10);
- return expect(
- erc20TransferProxyV1.transferFrom.sendTransactionAsync(
- encodedProxyMetadata,
- makerAddress,
- takerAddress,
- amount,
- { from: notAuthorized },
- ),
- ).to.be.rejectedWith(constants.REVERT);
- });
- });
-
describe('Transfer Proxy - ERC20', () => {
it('should successfully encode/decode metadata', async () => {
const metadata = await erc20TransferProxy.encodeMetadata.callAsync(AssetProxyId.ERC20, zrx.address);
@@ -288,11 +168,31 @@ describe('Asset Transfer Proxies', () => {
expect(newBalances[takerAddress][zrx.address]).to.be.bignumber.equal(balances[takerAddress][zrx.address]);
});
+ it('should throw if allowances are too low', async () => {
+ // Construct metadata for ERC20 proxy
+ const encodedProxyMetadata = encodeERC20ProxyData(zrx.address);
+ // Create allowance less than transfer amount. Set allowance on proxy.
+ const allowance = new BigNumber(0);
+ const transferAmount = new BigNumber(10);
+ await zrx.approve.sendTransactionAsync(erc20TransferProxy.address, allowance, {
+ from: makerAddress,
+ });
+ // Perform a transfer; expect this to fail.
+ return expect(
+ erc20TransferProxy.transferFrom.sendTransactionAsync(
+ encodedProxyMetadata,
+ makerAddress,
+ takerAddress,
+ transferAmount,
+ { from: notAuthorized },
+ ),
+ ).to.be.rejectedWith(constants.REVERT);
+ });
+
it('should throw if requesting address is not authorized', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC20ProxyData(zrx.address);
// Perform a transfer from makerAddress to takerAddress
- const balances = await dmyBalances.getAsync();
const amount = new BigNumber(10);
return expect(
erc20TransferProxy.transferFrom.sendTransactionAsync(
@@ -404,11 +304,30 @@ describe('Asset Transfer Proxies', () => {
).to.be.rejectedWith(constants.REVERT);
});
+ it('should throw if allowances are too low', async () => {
+ // Construct metadata for ERC721 proxy
+ const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
+ // Remove transfer approval for makerAddress.
+ await erc721Token.setApprovalForAll.sendTransactionAsync(erc721TransferProxy.address, false, {
+ from: makerAddress,
+ });
+ // Perform a transfer; expect this to fail.
+ const amount = new BigNumber(1);
+ return expect(
+ erc20TransferProxy.transferFrom.sendTransactionAsync(
+ encodedProxyMetadata,
+ makerAddress,
+ takerAddress,
+ amount,
+ { from: notAuthorized },
+ ),
+ ).to.be.rejectedWith(constants.REVERT);
+ });
+
it('should throw if requesting address is not authorized', async () => {
// Construct metadata for ERC721 proxy
- const encodedProxyMetadata = encodeERC721ProxyData(zrx.address, makerTokenId);
+ const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
// Perform a transfer from makerAddress to takerAddress
- const balances = await dmyBalances.getAsync();
const amount = new BigNumber(1);
return expect(
erc721TransferProxy.transferFrom.sendTransactionAsync(
diff --git a/packages/contracts/test/exchange/core.ts b/packages/contracts/test/exchange/core.ts
index 499e846e8..087270db7 100644
--- a/packages/contracts/test/exchange/core.ts
+++ b/packages/contracts/test/exchange/core.ts
@@ -12,15 +12,13 @@ import { DummyERC721TokenContract } from '../../src/contract_wrappers/generated/
import { DummyTokenContract } from '../../src/contract_wrappers/generated/dummy_token';
import { ERC20ProxyContract } from '../../src/contract_wrappers/generated/e_r_c20_proxy';
import { ERC721ProxyContract } from '../../src/contract_wrappers/generated/e_r_c721_proxy';
-import { ERC20Proxy_v1Contract } from '../../src/contract_wrappers/generated/erc20proxy_v1';
import {
CancelContractEventArgs,
ExchangeContract,
ExchangeErrorContractEventArgs,
FillContractEventArgs,
} from '../../src/contract_wrappers/generated/exchange';
-import { TokenTransferProxyContract } from '../../src/contract_wrappers/generated/token_transfer_proxy';
-import { encodeERC20ProxyData, encodeERC20V1ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
+import { encodeERC20ProxyData, encodeERC721ProxyData } from '../../src/utils/asset_proxy_utils';
import { Balances } from '../../src/utils/balances';
import { constants } from '../../src/utils/constants';
import { crypto } from '../../src/utils/crypto';
@@ -56,9 +54,7 @@ describe('Exchange', () => {
let zrx: DummyTokenContract;
let erc721Token: DummyERC721TokenContract;
let exchange: ExchangeContract;
- let tokenTransferProxy: TokenTransferProxyContract;
let assetProxyDispatcher: AssetProxyDispatcherContract;
- let erc20TransferProxyV1: ERC20Proxy_v1Contract;
let erc20TransferProxy: ERC20ProxyContract;
let erc721TransferProxy: ERC721ProxyContract;
@@ -105,34 +101,6 @@ describe('Exchange', () => {
assetProxyDispatcherInstance.address,
provider,
);
- // Deploy TokenTransferProxy
- const tokenTransferProxyInstance = await deployer.deployAsync(ContractName.TokenTransferProxy);
- tokenTransferProxy = new TokenTransferProxyContract(
- tokenTransferProxyInstance.abi,
- tokenTransferProxyInstance.address,
- provider,
- );
- // Deploy ERC20 V1 Proxy
- const erc20TransferProxyV1Instance = await deployer.deployAsync(ContractName.ERC20V1Proxy, [
- tokenTransferProxy.address,
- ]);
- erc20TransferProxyV1 = new ERC20Proxy_v1Contract(
- erc20TransferProxyV1Instance.abi,
- erc20TransferProxyV1Instance.address,
- provider,
- );
- await erc20TransferProxyV1.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcher.address, {
- from: owner,
- });
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(erc20TransferProxyV1.address, {
- from: owner,
- });
- await assetProxyDispatcher.addAssetProxy.sendTransactionAsync(
- AssetProxyId.ERC20V1,
- erc20TransferProxyV1.address,
- ZeroEx.NULL_ADDRESS,
- { from: owner },
- );
// Deploy ERC20 Proxy
const erc20TransferProxyInstance = await deployer.deployAsync(ContractName.ERC20Proxy);
erc20TransferProxy = new ERC20ProxyContract(
@@ -197,12 +165,6 @@ describe('Exchange', () => {
orderFactory = new OrderFactory(privateKey, defaultOrderParams);
dmyBalances = new Balances([rep, dgd, zrx], [makerAddress, takerAddress, feeRecipientAddress]);
await Promise.all([
- rep.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: makerAddress,
- }),
- rep.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: takerAddress,
- }),
rep.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_ALLOWANCE, {
from: makerAddress,
}),
@@ -211,12 +173,6 @@ describe('Exchange', () => {
}),
rep.setBalance.sendTransactionAsync(makerAddress, INITIAL_BALANCE, { from: tokenOwner }),
rep.setBalance.sendTransactionAsync(takerAddress, INITIAL_BALANCE, { from: tokenOwner }),
- dgd.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: makerAddress,
- }),
- dgd.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: takerAddress,
- }),
dgd.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_ALLOWANCE, {
from: makerAddress,
}),
@@ -225,12 +181,6 @@ describe('Exchange', () => {
}),
dgd.setBalance.sendTransactionAsync(makerAddress, INITIAL_BALANCE, { from: tokenOwner }),
dgd.setBalance.sendTransactionAsync(takerAddress, INITIAL_BALANCE, { from: tokenOwner }),
- zrx.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: makerAddress,
- }),
- zrx.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
- from: takerAddress,
- }),
zrx.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_ALLOWANCE, {
from: makerAddress,
}),
@@ -672,21 +622,21 @@ describe('Exchange', () => {
});
it('should throw if maker allowances are too low to fill order', async () => {
- await rep.approve.sendTransactionAsync(tokenTransferProxy.address, new BigNumber(0), {
+ await rep.approve.sendTransactionAsync(erc20TransferProxy.address, new BigNumber(0), {
from: makerAddress,
});
expect(exWrapper.fillOrderAsync(signedOrder, takerAddress)).to.be.rejectedWith(constants.REVERT);
- await rep.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
+ await rep.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_ALLOWANCE, {
from: makerAddress,
});
});
it('should throw if taker allowances are too low to fill order', async () => {
- await dgd.approve.sendTransactionAsync(tokenTransferProxy.address, new BigNumber(0), {
+ await dgd.approve.sendTransactionAsync(erc20TransferProxy.address, new BigNumber(0), {
from: takerAddress,
});
expect(exWrapper.fillOrderAsync(signedOrder, takerAddress)).to.be.rejectedWith(constants.REVERT);
- await dgd.approve.sendTransactionAsync(tokenTransferProxy.address, INITIAL_ALLOWANCE, {
+ await dgd.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_ALLOWANCE, {
from: takerAddress,
});
});
diff --git a/packages/contracts/test/exchange/helpers.ts b/packages/contracts/test/exchange/helpers.ts
index 92fce8e47..43dfd5402 100644
--- a/packages/contracts/test/exchange/helpers.ts
+++ b/packages/contracts/test/exchange/helpers.ts
@@ -35,7 +35,6 @@ describe('Exchange', () => {
[makerAddress, feeRecipientAddress] = accounts;
const owner = accounts[0];
const tokenRegistry = await deployer.deployAsync(ContractName.TokenRegistry);
- const tokenTransferProxy = await deployer.deployAsync(ContractName.TokenTransferProxy);
const [rep, dgd, zrx] = await Promise.all([
deployer.deployAsync(ContractName.DummyToken, constants.DUMMY_TOKEN_ARGS),
deployer.deployAsync(ContractName.DummyToken, constants.DUMMY_TOKEN_ARGS),
diff --git a/packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts b/packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts
index f29d26fca..762292c9f 100644
--- a/packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts
+++ b/packages/contracts/test/multi_sig_with_time_lock_except_remove_auth_addr.ts
@@ -1,3 +1,9 @@
+/*
+ *
+ * @TODO: Before deploying, the MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress contract must be updated
+ * to have a mapping of all approved addresses. These tests muts be updated appropriately.
+ * For now, these tests have been commented out by @hysz (greg@0xproject.com).
+ *
import { LogWithDecodedArgs, ZeroEx } from '0x.js';
import { BlockchainLifecycle, devConstants, web3Factory } from '@0xproject/dev-utils';
import { AbiDecoder } from '@0xproject/utils';
@@ -191,3 +197,5 @@ describe('MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress', () => {
});
});
});
+
+*/
diff --git a/packages/contracts/test/token_transfer_proxy/transfer_from.ts b/packages/contracts/test/token_transfer_proxy/transfer_from.ts
deleted file mode 100644
index dc6757cd9..000000000
--- a/packages/contracts/test/token_transfer_proxy/transfer_from.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import { BlockchainLifecycle, devConstants, web3Factory } from '@0xproject/dev-utils';
-import { BigNumber } from '@0xproject/utils';
-import { Web3Wrapper } from '@0xproject/web3-wrapper';
-import * as chai from 'chai';
-import * as Web3 from 'web3';
-
-import { DummyTokenContract } from '../../src/contract_wrappers/generated/dummy_token';
-import { TokenTransferProxyContract } from '../../src/contract_wrappers/generated/token_transfer_proxy';
-import { Balances } from '../../src/utils/balances';
-import { constants } from '../../src/utils/constants';
-import { ContractName } from '../../src/utils/types';
-import { chaiSetup } from '../utils/chai_setup';
-import { deployer } from '../utils/deployer';
-import { provider, web3Wrapper } from '../utils/web3_wrapper';
-
-chaiSetup.configure();
-const expect = chai.expect;
-const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper);
-
-describe('TokenTransferProxy', () => {
- let accounts: string[];
- let owner: string;
- let notAuthorized: string;
- const INIT_BAL = new BigNumber(100000000);
- const INIT_ALLOW = new BigNumber(100000000);
-
- let tokenTransferProxy: TokenTransferProxyContract;
- let rep: DummyTokenContract;
- let dmyBalances: Balances;
-
- before(async () => {
- accounts = await web3Wrapper.getAvailableAddressesAsync();
- owner = notAuthorized = accounts[0];
- const tokenTransferProxyInstance = await deployer.deployAsync(ContractName.TokenTransferProxy);
- tokenTransferProxy = new TokenTransferProxyContract(
- tokenTransferProxyInstance.abi,
- tokenTransferProxyInstance.address,
- provider,
- );
- const repInstance = await deployer.deployAsync(ContractName.DummyToken, constants.DUMMY_TOKEN_ARGS);
- rep = new DummyTokenContract(repInstance.abi, repInstance.address, provider);
-
- dmyBalances = new Balances([rep], [accounts[0], accounts[1]]);
- await Promise.all([
- rep.approve.sendTransactionAsync(tokenTransferProxy.address, INIT_ALLOW, {
- from: accounts[0],
- }),
- rep.setBalance.sendTransactionAsync(accounts[0], INIT_BAL, { from: owner }),
- rep.approve.sendTransactionAsync(tokenTransferProxy.address, INIT_ALLOW, {
- from: accounts[1],
- }),
- rep.setBalance.sendTransactionAsync(accounts[1], INIT_BAL, { from: owner }),
- ]);
- });
- beforeEach(async () => {
- await blockchainLifecycle.startAsync();
- });
- afterEach(async () => {
- await blockchainLifecycle.revertAsync();
- });
-
- describe('transferFrom', () => {
- it('should throw when called by an unauthorized address', async () => {
- expect(
- tokenTransferProxy.transferFrom.sendTransactionAsync(
- rep.address,
- accounts[0],
- accounts[1],
- new BigNumber(1000),
- {
- from: notAuthorized,
- },
- ),
- ).to.be.rejectedWith(constants.REVERT);
- });
-
- it('should allow an authorized address to transfer', async () => {
- const balances = await dmyBalances.getAsync();
-
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(notAuthorized, {
- from: owner,
- });
- const transferAmt = new BigNumber(10000);
- await tokenTransferProxy.transferFrom.sendTransactionAsync(
- rep.address,
- accounts[0],
- accounts[1],
- transferAmt,
- {
- from: notAuthorized,
- },
- );
-
- const newBalances = await dmyBalances.getAsync();
- expect(newBalances[accounts[0]][rep.address]).to.be.bignumber.equal(
- balances[accounts[0]][rep.address].minus(transferAmt),
- );
- expect(newBalances[accounts[1]][rep.address]).to.be.bignumber.equal(
- balances[accounts[1]][rep.address].add(transferAmt),
- );
- });
- });
-});