diff --git a/package-lock.json b/package-lock.json index 26dd747e..8c4a46e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@dydxprotocol/perpetual", - "version": "1.0.9", + "version": "1.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4562fb4a..7d3e7507 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dydxprotocol/perpetual", - "version": "1.0.9", + "version": "1.0.10", "description": "Ethereum Smart Contracts and TypeScript library used for the dYdX Perpetual Contracts", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", diff --git a/src/modules/InverseOrders.ts b/src/modules/InverseOrders.ts index ad9732cb..bb97c9f2 100644 --- a/src/modules/InverseOrders.ts +++ b/src/modules/InverseOrders.ts @@ -100,4 +100,21 @@ export class InverseOrders extends Orders { positionDelta: isBuy ? positionAmount.negated() : positionAmount, }; } + + public getFeeForOrder( + amount: BigNumber, + isTaker: boolean = true, + ): Fee { + if (!isTaker) { + return Fee.fromBips('-2.5'); + } + + // WETH-PUSD: Small order size is 1000 USD. + // + // TODO: Address fees more generally on a per-market basis. + const isSmall = amount.lt('1000e6'); + return isSmall + ? Fee.fromBips('50.0') + : Fee.fromBips('7.5'); + } } diff --git a/src/modules/Orders.ts b/src/modules/Orders.ts index 96a81cb8..fea6f456 100644 --- a/src/modules/Orders.ts +++ b/src/modules/Orders.ts @@ -229,6 +229,9 @@ export class Orders { return Fee.fromBips('-2.5'); } + // PBTC-USDC: Small order size is 0.5 BTC. + // + // TODO: Address fees more generally on a per-market basis. const isSmall = amount.lt('0.5e8'); return isSmall ? Fee.fromBips('50.0')