More testing of common functionality across proxies
This commit is contained in:
parent
8d83243378
commit
4d42f64fa3
@ -159,7 +159,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should successfully transfer tokens', async () => {
|
it('should successfully transfer tokens', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC20V1 proxy
|
||||||
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
|
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
|
||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
@ -181,13 +181,32 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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 () => {
|
it('should throw if requesting address is not authorized', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC20V1 proxy
|
||||||
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
|
const encodedProxyMetadata = encodeERC20V1ProxyData(zrx.address);
|
||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
const amount = new BigNumber(10);
|
const amount = new BigNumber(10);
|
||||||
expect(
|
return expect(
|
||||||
erc20TransferProxyV1.transferFrom.sendTransactionAsync(
|
erc20TransferProxyV1.transferFrom.sendTransactionAsync(
|
||||||
encodedProxyMetadata,
|
encodedProxyMetadata,
|
||||||
makerAddress,
|
makerAddress,
|
||||||
@ -250,13 +269,32 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should do nothing if transferring 0 amount of a token', 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(0);
|
||||||
|
await erc20TransferProxy.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 () => {
|
it('should throw if requesting address is not authorized', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC20 proxy
|
||||||
const encodedProxyMetadata = encodeERC20ProxyData(zrx.address);
|
const encodedProxyMetadata = encodeERC20ProxyData(zrx.address);
|
||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
const amount = new BigNumber(10);
|
const amount = new BigNumber(10);
|
||||||
expect(
|
return expect(
|
||||||
erc20TransferProxy.transferFrom.sendTransactionAsync(
|
erc20TransferProxy.transferFrom.sendTransactionAsync(
|
||||||
encodedProxyMetadata,
|
encodedProxyMetadata,
|
||||||
makerAddress,
|
makerAddress,
|
||||||
@ -306,7 +344,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should successfully transfer tokens', async () => {
|
it('should successfully transfer tokens', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC721 proxy
|
||||||
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
||||||
// Verify pre-condition
|
// Verify pre-condition
|
||||||
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
||||||
@ -327,7 +365,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should do nothing if transferring 0 amount of a token', async () => {
|
it('should do nothing if transferring 0 amount of a token', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC721 proxy
|
||||||
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
||||||
// Verify pre-condition
|
// Verify pre-condition
|
||||||
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
||||||
@ -335,19 +373,20 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
const amount = new BigNumber(0);
|
const amount = new BigNumber(0);
|
||||||
expect(
|
await erc721TransferProxy.transferFrom.sendTransactionAsync(
|
||||||
erc721TransferProxy.transferFrom.sendTransactionAsync(
|
encodedProxyMetadata,
|
||||||
encodedProxyMetadata,
|
makerAddress,
|
||||||
makerAddress,
|
takerAddress,
|
||||||
takerAddress,
|
amount,
|
||||||
amount,
|
{ from: assetProxyDispatcherAddress },
|
||||||
{ from: assetProxyDispatcherAddress },
|
);
|
||||||
),
|
// Verify transfer was successful
|
||||||
).to.be.rejectedWith(constants.REVERT);
|
const newOwnerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
||||||
|
expect(newOwnerMakerToken).to.be.bignumber.equal(makerAddress);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw if transferring > 1 amount of a token', async () => {
|
it('should throw if transferring > 1 amount of a token', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC721 proxy
|
||||||
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
const encodedProxyMetadata = encodeERC721ProxyData(erc721Token.address, makerTokenId);
|
||||||
// Verify pre-condition
|
// Verify pre-condition
|
||||||
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
const ownerMakerToken = await erc721Token.ownerOf.callAsync(makerTokenId);
|
||||||
@ -355,7 +394,7 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
const amount = new BigNumber(500);
|
const amount = new BigNumber(500);
|
||||||
expect(
|
return expect(
|
||||||
erc721TransferProxy.transferFrom.sendTransactionAsync(
|
erc721TransferProxy.transferFrom.sendTransactionAsync(
|
||||||
encodedProxyMetadata,
|
encodedProxyMetadata,
|
||||||
makerAddress,
|
makerAddress,
|
||||||
@ -367,12 +406,12 @@ describe('Asset Transfer Proxies', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should throw if requesting address is not authorized', async () => {
|
it('should throw if requesting address is not authorized', async () => {
|
||||||
// Construct metadata for ERC20 proxy
|
// Construct metadata for ERC721 proxy
|
||||||
const encodedProxyMetadata = encodeERC721ProxyData(zrx.address, makerTokenId);
|
const encodedProxyMetadata = encodeERC721ProxyData(zrx.address, makerTokenId);
|
||||||
// Perform a transfer from makerAddress to takerAddress
|
// Perform a transfer from makerAddress to takerAddress
|
||||||
const balances = await dmyBalances.getAsync();
|
const balances = await dmyBalances.getAsync();
|
||||||
const amount = new BigNumber(1);
|
const amount = new BigNumber(1);
|
||||||
expect(
|
return expect(
|
||||||
erc721TransferProxy.transferFrom.sendTransactionAsync(
|
erc721TransferProxy.transferFrom.sendTransactionAsync(
|
||||||
encodedProxyMetadata,
|
encodedProxyMetadata,
|
||||||
makerAddress,
|
makerAddress,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user