aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/contracts/test/asset_proxy_dispatcher/proxies.ts77
1 files changed, 25 insertions, 52 deletions
diff --git a/packages/contracts/test/asset_proxy_dispatcher/proxies.ts b/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
index 91346cb6f..00161c186 100644
--- a/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
+++ b/packages/contracts/test/asset_proxy_dispatcher/proxies.ts
@@ -12,11 +12,7 @@ import { ERC20ProxyContract } from '../../src/contract_wrappers/generated/e_r_c2
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, encodeERC20V1ProxyData, 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';
@@ -31,7 +27,7 @@ const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper);
describe('Asset Transfer Proxies', () => {
let owner: string;
let notOwner: string;
- let exchangeAddress: string;
+ let assetProxyDispatcherAddress: string;
let tokenOwner: string;
let makerAddress: string;
let takerAddress: string;
@@ -47,19 +43,21 @@ describe('Asset Transfer Proxies', () => {
const INITIAL_BALANCE = new BigNumber(10000);
before(async () => {
+ // Setup accounts & addresses
const accounts = await web3Wrapper.getAvailableAddressesAsync();
owner = tokenOwner = accounts[0];
notOwner = accounts[1];
- exchangeAddress = accounts[2];
+ 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.ERC20Proxy_V1, [
tokenTransferProxy.address,
]);
@@ -68,28 +66,33 @@ describe('Asset Transfer Proxies', () => {
erc20TransferProxyV1Instance.address,
provider,
);
-
+ await erc20TransferProxyV1.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcherAddress, {
+ from: accounts[0],
+ });
+ await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(erc20TransferProxyV1.address, {
+ from: accounts[0],
+ });
+ // Deploy ERC20 Proxy
const erc20TransferProxyInstance = await deployer.deployAsync(ContractName.ERC20Proxy);
erc20TransferProxy = new ERC20ProxyContract(
erc20TransferProxyInstance.abi,
erc20TransferProxyInstance.address,
provider,
);
-
+ await erc20TransferProxy.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcherAddress, {
+ from: accounts[0],
+ });
+ // Deploy ERC721 Proxy
const erc721TransferProxyInstance = await deployer.deployAsync(ContractName.ERC721Proxy);
erc721TransferProxy = new ERC721ProxyContract(
erc721TransferProxyInstance.abi,
erc721TransferProxyInstance.address,
provider,
);
-
- const assetProxyDispatcherInstance = await deployer.deployAsync(ContractName.AssetProxyDispatcher);
- assetProxyDispatcher = new AssetProxyDispatcherContract(
- assetProxyDispatcherInstance.abi,
- assetProxyDispatcherInstance.address,
- provider,
- );
-
+ await erc721TransferProxy.addAuthorizedAddress.sendTransactionAsync(assetProxyDispatcherAddress, {
+ from: accounts[0],
+ });
+ // Deploy zrx and set initial balances
const zrxInstance = await deployer.deployAsync(ContractName.DummyToken, constants.DUMMY_TOKEN_ARGS);
zrx = new DummyTokenContract(zrxInstance.abi, zrxInstance.address, provider);
await zrx.setBalance.sendTransactionAsync(makerAddress, INITIAL_BALANCE, { from: tokenOwner });
@@ -107,27 +110,12 @@ describe('Asset Transfer Proxies', () => {
await zrx.approve.sendTransactionAsync(erc20TransferProxy.address, INITIAL_BALANCE, {
from: makerAddress,
});
-
+ // Deploy ck and set initial balances
const ckInstance = await deployer.deployAsync(ContractName.DummyERC721Token, constants.DUMMY_ERC721TOKEN_ARGS);
ck = new DummyERC721TokenContract(ckInstance.abi, ckInstance.address, provider);
await ck.setApprovalForAll.sendTransactionAsync(erc721TransferProxy.address, true, { from: makerAddress });
await ck.setApprovalForAll.sendTransactionAsync(erc721TransferProxy.address, true, { from: takerAddress });
await ck.mint.sendTransactionAsync(makerAddress, makerTokenId, { from: tokenOwner });
- await assetProxyDispatcher.addAuthorizedAddress.sendTransactionAsync(exchangeAddress, {
- from: accounts[0],
- });
- await erc20TransferProxyV1.addAuthorizedAddress.sendTransactionAsync(exchangeAddress, {
- from: accounts[0],
- });
- await erc20TransferProxy.addAuthorizedAddress.sendTransactionAsync(exchangeAddress, {
- from: accounts[0],
- });
- await erc721TransferProxy.addAuthorizedAddress.sendTransactionAsync(exchangeAddress, {
- from: accounts[0],
- });
- await tokenTransferProxy.addAuthorizedAddress.sendTransactionAsync(erc20TransferProxyV1.address, {
- from: accounts[0],
- });
});
beforeEach(async () => {
await blockchainLifecycle.startAsync();
@@ -135,7 +123,6 @@ describe('Asset Transfer Proxies', () => {
afterEach(async () => {
await blockchainLifecycle.revertAsync();
});
-
describe('Transfer Proxy - ERC20_V1', () => {
it('should successfully encode/decode metadata', async () => {
const metadata = await erc20TransferProxyV1.encodeMetadata.callAsync(AssetProxyId.ERC20_V1, zrx.address);
@@ -166,7 +153,6 @@ describe('Asset Transfer Proxies', () => {
it('should successfully transfer tokens', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(10);
@@ -175,9 +161,8 @@ describe('Asset Transfer Proxies', () => {
makerAddress,
takerAddress,
amount,
- { from: exchangeAddress },
+ { from: assetProxyDispatcherAddress },
);
-
// Verify transfer was successful
const newBalances = await dmyBalances.getAsync();
expect(newBalances[makerAddress][zrx.address]).to.be.bignumber.equal(
@@ -191,7 +176,6 @@ describe('Asset Transfer Proxies', () => {
it('should throw if requesting address is not authorized', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(10);
@@ -237,7 +221,6 @@ describe('Asset Transfer Proxies', () => {
it('should successfully transfer tokens', 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);
@@ -246,9 +229,8 @@ describe('Asset Transfer Proxies', () => {
makerAddress,
takerAddress,
amount,
- { from: exchangeAddress },
+ { from: assetProxyDispatcherAddress },
);
-
// Verify transfer was successful
const newBalances = await dmyBalances.getAsync();
expect(newBalances[makerAddress][zrx.address]).to.be.bignumber.equal(
@@ -262,7 +244,6 @@ describe('Asset Transfer Proxies', () => {
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);
@@ -320,11 +301,9 @@ describe('Asset Transfer Proxies', () => {
it('should successfully transfer tokens', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC721ProxyData(ck.address, makerTokenId);
-
// Verify pre-condition
const ownerMakerToken = await ck.ownerOf.callAsync(makerTokenId);
expect(ownerMakerToken).to.be.bignumber.equal(makerAddress);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(1);
@@ -333,9 +312,8 @@ describe('Asset Transfer Proxies', () => {
makerAddress,
takerAddress,
amount,
- { from: exchangeAddress },
+ { from: assetProxyDispatcherAddress },
);
-
// Verify transfer was successful
const newOwnerMakerToken = await ck.ownerOf.callAsync(makerTokenId);
expect(newOwnerMakerToken).to.be.bignumber.equal(takerAddress);
@@ -344,11 +322,9 @@ describe('Asset Transfer Proxies', () => {
it('should throw if transferring 0 amount of a token', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC721ProxyData(ck.address, makerTokenId);
-
// Verify pre-condition
const ownerMakerToken = await ck.ownerOf.callAsync(makerTokenId);
expect(ownerMakerToken).to.be.bignumber.equal(makerAddress);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(0);
@@ -366,11 +342,9 @@ describe('Asset Transfer Proxies', () => {
it('should throw if transferring >1 amount of a token', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC721ProxyData(ck.address, makerTokenId);
-
// Verify pre-condition
const ownerMakerToken = await ck.ownerOf.callAsync(makerTokenId);
expect(ownerMakerToken).to.be.bignumber.equal(makerAddress);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(500);
@@ -388,7 +362,6 @@ describe('Asset Transfer Proxies', () => {
it('should throw if requesting address is not authorized', async () => {
// Construct metadata for ERC20 proxy
const encodedProxyMetadata = encodeERC721ProxyData(zrx.address, makerTokenId);
-
// Perform a transfer from makerAddress to takerAddress
const balances = await dmyBalances.getAsync();
const amount = new BigNumber(1);