Added 1explicit ERC1555Poxy testsfor cwhen receiver allback data is NULLL (0x)
This commit is contained in:
		@@ -433,6 +433,50 @@ describe('ERC1155Proxy', () => {
 | 
			
		||||
            ];
 | 
			
		||||
            await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances);
 | 
			
		||||
        });
 | 
			
		||||
        it('should successfully transfer value to a smart contract and trigger its callback, when callback `data` is NULL', async () => {
 | 
			
		||||
            // setup test parameters
 | 
			
		||||
            const tokenHolders = [spender, receiverContract];
 | 
			
		||||
            const tokensToTransfer = fungibleTokens.slice(0, 1);
 | 
			
		||||
            const valuesToTransfer = [fungibleValueToTransferLarge];
 | 
			
		||||
            const valueMultiplier = valueMultiplierSmall;
 | 
			
		||||
            const totalValuesTransferred = _.map(valuesToTransfer, (value: BigNumber) => {
 | 
			
		||||
                return value.times(valueMultiplier);
 | 
			
		||||
            });
 | 
			
		||||
            // check balances before transfer
 | 
			
		||||
            const expectedInitialBalances = [spenderInitialFungibleBalance, receiverContractInitialFungibleBalance];
 | 
			
		||||
            await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedInitialBalances);
 | 
			
		||||
            // execute transfer
 | 
			
		||||
            const nullReceiverCallbackData = '0x';
 | 
			
		||||
            const txReceipt = await erc1155ProxyWrapper.transferFromWithLogsAsync(
 | 
			
		||||
                spender,
 | 
			
		||||
                receiverContract,
 | 
			
		||||
                erc1155Contract.address,
 | 
			
		||||
                tokensToTransfer,
 | 
			
		||||
                valuesToTransfer,
 | 
			
		||||
                valueMultiplier,
 | 
			
		||||
                nullReceiverCallbackData,
 | 
			
		||||
                authorized,
 | 
			
		||||
            );
 | 
			
		||||
            // check receiver log ignored extra asset data
 | 
			
		||||
            expect(txReceipt.logs.length).to.be.equal(2);
 | 
			
		||||
            const receiverLog = txReceipt.logs[1] as LogWithDecodedArgs<
 | 
			
		||||
                DummyERC1155ReceiverBatchTokenReceivedEventArgs
 | 
			
		||||
            >;
 | 
			
		||||
            expect(receiverLog.args.operator).to.be.equal(erc1155Proxy.address);
 | 
			
		||||
            expect(receiverLog.args.from).to.be.equal(spender);
 | 
			
		||||
            expect(receiverLog.args.tokenIds.length).to.be.deep.equal(1);
 | 
			
		||||
            expect(receiverLog.args.tokenIds[0]).to.be.bignumber.equal(tokensToTransfer[0]);
 | 
			
		||||
            expect(receiverLog.args.tokenValues.length).to.be.deep.equal(1);
 | 
			
		||||
            expect(receiverLog.args.tokenValues[0]).to.be.bignumber.equal(totalValuesTransferred[0]);
 | 
			
		||||
            // note - if the `extraData` is ignored then the receiver log should ignore it as well.
 | 
			
		||||
            expect(receiverLog.args.data).to.be.deep.equal(nullReceiverCallbackData);
 | 
			
		||||
            // check balances after transfer
 | 
			
		||||
            const expectedFinalBalances = [
 | 
			
		||||
                expectedInitialBalances[0].minus(totalValuesTransferred[0]),
 | 
			
		||||
                expectedInitialBalances[1].plus(totalValuesTransferred[0]),
 | 
			
		||||
            ];
 | 
			
		||||
            await erc1155Wrapper.assertBalancesAsync(tokenHolders, tokensToTransfer, expectedFinalBalances);
 | 
			
		||||
        });
 | 
			
		||||
        it('should successfully transfer value and ignore extra assetData', async () => {
 | 
			
		||||
            // setup test parameters
 | 
			
		||||
            const tokenHolders = [spender, receiverContract];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user