Updated dydx account encoding to assume that all actions are on partial balances

This commit is contained in:
Greg Hysen
2019-12-13 12:00:19 -08:00
parent bec1f23616
commit 410c95308a
2 changed files with 8 additions and 7 deletions

View File

@@ -42,6 +42,8 @@ contract DydxBridge is
/// 3. The maker or taker of the 0x order must be the dydx account owner.
/// 4. Deposits into dydx are made from the `from` address.
/// 5. Withdrawals from dydx are made to the `to` address.
/// 6. Calling this function must always withdraw at least `amount`,
/// otherwise the `ERC20Bridge` will revert.
/// @param from The sender of the tokens and owner of the dydx account.
/// @param to The recipient of the tokens.
/// @param amount Minimum amount of `toTokenAddress` tokens to deposit or withdraw.
@@ -181,7 +183,7 @@ contract DydxBridge is
IDydx.AssetAmount memory dydxAmount = IDydx.AssetAmount({
sign: true, // true if positive.
denomination: IDydx.AssetDenomination.Wei, // Wei => actual token amount held in account.
ref: IDydx.AssetReference.Target, // Target => an absolute amount.
ref: IDydx.AssetReference.Delta, // Delta => a relative amount.
value: amount // amount to deposit.
});
@@ -217,9 +219,9 @@ contract DydxBridge is
{
// Create dydx amount.
IDydx.AssetAmount memory amountToWithdraw = IDydx.AssetAmount({
sign: true, // true if positive.
sign: false, // false if negative.
denomination: IDydx.AssetDenomination.Wei, // Wei => actual token amount held in account.
ref: IDydx.AssetReference.Target, // Target => an absolute amount.
ref: IDydx.AssetReference.Delta, // Delta => a relative amount.
value: amount // amount to withdraw.
});

View File

@@ -115,17 +115,16 @@ blockchainTests.resets('DydxBridge unit tests', env => {
verifyEventsFromLogs(txReceipt.logs, expectedOperateAccountEvents, TestDydxBridgeEvents.OperateAccount);
// Verify `OperateAction` event.
const positiveAmountSign = true;
const weiDenomination = 0;
const absoluteAmountRef = 1;
const deltaAmountRef = 0;
const expectedOperateActionEvents = [];
for (const action of bridgeData.actions) {
expectedOperateActionEvents.push({
actionType: action.actionType as number,
accountId: action.accountId,
amountSign: positiveAmountSign,
amountSign: action.actionType === BridgeActionType.Deposit ? true : false,
amountDenomination: weiDenomination,
amountRef: absoluteAmountRef,
amountRef: deltaAmountRef,
amountValue: action.conversionRateDenominator.gt(0)
? amount.times(action.conversionRateNumerator).div(action.conversionRateDenominator)
: amount,