Rename internal functions in LibAssetDataTransfer and fix tests
This commit is contained in:
@@ -58,25 +58,25 @@ library LibAssetDataTransfer {
|
||||
proxyId == IAssetData(address(0)).ERC20Token.selector ||
|
||||
proxyId == IAssetData(address(0)).ERC20Bridge.selector
|
||||
) {
|
||||
assetData._transferERC20Token(
|
||||
assetData.transferERC20Token(
|
||||
from,
|
||||
to,
|
||||
amount
|
||||
);
|
||||
} else if (proxyId == IAssetData(address(0)).ERC721Token.selector) {
|
||||
assetData._transferERC721Token(
|
||||
assetData.transferERC721Token(
|
||||
from,
|
||||
to,
|
||||
amount
|
||||
);
|
||||
} else if (proxyId == IAssetData(address(0)).ERC1155Assets.selector) {
|
||||
assetData._transferERC1155Assets(
|
||||
assetData.transferERC1155Assets(
|
||||
from,
|
||||
to,
|
||||
amount
|
||||
);
|
||||
} else if (proxyId == IAssetData(address(0)).MultiAsset.selector) {
|
||||
assetData._transferMultiAsset(
|
||||
assetData.transferMultiAsset(
|
||||
from,
|
||||
to,
|
||||
amount
|
||||
@@ -125,7 +125,7 @@ library LibAssetDataTransfer {
|
||||
/// @param from Address to transfer asset from.
|
||||
/// @param to Address to transfer asset to.
|
||||
/// @param amount Amount of asset to transfer to sender.
|
||||
function _transferERC20Token(
|
||||
function transferERC20Token(
|
||||
bytes memory assetData,
|
||||
address from,
|
||||
address to,
|
||||
@@ -156,7 +156,7 @@ library LibAssetDataTransfer {
|
||||
/// @param from Address to transfer asset from.
|
||||
/// @param to Address to transfer asset to.
|
||||
/// @param amount Amount of asset to transfer to sender.
|
||||
function _transferERC721Token(
|
||||
function transferERC721Token(
|
||||
bytes memory assetData,
|
||||
address from,
|
||||
address to,
|
||||
@@ -186,7 +186,7 @@ library LibAssetDataTransfer {
|
||||
/// @param from Address to transfer asset from.
|
||||
/// @param to Address to transfer asset to.
|
||||
/// @param amount Amount of asset to transfer to sender.
|
||||
function _transferERC1155Assets(
|
||||
function transferERC1155Assets(
|
||||
bytes memory assetData,
|
||||
address from,
|
||||
address to,
|
||||
@@ -230,7 +230,7 @@ library LibAssetDataTransfer {
|
||||
/// @param from Address to transfer asset from.
|
||||
/// @param to Address to transfer asset to.
|
||||
/// @param amount Amount of asset to transfer to sender.
|
||||
function _transferMultiAsset(
|
||||
function transferMultiAsset(
|
||||
bytes memory assetData,
|
||||
address from,
|
||||
address to,
|
||||
|
@@ -1,6 +1,7 @@
|
||||
import { IAssetDataContract } from '@0x/contracts-asset-proxy';
|
||||
import {
|
||||
artifacts as ERC1155Artifacts,
|
||||
ERC1155Events,
|
||||
ERC1155MintableContract,
|
||||
ERC1155TransferBatchEventArgs,
|
||||
Erc1155Wrapper,
|
||||
@@ -247,12 +248,11 @@ blockchainTests.resets('Supported asset type unit tests', env => {
|
||||
const txReceipt = await forwarder
|
||||
.transferOut(assetData, amount)
|
||||
.awaitTransactionSuccessAsync({ from: receiver });
|
||||
const logArgs = (txReceipt.logs[0] as LogWithDecodedArgs<ERC1155TransferBatchEventArgs>).args;
|
||||
expect(logArgs.operator).to.eq(forwarder.address);
|
||||
expect(logArgs.from).to.eq(forwarder.address);
|
||||
expect(logArgs.to).to.eq(receiver);
|
||||
logArgs.ids.forEach((id, i) => expect(new BigNumber(id)).to.bignumber.eq(ids[i]));
|
||||
logArgs.values.forEach((value, i) => expect(new BigNumber(value)).to.bignumber.eq(values[i]));
|
||||
verifyEventsFromLogs<ERC1155TransferBatchEventArgs>(
|
||||
txReceipt.logs,
|
||||
[{ operator: forwarder.address, from: forwarder.address, to: receiver, ids, values }],
|
||||
ERC1155Events.TransferBatch,
|
||||
);
|
||||
});
|
||||
it('transfers multiple ids of an ERC1155 token', async () => {
|
||||
const amount = new BigNumber(1);
|
||||
@@ -265,33 +265,29 @@ blockchainTests.resets('Supported asset type unit tests', env => {
|
||||
.ERC1155Assets(erc1155Token.address, ids, values, constants.NULL_BYTES)
|
||||
.getABIEncodedTransactionData();
|
||||
const txReceipt = await forwarder.transferOut(assetData, amount).awaitTransactionSuccessAsync();
|
||||
const logArgs = (txReceipt.logs[0] as LogWithDecodedArgs<ERC1155TransferBatchEventArgs>).args;
|
||||
expect(logArgs.operator).to.eq(forwarder.address);
|
||||
expect(logArgs.from).to.eq(forwarder.address);
|
||||
expect(logArgs.to).to.eq(receiver);
|
||||
logArgs.ids.forEach((id, i) => expect(new BigNumber(id)).to.bignumber.eq(ids[i]));
|
||||
logArgs.values.forEach((value, i) => expect(new BigNumber(value)).to.bignumber.eq(values[i]));
|
||||
verifyEventsFromLogs<ERC1155TransferBatchEventArgs>(
|
||||
txReceipt.logs,
|
||||
[{ operator: forwarder.address, from: forwarder.address, to: receiver, ids, values }],
|
||||
ERC1155Events.TransferBatch,
|
||||
);
|
||||
});
|
||||
it('scales up values when transfering ERC1155 tokens', async () => {
|
||||
it('transfers multiple ids of an ERC1155 token', async () => {
|
||||
const amount = new BigNumber(2);
|
||||
const ids = [
|
||||
await erc1155Wrapper.mintFungibleTokensAsync([forwarder.address], [amount]),
|
||||
await erc1155Wrapper.mintFungibleTokensAsync([forwarder.address], [amount]),
|
||||
];
|
||||
const values = [new BigNumber(1), new BigNumber(2)];
|
||||
const assetData = assetDataEncoder
|
||||
.ERC1155Assets(erc1155Token.address, ids, values, constants.NULL_BYTES)
|
||||
.getABIEncodedTransactionData();
|
||||
const txReceipt = await forwarder.transferOut(assetData, amount).awaitTransactionSuccessAsync();
|
||||
const scaledValues = values.map(value => value.times(amount));
|
||||
const logArgs = (txReceipt.logs[0] as LogWithDecodedArgs<ERC1155TransferBatchEventArgs>).args;
|
||||
expect(logArgs.operator).to.eq(forwarder.address);
|
||||
expect(logArgs.from).to.eq(forwarder.address);
|
||||
expect(logArgs.to).to.eq(receiver);
|
||||
logArgs.ids.forEach((id, i) => expect(new BigNumber(id)).to.bignumber.eq(ids[i]));
|
||||
logArgs.values.forEach((value, i) => expect(new BigNumber(value)).to.bignumber.eq(scaledValues[i]));
|
||||
});
|
||||
const amount = new BigNumber(2);
|
||||
const values = [new BigNumber(1), new BigNumber(2)];
|
||||
const scaledValues = values.map(value => value.times(amount));
|
||||
const ids = [
|
||||
await erc1155Wrapper.mintFungibleTokensAsync([forwarder.address], [scaledValues[0]]),
|
||||
await erc1155Wrapper.mintFungibleTokensAsync([forwarder.address], [scaledValues[1]]),
|
||||
];
|
||||
const assetData = assetDataEncoder
|
||||
.ERC1155Assets(erc1155Token.address, ids, values, constants.NULL_BYTES)
|
||||
.getABIEncodedTransactionData();
|
||||
const txReceipt = await forwarder.transferOut(assetData, amount).awaitTransactionSuccessAsync();
|
||||
verifyEventsFromLogs<ERC1155TransferBatchEventArgs>(
|
||||
txReceipt.logs,
|
||||
[{ operator: forwarder.address, from: forwarder.address, to: receiver, ids, values: scaledValues }],
|
||||
ERC1155Events.TransferBatch,
|
||||
);
|
||||
});
|
||||
it('transfers a single ERC20 token wrapped as MultiAsset', async () => {
|
||||
const nestedAmount = new BigNumber(1337);
|
||||
|
Reference in New Issue
Block a user