Move LibAssetDataTransfer and MixinWeth(Utils) to contracts-extensions

This commit is contained in:
Michael Zhu
2020-01-31 14:57:32 -08:00
parent a2fcab47d4
commit 329719472a
65 changed files with 565 additions and 4826 deletions

View File

@@ -13,20 +13,22 @@ export const godsUnchainedUtils = {
},
/**
* Encodes the given proto and quality into ERC1155 asset data to be used as the takerAssetData
* of a property-based GodsUnchained order. Must also provide the address of the Broker and
* the GodsUnchainedValidator contract. The optional bundleSize parameter specifies how many
* cards are expected for each "unit" of the takerAssetAmount. For example, If the
* of a property-based GodsUnchained order. Must also provide the addresses of the Broker,
* GodsUnchained, and GodsUnchainedValidator contracts. The optional bundleSize parameter specifies
* how many cards are expected for each "unit" of the takerAssetAmount. For example, If the
* takerAssetAmount is 3 and the bundleSize is 2, the taker must provide 2, 4, or 6 cards
* with the given proto and quality to fill the order. If an odd number is provided, the fill fails.
*/
encodeBrokerAssetData(
brokerAddress: string,
godsUnchainedAddress: string,
validatorAddress: string,
proto: BigNumber,
quality: BigNumber,
bundleSize: number = 1,
): string {
const dataEncoder = AbiEncoder.create([
{ name: 'godsUnchainedAddress', type: 'address' },
{ name: 'validatorAddress', type: 'address' },
{ name: 'propertyData', type: 'bytes' },
]);
@@ -34,7 +36,7 @@ export const godsUnchainedUtils = {
{ name: 'proto', type: 'uint16' },
{ name: 'quality', type: 'uint8' },
]).encode({ proto, quality });
const data = dataEncoder.encode({ validatorAddress, propertyData });
const data = dataEncoder.encode({ godsUnchainedAddress, validatorAddress, propertyData });
return assetDataUtils.encodeERC1155AssetData(brokerAddress, [], [new BigNumber(bundleSize)], data);
},
};