@0x/contracts-asset-proxy
: Fix typos and remove BridgeTransferFromCallFailed
event from DexForwarderBridge
.
This commit is contained in:
parent
f3c6f26f85
commit
0ccbc7d3d2
@ -54,14 +54,6 @@ contract DexForwarderBridge is
|
||||
BridgeCall[] calls;
|
||||
}
|
||||
|
||||
event DexForwarderBridgeCallFailed(
|
||||
address indexed target,
|
||||
address inputToken,
|
||||
address outputToken,
|
||||
uint256 inputTokenAmount,
|
||||
uint256 outputTokenAmount
|
||||
);
|
||||
|
||||
/// @dev Spends this contract's entire balance of input tokens by forwarding
|
||||
/// them to other bridges. Reverts if the entire balance is not spent.
|
||||
/// @param outputToken The token being bought.
|
||||
@ -118,16 +110,7 @@ contract DexForwarderBridge is
|
||||
call.bridgeData
|
||||
));
|
||||
|
||||
if (!didSucceed) {
|
||||
// Log errors.
|
||||
emit DexForwarderBridgeCallFailed(
|
||||
call.target,
|
||||
state.inputToken,
|
||||
outputToken,
|
||||
state.callInputTokenAmount,
|
||||
state.callOutputTokenAmount
|
||||
);
|
||||
} else {
|
||||
if (didSucceed) {
|
||||
// Increase the amount of tokens sold.
|
||||
state.totalInputTokenSold = state.totalInputTokenSold.safeAdd(
|
||||
state.callInputTokenAmount
|
||||
@ -168,7 +151,7 @@ contract DexForwarderBridge is
|
||||
// Must be called through `bridgeTransferFrom()`.
|
||||
require(msg.sender == address(this), "DexForwarderBridge/ONLY_SELF");
|
||||
// `bridge` must not be this contract.
|
||||
require(bridge != address(this), "DexForwarderBridge/ILLEGAL_BRIDGE");
|
||||
require(bridge != address(this));
|
||||
|
||||
// Get the starting balance of output tokens for `to`.
|
||||
uint256 initialRecipientBalance = IERC20Token(outputToken).balanceOf(to);
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { AbiEncoder, BigNumber } from '@0x/utils';
|
||||
|
||||
export interface DexForwaderBridgeCall {
|
||||
export interface DexForwarderBridgeCall {
|
||||
target: string;
|
||||
inputTokenAmount: BigNumber;
|
||||
outputTokenAmount: BigNumber;
|
||||
@ -9,7 +9,7 @@ export interface DexForwaderBridgeCall {
|
||||
|
||||
export interface DexForwaderBridgeData {
|
||||
inputToken: string;
|
||||
calls: DexForwaderBridgeCall[];
|
||||
calls: DexForwarderBridgeCall[];
|
||||
}
|
||||
|
||||
export const dexForwarderBridgeDataEncoder = AbiEncoder.create([
|
||||
|
@ -7,17 +7,15 @@ import {
|
||||
getRandomInteger,
|
||||
randomAddress,
|
||||
shortZip,
|
||||
verifyEventsFromLogs,
|
||||
} from '@0x/contracts-test-utils';
|
||||
import { BigNumber, hexUtils } from '@0x/utils';
|
||||
import { DecodedLogs } from 'ethereum-types';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { DexForwaderBridgeCall, dexForwarderBridgeDataEncoder } from '../src/dex_forwarder_bridge';
|
||||
import { DexForwarderBridgeCall, dexForwarderBridgeDataEncoder } from '../src/dex_forwarder_bridge';
|
||||
|
||||
import { artifacts } from './artifacts';
|
||||
import {
|
||||
DexForwarderBridgeEvents,
|
||||
TestDexForwarderBridgeBridgeTransferFromCalledEventArgs as BtfCalledEventArgs,
|
||||
TestDexForwarderBridgeContract,
|
||||
TestDexForwarderBridgeEvents as TestEvents,
|
||||
@ -59,8 +57,8 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
|
||||
function getRandomBridgeCall(
|
||||
bridgeAddress: string,
|
||||
fields: Partial<DexForwaderBridgeCall> = {},
|
||||
): DexForwaderBridgeCall {
|
||||
fields: Partial<DexForwarderBridgeCall> = {},
|
||||
): DexForwarderBridgeCall {
|
||||
return {
|
||||
target: bridgeAddress,
|
||||
inputTokenAmount: getRandomInteger(1, '100e18'),
|
||||
@ -71,10 +69,10 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
}
|
||||
|
||||
describe('bridgeTransferFrom()', () => {
|
||||
let goodBridgeCalls: DexForwaderBridgeCall[];
|
||||
let revertingBridgeCall: DexForwaderBridgeCall;
|
||||
let failingBridgeCall: DexForwaderBridgeCall;
|
||||
let allBridgeCalls: DexForwaderBridgeCall[];
|
||||
let goodBridgeCalls: DexForwarderBridgeCall[];
|
||||
let revertingBridgeCall: DexForwarderBridgeCall;
|
||||
let failingBridgeCall: DexForwarderBridgeCall;
|
||||
let allBridgeCalls: DexForwarderBridgeCall[];
|
||||
let totalFillableOutputAmount: BigNumber;
|
||||
let totalFillableInputAmount: BigNumber;
|
||||
let recipientOutputBalance: BigNumber;
|
||||
@ -109,10 +107,10 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
opts: Partial<{
|
||||
returnCode: string;
|
||||
revertError: string;
|
||||
callFields: Partial<DexForwaderBridgeCall>;
|
||||
callFields: Partial<DexForwarderBridgeCall>;
|
||||
outputFillAmount: BigNumber;
|
||||
}>,
|
||||
): Promise<DexForwaderBridgeCall> {
|
||||
): Promise<DexForwarderBridgeCall> {
|
||||
const { returnCode, revertError, callFields, outputFillAmount } = {
|
||||
returnCode: BRIDGE_SUCCESS,
|
||||
revertError: '',
|
||||
@ -232,26 +230,6 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
expect(currentRecipientOutputBalance).to.bignumber.eq(totalFillableOutputAmount);
|
||||
});
|
||||
|
||||
it('emits failure events for failing bridge calls', async () => {
|
||||
const calls = [revertingBridgeCall, failingBridgeCall, ...goodBridgeCalls];
|
||||
const bridgeData = dexForwarderBridgeDataEncoder.encode({
|
||||
inputToken,
|
||||
calls,
|
||||
});
|
||||
const logs = await callBridgeTransferFromAsync({ bridgeData });
|
||||
verifyEventsFromLogs(
|
||||
logs,
|
||||
[revertingBridgeCall, failingBridgeCall].map(c => ({
|
||||
inputToken,
|
||||
outputToken,
|
||||
target: c.target,
|
||||
inputTokenAmount: c.inputTokenAmount,
|
||||
outputTokenAmount: c.outputTokenAmount,
|
||||
})),
|
||||
DexForwarderBridgeEvents.DexForwarderBridgeCallFailed,
|
||||
);
|
||||
});
|
||||
|
||||
it("transfers only up to each call's input amount to each bridge", async () => {
|
||||
const calls = goodBridgeCalls;
|
||||
const bridgeData = dexForwarderBridgeDataEncoder.encode({
|
||||
@ -302,19 +280,6 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
calls,
|
||||
});
|
||||
const logs = await callBridgeTransferFromAsync({ bridgeData });
|
||||
verifyEventsFromLogs(
|
||||
logs,
|
||||
[
|
||||
{
|
||||
inputToken,
|
||||
outputToken,
|
||||
target: badCall.target,
|
||||
inputTokenAmount: badCall.inputTokenAmount,
|
||||
outputTokenAmount: badCall.outputTokenAmount,
|
||||
},
|
||||
],
|
||||
TestEvents.DexForwarderBridgeCallFailed,
|
||||
);
|
||||
const btfs = filterLogsToArguments<BtfCalledEventArgs>(logs, TestEvents.BridgeTransferFromCalled);
|
||||
expect(btfs).to.be.length(goodBridgeCalls.length);
|
||||
});
|
||||
@ -332,19 +297,6 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
calls,
|
||||
});
|
||||
const logs = await callBridgeTransferFromAsync({ bridgeData });
|
||||
verifyEventsFromLogs(
|
||||
logs,
|
||||
[
|
||||
{
|
||||
inputToken,
|
||||
outputToken,
|
||||
target: badCall.target,
|
||||
inputTokenAmount: badCall.inputTokenAmount,
|
||||
outputTokenAmount: badCall.outputTokenAmount,
|
||||
},
|
||||
],
|
||||
TestEvents.DexForwarderBridgeCallFailed,
|
||||
);
|
||||
const btfs = filterLogsToArguments<BtfCalledEventArgs>(logs, TestEvents.BridgeTransferFromCalled);
|
||||
expect(btfs).to.be.length(goodBridgeCalls.length);
|
||||
});
|
||||
@ -365,19 +317,6 @@ blockchainTests.resets('DexForwarderBridge unit tests', env => {
|
||||
calls,
|
||||
});
|
||||
const logs = await callBridgeTransferFromAsync({ bridgeData });
|
||||
verifyEventsFromLogs(
|
||||
logs,
|
||||
[
|
||||
{
|
||||
inputToken,
|
||||
outputToken,
|
||||
target: badCall.target,
|
||||
inputTokenAmount: badCall.inputTokenAmount,
|
||||
outputTokenAmount: badCall.outputTokenAmount,
|
||||
},
|
||||
],
|
||||
TestEvents.DexForwarderBridgeCallFailed,
|
||||
);
|
||||
const btfs = filterLogsToArguments<BtfCalledEventArgs>(logs, TestEvents.BridgeTransferFromCalled);
|
||||
expect(btfs).to.be.length(goodBridgeCalls.length);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user