From 4fbc0870795fecc4997afb067a3e1c9e3310d9da Mon Sep 17 00:00:00 2001 From: Sluder Date: Mon, 17 Jul 2023 16:56:13 -0400 Subject: [PATCH 1/3] Include WR treasury --- src/constants.ts | 6 ++- src/dex/api/wingriders-api.ts | 4 +- src/dex/definitions/wingriders/order.ts | 2 +- src/dex/definitions/wingriders/pool.ts | 54 +++++++++++++++++++++++++ src/dex/minswap.ts | 4 +- src/dex/wingriders.ts | 19 ++++++++- 6 files changed, 82 insertions(+), 7 deletions(-) create mode 100644 src/dex/definitions/wingriders/pool.ts diff --git a/src/constants.ts b/src/constants.ts index 98bbb4f..dbb74da 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -45,11 +45,15 @@ export enum DatumParameterKey { LpFeeDenominator = 'LpFeeDenominator', PoolAssetAPolicyId = 'PoolAssetAPolicyId', PoolAssetAAssetName = 'PoolAssetAAssetName', + PoolAssetATreasury = 'PoolAssetATreasury', PoolAssetABarFee = 'PoolAssetABarFee', - PoolAssetBBarFee = 'PoolAssetBBarFee', PoolAssetBPolicyId = 'PoolAssetBPolicyId', PoolAssetBAssetName = 'PoolAssetBAssetName', + PoolAssetBTreasury = 'PoolAssetBTreasury', + PoolAssetBBarFee = 'PoolAssetBBarFee', RootKLast = 'RootKLast', + LastInteraction = 'LastInteraction', + RequestScriptHash = 'RequestScriptHash', } export enum TransactionStatus { diff --git a/src/dex/api/wingriders-api.ts b/src/dex/api/wingriders-api.ts index ffa267f..e1f13d8 100644 --- a/src/dex/api/wingriders-api.ts +++ b/src/dex/api/wingriders-api.ts @@ -70,8 +70,8 @@ export class WingRidersApi extends BaseApi { this.dex.name, tokenA, tokenB, - BigInt(pool.treasuryA), - BigInt(pool.treasuryB), + BigInt(pool.tokenA.quantity) - BigInt(pool.treasuryA), + BigInt(pool.tokenB.quantity) - BigInt(pool.treasuryB), pool._utxo.address, this.dex.orderAddress, this.dex.orderAddress, diff --git a/src/dex/definitions/wingriders/order.ts b/src/dex/definitions/wingriders/order.ts index 48d849b..33a51c7 100644 --- a/src/dex/definitions/wingriders/order.ts +++ b/src/dex/definitions/wingriders/order.ts @@ -44,7 +44,7 @@ export default { bytes: DatumParameterKey.SenderPubKeyHash }, { - int: DatumParameterKey.Expiration + int: DatumParameterKey.LastInteraction }, { constructor: 0, diff --git a/src/dex/definitions/wingriders/pool.ts b/src/dex/definitions/wingriders/pool.ts new file mode 100644 index 0000000..44ff04c --- /dev/null +++ b/src/dex/definitions/wingriders/pool.ts @@ -0,0 +1,54 @@ +import { DatumParameterKey } from '@app/constants'; + +/** + * https://github.com/WingRiders/dex-serializer/blob/main/src/LiquidityPoolDatum.ts + */ +export default { + constructor: 0, + fields: [ + { + bytes: DatumParameterKey.RequestScriptHash + }, + { + constructor: 0, + fields: [ + { + constructor: 0, + fields: [ + { + constructor: 0, + fields: [ + { + bytes: DatumParameterKey.PoolAssetAPolicyId, + }, + { + bytes: DatumParameterKey.PoolAssetAAssetName, + } + ] + }, + { + constructor: 0, + fields: [ + { + bytes: DatumParameterKey.PoolAssetBPolicyId, + }, + { + bytes: DatumParameterKey.PoolAssetBAssetName, + } + ] + } + ] + }, + { + int: DatumParameterKey.Expiration, + }, + { + int: DatumParameterKey.PoolAssetATreasury, + }, + { + int: DatumParameterKey.PoolAssetBTreasury, + } + ] + } + ] +}; \ No newline at end of file diff --git a/src/dex/minswap.ts b/src/dex/minswap.ts index d03dc88..f00cfd6 100644 --- a/src/dex/minswap.ts +++ b/src/dex/minswap.ts @@ -117,9 +117,9 @@ export class Minswap extends BaseDex { liquidityPool.identifier = possibleLpTokens[0].policyId; } - try { - liquidityPool.poolFeePercent = 0.3; + liquidityPool.poolFeePercent = 0.3; + try { const builder: DefinitionBuilder = await (new DefinitionBuilder()) .loadDefinition(pool); const datum: DefinitionField = await provider.datumValue(utxo.datumHash); diff --git a/src/dex/wingriders.ts b/src/dex/wingriders.ts index 9430250..cc03043 100644 --- a/src/dex/wingriders.ts +++ b/src/dex/wingriders.ts @@ -2,7 +2,7 @@ import { BaseDex } from './base-dex'; import { AssetAddress, AssetBalance, - DatumParameters, + DatumParameters, DefinitionConstr, DefinitionField, PayToAddress, RequestConfig, SwapFee, @@ -17,6 +17,7 @@ import { DefinitionBuilder } from '@app/definition-builder'; import order from '@dex/definitions/wingriders/order'; import { BaseApi } from '@dex/api/base-api'; import { WingRidersApi } from '@dex/api/wingriders-api'; +import pool from "@dex/definitions/wingriders/pool"; /** * WingRiders constants. @@ -130,6 +131,22 @@ export class WingRiders extends BaseDex { } liquidityPool.poolFeePercent = 0.35; + try { + const builder: DefinitionBuilder = await (new DefinitionBuilder()) + .loadDefinition(pool); + const datum: DefinitionField = await provider.datumValue(utxo.datumHash); + const parameters: DatumParameters = builder.pullParameters(datum as DefinitionConstr); + + liquidityPool.reserveA = typeof parameters.PoolAssetATreasury === 'number' + ? (liquidityPool.reserveA - BigInt(parameters.PoolAssetATreasury)) + : liquidityPool.reserveA; + liquidityPool.reserveB = typeof parameters.PoolAssetBTreasury === 'number' + ? (liquidityPool.reserveB - BigInt(parameters.PoolAssetBTreasury)) + : liquidityPool.reserveB; + } catch (e) { + return liquidityPool; + } + return liquidityPool; } From 4ad26bb2b9f380596a160842228efebfb450e3b6 Mon Sep 17 00:00:00 2001 From: Sluder Date: Mon, 17 Jul 2023 16:57:03 -0400 Subject: [PATCH 2/3] Code format --- src/dex/wingriders.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dex/wingriders.ts b/src/dex/wingriders.ts index cc03043..1f5e8ba 100644 --- a/src/dex/wingriders.ts +++ b/src/dex/wingriders.ts @@ -2,7 +2,9 @@ import { BaseDex } from './base-dex'; import { AssetAddress, AssetBalance, - DatumParameters, DefinitionConstr, DefinitionField, + DatumParameters, + DefinitionConstr, + DefinitionField, PayToAddress, RequestConfig, SwapFee, From 658f994467fb9480c609f94605e2302edba6f4ea Mon Sep 17 00:00:00 2001 From: Sluder Date: Mon, 17 Jul 2023 16:59:33 -0400 Subject: [PATCH 3/3] Oops --- src/dex/definitions/wingriders/order.ts | 2 +- src/dex/definitions/wingriders/pool.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dex/definitions/wingriders/order.ts b/src/dex/definitions/wingriders/order.ts index 33a51c7..48d849b 100644 --- a/src/dex/definitions/wingriders/order.ts +++ b/src/dex/definitions/wingriders/order.ts @@ -44,7 +44,7 @@ export default { bytes: DatumParameterKey.SenderPubKeyHash }, { - int: DatumParameterKey.LastInteraction + int: DatumParameterKey.Expiration }, { constructor: 0, diff --git a/src/dex/definitions/wingriders/pool.ts b/src/dex/definitions/wingriders/pool.ts index 44ff04c..8d08d9b 100644 --- a/src/dex/definitions/wingriders/pool.ts +++ b/src/dex/definitions/wingriders/pool.ts @@ -40,7 +40,7 @@ export default { ] }, { - int: DatumParameterKey.Expiration, + int: DatumParameterKey.LastInteraction, }, { int: DatumParameterKey.PoolAssetATreasury,