@sentio/sdk 2.7.2-rc.1 → 2.7.2-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ export declare class AptosDex<T> {
14
14
  tvlAll: Gauge;
15
15
  tvlByPool: Gauge;
16
16
  tvlByCoin: Gauge;
17
- constructor(volume: Gauge, volumeSingle: Gauge, tvlAll: Gauge, tvlByCoin: Gauge, tvlByPool: Gauge, poolAdaptor: PoolAdaptor<T>);
17
+ constructor(volume: Gauge, tvlAll: Gauge, tvlByCoin: Gauge, tvlByPool: Gauge, poolAdaptor: PoolAdaptor<T>);
18
18
  recordTradingVolume(ctx: AptosContext, coinx: string, coiny: string, coinXAmount: bigint, coinYAmount: bigint, extraLabels?: any): Promise<BigDecimal>;
19
19
  syncPools(resources: MoveResource[], ctx: AptosResourceContext, poolsHandler?: (pools: TypedMoveResource<T>[]) => Promise<void> | void): Promise<void>;
20
20
  }
@@ -8,59 +8,60 @@ export class AptosDex {
8
8
  tvlAll;
9
9
  tvlByPool;
10
10
  tvlByCoin;
11
- constructor(volume, volumeSingle, tvlAll, tvlByCoin, tvlByPool, poolAdaptor) {
11
+ constructor(volume,
12
+ // volumeSingle: Gauge,
13
+ tvlAll, tvlByCoin, tvlByPool, poolAdaptor) {
12
14
  this.volume = volume;
13
- this.volumeSingle = volumeSingle;
15
+ // this.volumeSingle = volumeSingle
14
16
  this.tvlAll = tvlAll;
15
17
  this.tvlByPool = tvlByPool;
16
18
  this.tvlByCoin = tvlByCoin;
17
19
  this.poolAdaptor = poolAdaptor;
18
20
  }
19
21
  async recordTradingVolume(ctx, coinx, coiny, coinXAmount, coinYAmount, extraLabels) {
22
+ let result = BigDecimal(0);
20
23
  const whitelistx = whiteListed(coinx);
21
24
  const whitelisty = whiteListed(coiny);
25
+ if (!whitelistx && !whitelisty) {
26
+ return result;
27
+ }
22
28
  const coinXInfo = await getCoinInfo(coinx);
23
29
  const coinYInfo = await getCoinInfo(coiny);
24
30
  const timestamp = ctx.transaction.timestamp;
25
- let result = new BigDecimal(0.0);
31
+ let resultX = BigDecimal(0);
32
+ let resultY = BigDecimal(0);
26
33
  const pair = await getPair(coinx, coiny);
27
34
  const baseLabels = extraLabels ? { ...extraLabels, pair } : { pair };
28
- if (!whitelistx || !whitelisty) {
29
- if (whitelistx) {
30
- result = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp);
31
- this.volumeSingle.record(ctx, result, {
32
- ...baseLabels,
33
- coin: coinXInfo.symbol,
34
- type: coinXInfo.token_type.type,
35
- });
36
- }
37
- if (whitelisty) {
38
- result = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp);
39
- this.volumeSingle.record(ctx, result, {
40
- ...baseLabels,
41
- coin: coinYInfo.symbol,
42
- type: coinYInfo.token_type.type,
43
- });
44
- }
45
- return result;
35
+ if (whitelistx) {
36
+ resultX = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp);
37
+ }
38
+ if (whitelisty) {
39
+ resultY = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp);
46
40
  }
47
- // Both x and y are whitelisted
48
- let value = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp);
49
- this.volume.record(ctx, value, {
50
- ...baseLabels,
51
- coin: coinXInfo.symbol,
52
- bridge: coinXInfo.bridge,
53
- type: coinXInfo.token_type.type,
54
- });
55
- value = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp);
56
- this.volume.record(ctx, value, {
57
- ...baseLabels,
58
- coin: coinYInfo.symbol,
59
- bridge: coinYInfo.bridge,
60
- type: coinYInfo.token_type.type,
61
- });
62
- this.volumeSingle.record(ctx, value, { ...baseLabels, coin: coinYInfo.symbol, type: coinYInfo.token_type.type });
63
- return value;
41
+ if (resultX.eq(0)) {
42
+ resultX = BigDecimal(resultY);
43
+ }
44
+ if (resultY.eq(0)) {
45
+ resultY = BigDecimal(resultX);
46
+ }
47
+ if (resultX.gt(0)) {
48
+ this.volume.record(ctx, resultX, {
49
+ ...baseLabels,
50
+ coin: coinXInfo.symbol,
51
+ bridge: coinXInfo.bridge,
52
+ type: coinXInfo.token_type.type,
53
+ });
54
+ }
55
+ if (resultY.gt(0)) {
56
+ this.volume.record(ctx, resultY, {
57
+ ...baseLabels,
58
+ coin: coinYInfo.symbol,
59
+ bridge: coinYInfo.bridge,
60
+ type: coinYInfo.token_type.type,
61
+ });
62
+ }
63
+ result = resultX.plus(resultY).div(2);
64
+ return result;
64
65
  }
65
66
  async syncPools(resources, ctx, poolsHandler) {
66
67
  const pools = defaultMoveCoder().filterAndDecodeResources(this.poolAdaptor.poolTypeName, resources);
@@ -84,41 +85,37 @@ export class AptosDex {
84
85
  const coinYInfo = await getCoinInfo(coiny);
85
86
  const coinx_amount = this.poolAdaptor.getXReserve(pool.data_decoded);
86
87
  const coiny_amount = this.poolAdaptor.getYReserve(pool.data_decoded);
87
- let poolValue = BigDecimal(0);
88
+ let resultX = BigDecimal(0);
89
+ let resultY = BigDecimal(0);
88
90
  if (whitelistx) {
89
- const value = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp);
90
- poolValue = poolValue.plus(value);
91
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })
91
+ resultX = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp);
92
92
  let coinXTotal = volumeByCoin.get(coinXInfo.token_type.type);
93
93
  if (!coinXTotal) {
94
- coinXTotal = value;
94
+ coinXTotal = resultX;
95
95
  }
96
96
  else {
97
- coinXTotal = coinXTotal.plus(value);
97
+ coinXTotal = coinXTotal.plus(resultX);
98
98
  }
99
99
  volumeByCoin.set(coinXInfo.token_type.type, coinXTotal);
100
- if (!whitelisty) {
101
- poolValue = poolValue.plus(value);
102
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type})
103
- }
104
100
  }
105
101
  if (whitelisty) {
106
- const value = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp);
107
- poolValue = poolValue.plus(value);
108
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type })
102
+ resultY = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp);
109
103
  let coinYTotal = volumeByCoin.get(coinYInfo.token_type.type);
110
104
  if (!coinYTotal) {
111
- coinYTotal = value;
105
+ coinYTotal = resultY;
112
106
  }
113
107
  else {
114
- coinYTotal = coinYTotal.plus(value);
108
+ coinYTotal = coinYTotal.plus(resultY);
115
109
  }
116
110
  volumeByCoin.set(coinYInfo.token_type.type, coinYTotal);
117
- if (!whitelistx) {
118
- tvlAllValue = tvlAllValue.plus(value);
119
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })
120
- }
121
111
  }
112
+ if (resultX.eq(0)) {
113
+ resultX = BigDecimal(resultY);
114
+ }
115
+ if (resultY.eq(0)) {
116
+ resultY = BigDecimal(resultX);
117
+ }
118
+ const poolValue = resultX.plus(resultY);
122
119
  if (poolValue.isGreaterThan(0)) {
123
120
  this.tvlByPool.record(ctx, poolValue, baseLabels);
124
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aptos-dex.js","sourceRoot":"","sources":["../../../src/aptos/ext/aptos-dex.ts"],"names":[],"mappings":"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","sourcesContent":["import { Gauge } from '@sentio/sdk'\nimport { BigDecimal } from '@sentio/bigdecimal'\nimport { calculateValueInUsd, getCoinInfo, whitelistCoins, whiteListed } from './coin.js'\nimport {\n AptosResourceContext,\n TypedMoveResource,\n MoveResource,\n defaultMoveCoder,\n AptosContext,\n} from '@sentio/sdk/aptos'\n\nexport interface PoolAdaptor<T> {\n getXReserve(pool: T): bigint\n getYReserve(pool: T): bigint\n getExtraPoolTags(pool: TypedMoveResource<T>): any\n poolTypeName: string\n}\n\nexport class AptosDex<T> {\n poolAdaptor: PoolAdaptor<T>\n volume: Gauge\n volumeSingle: Gauge\n tvlAll: Gauge\n tvlByPool: Gauge\n tvlByCoin: Gauge\n\n constructor(\n volume: Gauge,\n volumeSingle: Gauge,\n tvlAll: Gauge,\n tvlByCoin: Gauge,\n tvlByPool: Gauge,\n poolAdaptor: PoolAdaptor<T>\n ) {\n this.volume = volume\n this.volumeSingle = volumeSingle\n this.tvlAll = tvlAll\n this.tvlByPool = tvlByPool\n this.tvlByCoin = tvlByCoin\n this.poolAdaptor = poolAdaptor\n }\n\n async recordTradingVolume(\n ctx: AptosContext,\n coinx: string,\n coiny: string,\n coinXAmount: bigint,\n coinYAmount: bigint,\n extraLabels?: any\n ): Promise<BigDecimal> {\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n const timestamp = ctx.transaction.timestamp\n let result = new BigDecimal(0.0)\n const pair = await getPair(coinx, coiny)\n const baseLabels: Record<string, string> = extraLabels ? { ...extraLabels, pair } : { pair }\n if (!whitelistx || !whitelisty) {\n if (whitelistx) {\n result = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)\n this.volumeSingle.record(ctx, result, {\n ...baseLabels,\n coin: coinXInfo.symbol,\n type: coinXInfo.token_type.type,\n })\n }\n if (whitelisty) {\n result = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)\n this.volumeSingle.record(ctx, result, {\n ...baseLabels,\n coin: coinYInfo.symbol,\n type: coinYInfo.token_type.type,\n })\n }\n return result\n }\n\n // Both x and y are whitelisted\n let value = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)\n this.volume.record(ctx, value, {\n ...baseLabels,\n coin: coinXInfo.symbol,\n bridge: coinXInfo.bridge,\n type: coinXInfo.token_type.type,\n })\n value = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)\n this.volume.record(ctx, value, {\n ...baseLabels,\n coin: coinYInfo.symbol,\n bridge: coinYInfo.bridge,\n type: coinYInfo.token_type.type,\n })\n this.volumeSingle.record(ctx, value, { ...baseLabels, coin: coinYInfo.symbol, type: coinYInfo.token_type.type })\n return value\n }\n\n async syncPools(\n resources: MoveResource[],\n ctx: AptosResourceContext,\n poolsHandler?: (pools: TypedMoveResource<T>[]) => Promise<void> | void\n ) {\n const pools: TypedMoveResource<T>[] = defaultMoveCoder().filterAndDecodeResources(\n this.poolAdaptor.poolTypeName,\n resources\n )\n\n const volumeByCoin = new Map<string, BigDecimal>()\n const timestamp = ctx.timestampInMicros\n\n console.log('num of pools: ', pools.length, ctx.version.toString())\n\n let tvlAllValue = BigDecimal(0)\n for (const pool of pools) {\n // savePool(ctx.version, pool.type_arguments)\n const coinx = pool.type_arguments[0]\n const coiny = pool.type_arguments[1]\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n if (!whitelistx && !whitelisty) {\n continue\n }\n\n const pair = await getPair(coinx, coiny)\n const extraLabels = this.poolAdaptor.getExtraPoolTags(pool)\n const baseLabels: Record<string, string> = { ...extraLabels, pair }\n\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n\n const coinx_amount = this.poolAdaptor.getXReserve(pool.data_decoded)\n const coiny_amount = this.poolAdaptor.getYReserve(pool.data_decoded)\n\n let poolValue = BigDecimal(0)\n\n if (whitelistx) {\n const value = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp)\n poolValue = poolValue.plus(value)\n // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })\n\n let coinXTotal = volumeByCoin.get(coinXInfo.token_type.type)\n if (!coinXTotal) {\n coinXTotal = value\n } else {\n coinXTotal = coinXTotal.plus(value)\n }\n volumeByCoin.set(coinXInfo.token_type.type, coinXTotal)\n\n if (!whitelisty) {\n poolValue = poolValue.plus(value)\n // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type})\n }\n }\n if (whitelisty) {\n const value = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp)\n poolValue = poolValue.plus(value)\n // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type })\n\n let coinYTotal = volumeByCoin.get(coinYInfo.token_type.type)\n if (!coinYTotal) {\n coinYTotal = value\n } else {\n coinYTotal = coinYTotal.plus(value)\n }\n volumeByCoin.set(coinYInfo.token_type.type, coinYTotal)\n\n if (!whitelistx) {\n tvlAllValue = tvlAllValue.plus(value)\n // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })\n }\n }\n\n if (poolValue.isGreaterThan(0)) {\n this.tvlByPool.record(ctx, poolValue, baseLabels)\n }\n tvlAllValue = tvlAllValue.plus(poolValue)\n }\n this.tvlAll.record(ctx, tvlAllValue)\n\n if (poolsHandler) {\n poolsHandler(pools)\n }\n\n for (const [k, v] of volumeByCoin) {\n const coinInfo = whitelistCoins().get(k)\n if (!coinInfo) {\n throw Error('unexpected coin ' + k)\n }\n // const price = await getPrice(coinInfo, timestamp)\n // priceGauge.record(ctx, price, { coin: coinInfo.symbol })\n if (v.isGreaterThan(0)) {\n this.tvlByCoin.record(ctx, v, {\n coin: coinInfo.symbol,\n bridge: coinInfo.bridge,\n type: coinInfo.token_type.type,\n })\n }\n }\n }\n}\n\nexport async function getPair(coinx: string, coiny: string): Promise<string> {\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n if (coinXInfo.symbol.localeCompare(coinYInfo.symbol) > 0) {\n return `${coinYInfo.symbol}-${coinXInfo.symbol}`\n }\n return `${coinXInfo.symbol}-${coinYInfo.symbol}`\n}\n\nexport async function getPairValue(\n ctx: AptosContext,\n coinx: string,\n coiny: string,\n coinXAmount: bigint,\n coinYAmount: bigint\n): Promise<BigDecimal> {\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n const timestamp = ctx.transaction.timestamp\n let result = BigDecimal(0.0)\n\n if (!whitelistx || !whitelisty) {\n return result\n }\n\n if (whitelistx) {\n const value = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)\n result = value\n\n if (!whitelisty) {\n result = result.plus(value)\n }\n }\n if (whitelisty) {\n const value = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)\n\n if (!whitelistx) {\n result = result.plus(value)\n }\n }\n\n return result\n}\n"]}
1
+ {"version":3,"file":"aptos-dex.js","sourceRoot":"","sources":["../../../src/aptos/ext/aptos-dex.ts"],"names":[],"mappings":"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","sourcesContent":["import { Gauge } from '@sentio/sdk'\nimport { BigDecimal } from '@sentio/bigdecimal'\nimport { calculateValueInUsd, getCoinInfo, whitelistCoins, whiteListed } from './coin.js'\nimport {\n AptosResourceContext,\n TypedMoveResource,\n MoveResource,\n defaultMoveCoder,\n AptosContext,\n} from '@sentio/sdk/aptos'\n\nexport interface PoolAdaptor<T> {\n getXReserve(pool: T): bigint\n getYReserve(pool: T): bigint\n getExtraPoolTags(pool: TypedMoveResource<T>): any\n poolTypeName: string\n}\n\nexport class AptosDex<T> {\n poolAdaptor: PoolAdaptor<T>\n volume: Gauge\n volumeSingle: Gauge\n tvlAll: Gauge\n tvlByPool: Gauge\n tvlByCoin: Gauge\n\n constructor(\n volume: Gauge,\n // volumeSingle: Gauge,\n tvlAll: Gauge,\n tvlByCoin: Gauge,\n tvlByPool: Gauge,\n poolAdaptor: PoolAdaptor<T>\n ) {\n this.volume = volume\n // this.volumeSingle = volumeSingle\n this.tvlAll = tvlAll\n this.tvlByPool = tvlByPool\n this.tvlByCoin = tvlByCoin\n this.poolAdaptor = poolAdaptor\n }\n\n async recordTradingVolume(\n ctx: AptosContext,\n coinx: string,\n coiny: string,\n coinXAmount: bigint,\n coinYAmount: bigint,\n extraLabels?: any\n ): Promise<BigDecimal> {\n let result = BigDecimal(0)\n\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n if (!whitelistx && !whitelisty) {\n return result\n }\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n const timestamp = ctx.transaction.timestamp\n let resultX = BigDecimal(0)\n let resultY = BigDecimal(0)\n const pair = await getPair(coinx, coiny)\n const baseLabels: Record<string, string> = extraLabels ? { ...extraLabels, pair } : { pair }\n if (whitelistx) {\n resultX = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)\n }\n if (whitelisty) {\n resultY = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)\n }\n if (resultX.eq(0)) {\n resultX = BigDecimal(resultY)\n }\n if (resultY.eq(0)) {\n resultY = BigDecimal(resultX)\n }\n if (resultX.gt(0)) {\n this.volume.record(ctx, resultX, {\n ...baseLabels,\n coin: coinXInfo.symbol,\n bridge: coinXInfo.bridge,\n type: coinXInfo.token_type.type,\n })\n }\n if (resultY.gt(0)) {\n this.volume.record(ctx, resultY, {\n ...baseLabels,\n coin: coinYInfo.symbol,\n bridge: coinYInfo.bridge,\n type: coinYInfo.token_type.type,\n })\n }\n result = resultX.plus(resultY).div(2)\n return result\n }\n\n async syncPools(\n resources: MoveResource[],\n ctx: AptosResourceContext,\n poolsHandler?: (pools: TypedMoveResource<T>[]) => Promise<void> | void\n ) {\n const pools: TypedMoveResource<T>[] = defaultMoveCoder().filterAndDecodeResources(\n this.poolAdaptor.poolTypeName,\n resources\n )\n\n const volumeByCoin = new Map<string, BigDecimal>()\n const timestamp = ctx.timestampInMicros\n\n console.log('num of pools: ', pools.length, ctx.version.toString())\n\n let tvlAllValue = BigDecimal(0)\n for (const pool of pools) {\n // savePool(ctx.version, pool.type_arguments)\n const coinx = pool.type_arguments[0]\n const coiny = pool.type_arguments[1]\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n if (!whitelistx && !whitelisty) {\n continue\n }\n\n const pair = await getPair(coinx, coiny)\n const extraLabels = this.poolAdaptor.getExtraPoolTags(pool)\n const baseLabels: Record<string, string> = { ...extraLabels, pair }\n\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n\n const coinx_amount = this.poolAdaptor.getXReserve(pool.data_decoded)\n const coiny_amount = this.poolAdaptor.getYReserve(pool.data_decoded)\n\n let resultX = BigDecimal(0)\n let resultY = BigDecimal(0)\n\n if (whitelistx) {\n resultX = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp)\n let coinXTotal = volumeByCoin.get(coinXInfo.token_type.type)\n if (!coinXTotal) {\n coinXTotal = resultX\n } else {\n coinXTotal = coinXTotal.plus(resultX)\n }\n volumeByCoin.set(coinXInfo.token_type.type, coinXTotal)\n }\n if (whitelisty) {\n resultY = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp)\n let coinYTotal = volumeByCoin.get(coinYInfo.token_type.type)\n if (!coinYTotal) {\n coinYTotal = resultY\n } else {\n coinYTotal = coinYTotal.plus(resultY)\n }\n volumeByCoin.set(coinYInfo.token_type.type, coinYTotal)\n }\n\n if (resultX.eq(0)) {\n resultX = BigDecimal(resultY)\n }\n if (resultY.eq(0)) {\n resultY = BigDecimal(resultX)\n }\n\n const poolValue = resultX.plus(resultY)\n\n if (poolValue.isGreaterThan(0)) {\n this.tvlByPool.record(ctx, poolValue, baseLabels)\n }\n tvlAllValue = tvlAllValue.plus(poolValue)\n }\n this.tvlAll.record(ctx, tvlAllValue)\n\n if (poolsHandler) {\n poolsHandler(pools)\n }\n\n for (const [k, v] of volumeByCoin) {\n const coinInfo = whitelistCoins().get(k)\n if (!coinInfo) {\n throw Error('unexpected coin ' + k)\n }\n // const price = await getPrice(coinInfo, timestamp)\n // priceGauge.record(ctx, price, { coin: coinInfo.symbol })\n if (v.isGreaterThan(0)) {\n this.tvlByCoin.record(ctx, v, {\n coin: coinInfo.symbol,\n bridge: coinInfo.bridge,\n type: coinInfo.token_type.type,\n })\n }\n }\n }\n}\n\nexport async function getPair(coinx: string, coiny: string): Promise<string> {\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n if (coinXInfo.symbol.localeCompare(coinYInfo.symbol) > 0) {\n return `${coinYInfo.symbol}-${coinXInfo.symbol}`\n }\n return `${coinXInfo.symbol}-${coinYInfo.symbol}`\n}\n\nexport async function getPairValue(\n ctx: AptosContext,\n coinx: string,\n coiny: string,\n coinXAmount: bigint,\n coinYAmount: bigint\n): Promise<BigDecimal> {\n const whitelistx = whiteListed(coinx)\n const whitelisty = whiteListed(coiny)\n const coinXInfo = await getCoinInfo(coinx)\n const coinYInfo = await getCoinInfo(coiny)\n const timestamp = ctx.transaction.timestamp\n let result = BigDecimal(0.0)\n\n if (!whitelistx || !whitelisty) {\n return result\n }\n\n if (whitelistx) {\n const value = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)\n result = value\n\n if (!whitelisty) {\n result = result.plus(value)\n }\n }\n if (whitelisty) {\n const value = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)\n\n if (!whitelistx) {\n result = result.plus(value)\n }\n }\n\n return result\n}\n"]}
@@ -36,6 +36,7 @@ export function getCoinInfo(type) {
36
36
  const r = WHITELISTED_COINS.get(type);
37
37
  if (!r) {
38
38
  const parts = type.split('::');
39
+ // TDDO retrive from network
39
40
  return {
40
41
  token_type: { type: type, account_address: parts[0] },
41
42
  symbol: parts[2],
@@ -1 +1 @@
1
- {"version":3,"file":"coin.js","sourceRoot":"","sources":["../../../src/aptos/ext/coin.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPriceByType } from '@sentio/sdk/utils'\nimport { CHAIN_IDS } from '@sentio/sdk'\nimport { Status, ClientError } from 'nice-grpc-common'\nimport fetch from 'node-fetch'\n\nconst WHITELISTED_COINS = new Map<string, SimpleCoinInfo>()\n\nexport interface SimpleCoinInfo {\n token_type: { type: string; account_address: string }\n symbol: string\n decimals: number\n bridge: string\n}\n\nexport async function initCoinList() {\n let list = DEFAULT_LIST\n try {\n const resp = await fetch(\n 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/src/defaultList.mainnet.json'\n )\n list = (await resp.json()) as any[]\n } catch (e) {\n console.warn(\"Can't not fetch newest coin list, use default list\")\n }\n\n for (const info of list) {\n let bridge = 'native'\n if (info.name.includes('Celer')) {\n bridge = 'Celer'\n }\n if (info.name.includes('LayerZero')) {\n bridge = 'LayerZero'\n }\n if (info.name.includes('Wormhole')) {\n bridge = 'Wormhole'\n }\n WHITELISTED_COINS.set(info.token_type.type, { ...info, bridge })\n }\n}\n\nexport function whitelistCoins() {\n return WHITELISTED_COINS\n}\n\nexport function whiteListed(type: string): boolean {\n return WHITELISTED_COINS.has(type)\n}\n\nexport function getCoinInfo(type: string): SimpleCoinInfo {\n const r = WHITELISTED_COINS.get(type)\n if (!r) {\n const parts = type.split('::')\n return {\n token_type: { type: type, account_address: parts[0] },\n symbol: parts[2],\n decimals: 1,\n bridge: 'native',\n }\n }\n return r\n}\n\nexport async function getPrice(coinType: string, timestamp: number): Promise<number> {\n if (!whiteListed(coinType)) {\n return 0.0\n }\n const date = new Date(timestamp / 1000)\n try {\n return (await getPriceByType(CHAIN_IDS.APTOS_MAINNET, coinType, date)) || 0\n } catch (error) {\n if (error instanceof ClientError && error.code === Status.NOT_FOUND) {\n return 0\n }\n console.log(JSON.stringify(error))\n throw error\n }\n}\n\nexport async function calculateValueInUsd(n: bigint, coinInfo: SimpleCoinInfo, timestamp: number | string) {\n if (typeof timestamp === 'string') {\n timestamp = parseInt(timestamp)\n }\n const price = await getPrice(coinInfo.token_type.type, timestamp)\n const amount = n.scaleDown(coinInfo.decimals)\n return amount.multipliedBy(price)\n}\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nconst DEFAULT_LIST = [\n {\n name: 'Aptos Coin',\n symbol: 'APT',\n official_symbol: 'APT',\n coingecko_id: 'aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APT.webp',\n project_url: 'https://aptoslabs.com/',\n token_type: {\n type: '0x1::aptos_coin::AptosCoin',\n account_address: '0x1',\n module_name: 'aptos_coin',\n struct_name: 'AptosCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 1,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'APT',\n pancake_symbol: 'APT',\n },\n {\n name: 'Meeiro',\n symbol: 'MEE',\n official_symbol: 'MEE',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MEE.svg',\n project_url: 'https://meeiro.xyz',\n token_type: {\n type: '0xe9c192ff55cffab3963c695cff6dbf9dad6aff2bb5ac19a6415cad26a81860d9::mee_coin::MeeCoin',\n account_address: '0xe9c192ff55cffab3963c695cff6dbf9dad6aff2bb5ac19a6415cad26a81860d9',\n module_name: 'mee_coin',\n struct_name: 'MeeCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 101,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'MEE',\n pancake_symbol: 'MEE',\n },\n {\n name: 'Ditto Staked Aptos',\n symbol: 'stAPT',\n official_symbol: 'stAPT',\n coingecko_id: 'ditto-staked-aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DittoStakedAptos.svg',\n project_url: 'https://www.dittofinance.io/',\n token_type: {\n type: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::staked_coin::StakedAptos',\n account_address: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5',\n module_name: 'staked_coin',\n struct_name: 'StakedAptos',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 156,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'stAPT',\n pancake_symbol: 'stAPT',\n },\n {\n name: 'Ditto Discount Token',\n symbol: 'DTO',\n official_symbol: 'DTO',\n coingecko_id: 'ditto-discount-token',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DTO.svg',\n project_url: 'https://www.dittofinance.io/',\n token_type: {\n type: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::ditto_discount_coin::DittoDiscountCoin',\n account_address: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5',\n module_name: 'ditto_discount_coin',\n struct_name: 'DittoDiscountCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 191,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'DTO',\n pancake_symbol: 'DTO',\n },\n {\n name: 'DAI',\n symbol: 'devDAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetDAI',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetDAI',\n },\n extensions: {\n data: [],\n },\n unique_index: 213,\n source: 'native',\n hippo_symbol: 'devDAI',\n pancake_symbol: 'devDAI',\n permissioned_listing: false,\n },\n {\n name: 'Aptoge',\n symbol: 'APTOGE',\n official_symbol: 'APTOGE',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APTOGE.svg',\n project_url: 'https://aptoge.com',\n token_type: {\n type: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf::Aptoge::Aptoge',\n account_address: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf',\n module_name: 'Aptoge',\n struct_name: 'Aptoge',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 231,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'APTOGE',\n pancake_symbol: 'APTOGE',\n },\n {\n name: 'Eternal Token',\n symbol: 'ETERN',\n official_symbol: 'ETERN',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ETERN.svg',\n project_url: 'https://eternalfinance.io',\n token_type: {\n type: '0x25a64579760a4c64be0d692327786a6375ec80740152851490cfd0b53604cf95::coin::ETERN',\n account_address: '0x25a64579760a4c64be0d692327786a6375ec80740152851490cfd0b53604cf95',\n module_name: 'coin',\n struct_name: 'ETERN',\n },\n extensions: {\n data: [],\n },\n unique_index: 256,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ETERN',\n pancake_symbol: 'ETERN',\n },\n {\n name: 'Argo USD',\n symbol: 'USDA',\n official_symbol: 'USDA',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDA.svg',\n project_url: 'https://argo.fi/',\n token_type: {\n type: '0x1000000fa32d122c18a6a31c009ce5e71674f22d06a581bb0a15575e6addadcc::usda::USDA',\n account_address: '0x1000000fa32d122c18a6a31c009ce5e71674f22d06a581bb0a15575e6addadcc',\n module_name: 'usda',\n struct_name: 'USDA',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 351,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'USDA',\n pancake_symbol: 'USDA',\n },\n {\n name: 'APass Coin',\n symbol: 'APC',\n official_symbol: 'APC',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APC.svg',\n project_url: 'https://aptpp.com',\n token_type: {\n type: '0x777821c78442e17d82c3d7a371f42de7189e4248e529fe6eee6bca40ddbb::apcoin::ApCoin',\n account_address: '0x777821c78442e17d82c3d7a371f42de7189e4248e529fe6eee6bca40ddbb',\n module_name: 'apcoin',\n struct_name: 'ApCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 392,\n source: 'native',\n hippo_symbol: 'APC',\n pancake_symbol: 'APC',\n permissioned_listing: false,\n },\n {\n name: 'PancakeSwap Token',\n symbol: 'CAKE',\n official_symbol: 'CAKE',\n coingecko_id: 'pancakeswap-token',\n decimals: 8,\n logo_url: 'https://pancakeswap.finance/images/tokens/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82.svg',\n project_url: 'https://pancakeswap.finance/',\n token_type: {\n type: '0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT',\n account_address: '0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6',\n module_name: 'oft',\n struct_name: 'CakeOFT',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 397,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'CAKE',\n pancake_symbol: 'CAKE',\n },\n {\n name: 'EON',\n symbol: 'EON',\n official_symbol: 'EON',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/EON.svg',\n project_url: 'https://eonlabz.com/',\n token_type: {\n type: '0x389dbbc6884a1d5b1ab4e1df2913a8c1b01251e50aed377554372b2842c5e3ef::EONcoin::EONCoin',\n account_address: '0x389dbbc6884a1d5b1ab4e1df2913a8c1b01251e50aed377554372b2842c5e3ef',\n module_name: 'EONcoin',\n struct_name: 'EONCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 477,\n source: 'native',\n hippo_symbol: 'EON',\n pancake_symbol: 'EON',\n permissioned_listing: false,\n },\n {\n name: 'Mojito',\n symbol: 'MOJO',\n official_symbol: 'MOJO',\n coingecko_id: 'mojito',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MOJO.svg',\n project_url: 'https://www.mojito.markets/',\n token_type: {\n type: '0x881ac202b1f1e6ad4efcff7a1d0579411533f2502417a19211cfc49751ddb5f4::coin::MOJO',\n account_address: '0x881ac202b1f1e6ad4efcff7a1d0579411533f2502417a19211cfc49751ddb5f4',\n module_name: 'coin',\n struct_name: 'MOJO',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 551,\n source: 'native',\n hippo_symbol: 'MOJO',\n pancake_symbol: 'MOJO',\n permissioned_listing: false,\n },\n {\n name: 'USD Coin',\n symbol: 'devUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetUSDC',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetUSDC',\n },\n extensions: {\n data: [],\n },\n unique_index: 553,\n source: 'native',\n hippo_symbol: 'devUSDC',\n pancake_symbol: 'devUSDC',\n permissioned_listing: false,\n },\n {\n name: 'Doglaika Coin',\n symbol: 'DLC',\n official_symbol: 'DLC',\n coingecko_id: 'doglaikacoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DLC.svg',\n project_url: 'http://linktr.ee/doglaikacoin',\n token_type: {\n type: '0x84edd115c901709ef28f3cb66a82264ba91bfd24789500b6fd34ab9e8888e272::coin::DLC',\n account_address: '0x84edd115c901709ef28f3cb66a82264ba91bfd24789500b6fd34ab9e8888e272',\n module_name: 'coin',\n struct_name: 'DLC',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 591,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'DLC',\n pancake_symbol: 'DLC',\n },\n {\n name: 'Bitcoin',\n symbol: 'devBTC',\n official_symbol: 'BTC',\n coingecko_id: 'bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BTC.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetBTC',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetBTC',\n },\n extensions: {\n data: [],\n },\n unique_index: 662,\n source: 'native',\n hippo_symbol: 'devBTC',\n pancake_symbol: 'devBTC',\n permissioned_listing: false,\n },\n {\n name: 'The People',\n symbol: 'People',\n official_symbol: 'People',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/ThePeopleAPT/the_peoplemove/main/Logo.png',\n project_url: 'https://thepeopleapt.xyz/',\n token_type: {\n type: '0x5a1e84cdd217034d764abb91bf20aa0536c5a8c900831a37b393fe3af98c3f55::thepeoplecoin::The_People',\n account_address: '0x5a1e84cdd217034d764abb91bf20aa0536c5a8c900831a37b393fe3af98c3f55',\n module_name: 'thepeoplecoin',\n struct_name: 'The_People',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 691,\n source: 'native',\n hippo_symbol: 'People',\n pancake_symbol: 'People',\n permissioned_listing: false,\n },\n {\n name: 'AnimeSwap Coin',\n symbol: 'ANI',\n official_symbol: 'ANI',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ANI.png',\n project_url: 'http://animeswap.org/',\n token_type: {\n type: '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::AnimeCoin::ANI',\n account_address: '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c',\n module_name: 'AnimeCoin',\n struct_name: 'ANI',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 712,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ANI',\n pancake_symbol: 'ANI',\n },\n {\n name: 'Abel Coin',\n symbol: 'ABEL',\n official_symbol: 'ABEL',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ABEL.svg',\n project_url: 'https://www.abelfinance.xyz/',\n token_type: {\n type: '0x7c0322595a73b3fc53bb166f5783470afeb1ed9f46d1176db62139991505dc61::abel_coin::AbelCoin',\n account_address: '0x7c0322595a73b3fc53bb166f5783470afeb1ed9f46d1176db62139991505dc61',\n module_name: 'abel_coin',\n struct_name: 'AbelCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 790,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ABEL',\n pancake_symbol: 'ABEL',\n },\n {\n name: 'SPRING',\n symbol: 'SPRING',\n official_symbol: 'SPRING',\n coingecko_id: 'spring',\n decimals: 9,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SPRING.webp',\n project_url: 'https://springers.co.in/',\n token_type: {\n type: '0x7bdeaba6f037caf06bb5b2d57df9ee03a07e2a9df45b338ef3deb44d16c01d10::spring_coin::Spring_Coin',\n account_address: '0x7bdeaba6f037caf06bb5b2d57df9ee03a07e2a9df45b338ef3deb44d16c01d10',\n module_name: 'spring_coin',\n struct_name: 'Spring_Coin',\n },\n extensions: {\n data: [],\n },\n unique_index: 797,\n source: 'native',\n hippo_symbol: 'SPRING',\n pancake_symbol: 'SPRING',\n permissioned_listing: false,\n },\n {\n name: 'BlueMove',\n symbol: 'MOVE',\n official_symbol: 'MOVE',\n coingecko_id: 'bluemove',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MOVE.svg',\n project_url: 'https://bluemove.net/',\n token_type: {\n type: '0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb::move_coin::MoveCoin',\n account_address: '0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb',\n module_name: 'move_coin',\n struct_name: 'MoveCoin',\n },\n extensions: {\n data: [],\n },\n unique_index: 912,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'MOVE',\n pancake_symbol: 'MOVE',\n },\n {\n name: 'Tether',\n symbol: 'devUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetUSDT',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetUSDT',\n },\n extensions: {\n data: [],\n },\n unique_index: 923,\n source: 'native',\n hippo_symbol: 'devUSDT',\n pancake_symbol: 'devUSDT',\n permissioned_listing: false,\n },\n {\n name: 'AptosLaunch Token',\n symbol: 'ALT',\n official_symbol: 'ALT',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/Aptoslaunchlogob.svg',\n project_url: 'https://aptoslaunch.io',\n token_type: {\n type: '0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e::aptos_launch_token::AptosLaunchToken',\n account_address: '0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e',\n module_name: 'aptos_launch_token',\n struct_name: 'AptosLaunchToken',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 928,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ALT',\n pancake_symbol: 'ALT',\n },\n {\n name: 'AlpacaINU Coin',\n symbol: 'ALI',\n official_symbol: 'ALI',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ALI.svg',\n project_url: 'https://twitter.com/AlpacaINU',\n token_type: {\n type: '0x27975005fd8b836a905dc7f81c51f89e76091a4d0c4d694265f6eae0c05cb400::proton_a5d::PROTON_E54',\n account_address: '0x27975005fd8b836a905dc7f81c51f89e76091a4d0c4d694265f6eae0c05cb400',\n module_name: 'coin',\n struct_name: 'ALI',\n },\n extensions: {\n data: [],\n },\n unique_index: 937,\n source: 'native',\n hippo_symbol: 'ALI',\n pancake_symbol: 'ALI',\n permissioned_listing: false,\n },\n {\n name: 'Tortuga Staked Aptos',\n symbol: 'tAPT',\n official_symbol: 'tAPT',\n coingecko_id: 'tortuga-staked-aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/TortugaStakedAptos.png',\n project_url: 'https://tortuga.finance/',\n token_type: {\n type: '0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114::staked_aptos_coin::StakedAptosCoin',\n account_address: '0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114',\n module_name: 'staked_aptos_coin',\n struct_name: 'StakedAptosCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 952,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'tAPT',\n pancake_symbol: 'tAPT',\n },\n {\n name: 'AptSwap Governance Token',\n symbol: 'APTSWAP',\n official_symbol: 'APTSWAP',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/AptSwap.svg',\n project_url: 'http://aptswap.io',\n token_type: {\n type: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf::AptSwap::AptSwapGovernance',\n account_address: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf',\n module_name: 'AptSwap',\n struct_name: 'AptSwapGovernance',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 971,\n source: 'native',\n hippo_symbol: 'APTSWAP',\n pancake_symbol: 'APTSWAP',\n permissioned_listing: false,\n },\n {\n name: 'USD Coin (Wormhole)',\n symbol: 'USDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T',\n account_address: '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2001,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wUSDC',\n pancake_symbol: 'whUSDC',\n },\n {\n name: 'Tether USD (Wormhole)',\n symbol: 'USDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852::coin::T',\n account_address: '0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2002,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wUSDT',\n pancake_symbol: 'whUSDT',\n },\n {\n name: 'Wrapped BTC (Wormhole)',\n symbol: 'WBTC',\n official_symbol: 'WBTC',\n coingecko_id: 'wrapped-bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BTC.webp',\n project_url: '',\n token_type: {\n type: '0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e::coin::T',\n account_address: '0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2003,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWBTC',\n pancake_symbol: 'whWBTC',\n },\n {\n name: 'Wrapped Ether (Wormhole)',\n symbol: 'WETH',\n official_symbol: 'WETH',\n coingecko_id: 'weth',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: '',\n token_type: {\n type: '0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb::coin::T',\n account_address: '0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2004,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWETH',\n pancake_symbol: 'whWETH',\n },\n {\n name: 'Dai Stablecoin (Wormhole)',\n symbol: 'DAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.webp',\n project_url: '',\n token_type: {\n type: '0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c::coin::T',\n account_address: '0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2005,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wDAI',\n pancake_symbol: 'whDAI',\n },\n {\n name: 'BUSD Token (Wormhole)',\n symbol: 'BUSD',\n official_symbol: 'BUSD',\n coingecko_id: 'binance-usd',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BUSD.webp',\n project_url: '',\n token_type: {\n type: '0xccc9620d38c4f3991fa68a03ad98ef3735f18d04717cb75d7a1300dd8a7eed75::coin::T',\n account_address: '0xccc9620d38c4f3991fa68a03ad98ef3735f18d04717cb75d7a1300dd8a7eed75',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2006,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wBUSD',\n pancake_symbol: 'whBUSD',\n },\n {\n name: 'Wrapped BNB (Wormhole)',\n symbol: 'WBNB',\n official_symbol: 'WBNB',\n coingecko_id: 'binancecoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BNB.webp',\n project_url: '',\n token_type: {\n type: '0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86::coin::T',\n account_address: '0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2009,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWBNB',\n pancake_symbol: 'whWBNB',\n },\n {\n name: 'SOL (Wormhole)',\n symbol: 'SOL',\n official_symbol: 'SOL',\n coingecko_id: 'solana',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SOL.webp',\n project_url: '',\n token_type: {\n type: '0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T',\n account_address: '0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-solana']],\n },\n unique_index: 2011,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSOL',\n pancake_symbol: 'whSOL',\n },\n {\n name: 'Tether USD',\n symbol: 'USDTbs',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xacd014e8bdf395fa8497b6d585b164547a9d45269377bdf67c96c541b7fec9ed::coin::T',\n account_address: '0xacd014e8bdf395fa8497b6d585b164547a9d45269377bdf67c96c541b7fec9ed',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-bsc']],\n },\n unique_index: 2050,\n source: 'wormhole-bsc',\n permissioned_listing: true,\n hippo_symbol: 'USDTbs',\n pancake_symbol: 'USDTbs',\n },\n {\n name: 'USD Coin (Wormhole Solana)',\n symbol: 'USDCso',\n official_symbol: 'USDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080::coin::T',\n account_address: '0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-solana']],\n },\n unique_index: 2113,\n source: 'wormhole-solana',\n permissioned_listing: true,\n hippo_symbol: 'USDCso',\n pancake_symbol: 'USDCso',\n },\n {\n name: 'USD Coin (Wormhole Polygon)',\n symbol: 'USDCpo',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e::coin::T',\n account_address: '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-polygon']],\n },\n unique_index: 2171,\n source: 'wormhole-polygon',\n permissioned_listing: true,\n hippo_symbol: 'USDCpo',\n pancake_symbol: 'USDCpo',\n },\n {\n name: 'USD Coin (Wormhole, BSC)',\n symbol: 'USDCbs',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595::coin::T',\n account_address: '0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-bsc']],\n },\n unique_index: 2202,\n source: 'wormhole-bsc',\n permissioned_listing: true,\n hippo_symbol: 'USDCbs',\n pancake_symbol: 'USDCbs',\n },\n {\n name: 'USD Coin (Wormhole Avalanche)',\n symbol: 'USDCav',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff::coin::T',\n account_address: '0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-avalanche']],\n },\n unique_index: 2304,\n source: 'wormhole-avalanche',\n permissioned_listing: true,\n hippo_symbol: 'USDCav',\n pancake_symbol: 'USDCav',\n },\n {\n name: 'Wrapped AVAX (Wormhole)',\n symbol: 'WAVAX',\n official_symbol: 'WAVAX',\n coingecko_id: 'avalanche-2',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/AVAX.webp',\n project_url: '',\n token_type: {\n type: '0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f::coin::T',\n account_address: '0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2332,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWAVAX',\n pancake_symbol: 'whWAVAX',\n },\n {\n name: 'SWEAT',\n symbol: 'SWEAT',\n official_symbol: 'SWEAT',\n coingecko_id: 'sweatcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SWEAT.webp',\n project_url: '',\n token_type: {\n type: '0x9aa4c03344444b53f4d9b1bca229ed2ac47504e3ea6cd0683ebdc0c5ecefd693::coin::T',\n account_address: '0x9aa4c03344444b53f4d9b1bca229ed2ac47504e3ea6cd0683ebdc0c5ecefd693',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2409,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSWEAT',\n pancake_symbol: 'whSWEAT',\n },\n {\n name: 'NEAR (Wormhole)',\n symbol: 'NEAR',\n official_symbol: 'NEAR',\n coingecko_id: 'near',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/NEAR.webp',\n project_url: '',\n token_type: {\n type: '0x394205c024d8e932832deef4cbfc7d3bb17ff2e9dc184fa9609405c2836b94aa::coin::T',\n account_address: '0x394205c024d8e932832deef4cbfc7d3bb17ff2e9dc184fa9609405c2836b94aa',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2492,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wNEAR',\n pancake_symbol: 'whNEAR',\n },\n {\n name: 'Nexum Coin',\n symbol: 'NEXM',\n official_symbol: 'NEXM',\n coingecko_id: 'nexum',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/NEXM.webp',\n project_url: '',\n token_type: {\n type: '0x1f9dca8eb42832b9ea07a804d745ef08833051e0c75c45b82665ef6f6e7fac32::coin::T',\n account_address: '0x1f9dca8eb42832b9ea07a804d745ef08833051e0c75c45b82665ef6f6e7fac32',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2527,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wNEXM',\n pancake_symbol: 'whNEXM',\n },\n {\n name: 'SushiToken (Wormhole)',\n symbol: 'SUSHI',\n official_symbol: 'SUSHI',\n coingecko_id: 'sushi',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SUSHI.webp',\n project_url: '',\n token_type: {\n type: '0x2305dd96edd8debb5a2049be54379c74e61b37ceb54a49bd7dee4726d2a6b689::coin::T',\n account_address: '0x2305dd96edd8debb5a2049be54379c74e61b37ceb54a49bd7dee4726d2a6b689',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2700,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSUSHI',\n pancake_symbol: 'whSUSHI',\n },\n {\n name: 'Celo (Wormhole)',\n symbol: 'CELO',\n official_symbol: 'CELO',\n coingecko_id: 'celo',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/CELO.webp',\n project_url: '',\n token_type: {\n type: '0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112::coin::T',\n account_address: '0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2801,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wCELO',\n pancake_symbol: 'whCELO',\n },\n {\n name: 'FTX Token',\n symbol: 'FTT',\n official_symbol: 'FTT',\n coingecko_id: 'ftx-token',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/FTXToken.webp',\n project_url: '',\n token_type: {\n type: '0x419d16ebaeda8dc374b1178a61d24fb699799d55a3f475f427998769c537b51b::coin::T',\n account_address: '0x419d16ebaeda8dc374b1178a61d24fb699799d55a3f475f427998769c537b51b',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2971,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wFTT',\n pancake_symbol: 'whFTT',\n },\n {\n name: 'Chain',\n symbol: 'XCN',\n official_symbol: 'XCN',\n coingecko_id: 'chain-2',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/XCN.webp',\n project_url: '',\n token_type: {\n type: '0xcefd39b563951a9ec2670aa57086f9adb3493671368ea60ff99e0bc98f697bb5::coin::T',\n account_address: '0xcefd39b563951a9ec2670aa57086f9adb3493671368ea60ff99e0bc98f697bb5',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2991,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wXCN',\n pancake_symbol: 'whXCN',\n },\n {\n name: 'USD Coin (LayerZero)',\n symbol: 'zUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'USDC',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3001,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zUSDC',\n pancake_symbol: 'lzUSDC',\n },\n {\n name: 'USD Tether (LayerZero)',\n symbol: 'zUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDT',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'USDT',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3002,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zUSDT',\n pancake_symbol: 'lzUSDT',\n },\n {\n name: 'Wrapped Ether (LayerZero)',\n symbol: 'zWETH',\n official_symbol: 'WETH',\n coingecko_id: 'weth',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::WETH',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'WETH',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3004,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zWETH',\n pancake_symbol: 'lzWETH',\n },\n {\n name: 'USD Coin (Celer)',\n symbol: 'ceUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::UsdcCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'UsdcCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4001,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceUSDC',\n pancake_symbol: 'ceUSDC',\n },\n {\n name: 'Tether USD (Celer)',\n symbol: 'ceUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::UsdtCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'UsdtCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4002,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceUSDT',\n pancake_symbol: 'ceUSDT',\n },\n {\n name: 'Wrapped BTC (Celer)',\n symbol: 'ceWBTC',\n official_symbol: 'WBTC',\n coingecko_id: 'wrapped-bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WBTC.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WbtcCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'WbtcCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4003,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceWBTC',\n pancake_symbol: 'ceWBTC',\n },\n {\n name: 'Wrapped Ether (Celer)',\n symbol: 'ceWETH',\n official_symbol: 'WETH',\n coingecko_id: 'ethereum',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WethCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'WethCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4004,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceWETH',\n pancake_symbol: 'ceWETH',\n },\n {\n name: 'Dai Stablecoin (Celer)',\n symbol: 'ceDAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::DaiCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'DaiCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4005,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceDAI',\n pancake_symbol: 'ceDAI',\n },\n {\n name: 'Binance Coin (Celer)',\n symbol: 'ceBNB',\n official_symbol: 'BNB',\n coingecko_id: 'binancecoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BNB.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BnbCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'BnbCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4113,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceBNB',\n pancake_symbol: 'ceBNB',\n },\n {\n name: 'Binance USD (Celer)',\n symbol: 'ceBUSD',\n official_symbol: 'BUSD',\n coingecko_id: 'binance-usd',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BUSD.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BusdCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'BusdCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4119,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceBUSD',\n pancake_symbol: 'ceBUSD',\n },\n {\n name: 'XBTC',\n symbol: 'XBTC',\n official_symbol: 'XBTC',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/XBTC.svg',\n project_url: 'https://github.com/OmniBTC/OmniBridge',\n token_type: {\n type: '0x3b0a7c06837e8fbcce41af0e629fdc1f087b06c06ff9e86f81910995288fd7fb::xbtc::XBTC',\n account_address: '0x3b0a7c06837e8fbcce41af0e629fdc1f087b06c06ff9e86f81910995288fd7fb',\n module_name: 'xbtc',\n struct_name: 'XBTC',\n },\n extensions: {\n data: [],\n },\n unique_index: 5003,\n source: 'omnibridge',\n permissioned_listing: true,\n hippo_symbol: 'XBTC',\n pancake_symbol: 'XBTC',\n },\n {\n name: 'Aries Aptos Coin LP Token',\n symbol: 'ar-APT',\n official_symbol: 'aAPT',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-APT.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0x1::aptos_coin::AptosCoin>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0x1::aptos_coin::AptosCoin>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15338,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-APT',\n pancake_symbol: 'ar-APT',\n },\n {\n name: 'Aries Solana (Wormhole) LP Token',\n symbol: 'ar-SOL',\n official_symbol: 'aSOL',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-SOL.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15339,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-SOL',\n pancake_symbol: 'ar-SOL',\n },\n {\n name: 'Aries USDC (Layerzero) LP Token',\n symbol: 'ar-zUSDC',\n official_symbol: 'aUSDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-USDC.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15340,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-zUSDC',\n pancake_symbol: 'ar-zUSDC',\n },\n {\n name: 'Aries USDC (Wormhole) LP Token',\n symbol: 'ar-USDC',\n official_symbol: 'aUSDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-USDC.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15341,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-USDC',\n pancake_symbol: 'ar-USDC',\n },\n]\n"]}
1
+ {"version":3,"file":"coin.js","sourceRoot":"","sources":["../../../src/aptos/ext/coin.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPriceByType } from '@sentio/sdk/utils'\nimport { CHAIN_IDS } from '@sentio/sdk'\nimport { Status, ClientError } from 'nice-grpc-common'\nimport fetch from 'node-fetch'\n\nconst WHITELISTED_COINS = new Map<string, SimpleCoinInfo>()\n\nexport interface SimpleCoinInfo {\n token_type: { type: string; account_address: string }\n symbol: string\n decimals: number\n bridge: string\n}\n\nexport async function initCoinList() {\n let list = DEFAULT_LIST\n try {\n const resp = await fetch(\n 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/src/defaultList.mainnet.json'\n )\n list = (await resp.json()) as any[]\n } catch (e) {\n console.warn(\"Can't not fetch newest coin list, use default list\")\n }\n\n for (const info of list) {\n let bridge = 'native'\n if (info.name.includes('Celer')) {\n bridge = 'Celer'\n }\n if (info.name.includes('LayerZero')) {\n bridge = 'LayerZero'\n }\n if (info.name.includes('Wormhole')) {\n bridge = 'Wormhole'\n }\n WHITELISTED_COINS.set(info.token_type.type, { ...info, bridge })\n }\n}\n\nexport function whitelistCoins() {\n return WHITELISTED_COINS\n}\n\nexport function whiteListed(type: string): boolean {\n return WHITELISTED_COINS.has(type)\n}\n\nexport function getCoinInfo(type: string): SimpleCoinInfo {\n const r = WHITELISTED_COINS.get(type)\n if (!r) {\n const parts = type.split('::')\n // TDDO retrive from network\n return {\n token_type: { type: type, account_address: parts[0] },\n symbol: parts[2],\n decimals: 1,\n bridge: 'native',\n }\n }\n return r\n}\n\nexport async function getPrice(coinType: string, timestamp: number): Promise<number> {\n if (!whiteListed(coinType)) {\n return 0.0\n }\n const date = new Date(timestamp / 1000)\n try {\n return (await getPriceByType(CHAIN_IDS.APTOS_MAINNET, coinType, date)) || 0\n } catch (error) {\n if (error instanceof ClientError && error.code === Status.NOT_FOUND) {\n return 0\n }\n console.log(JSON.stringify(error))\n throw error\n }\n}\n\nexport async function calculateValueInUsd(n: bigint, coinInfo: SimpleCoinInfo, timestamp: number | string) {\n if (typeof timestamp === 'string') {\n timestamp = parseInt(timestamp)\n }\n const price = await getPrice(coinInfo.token_type.type, timestamp)\n const amount = n.scaleDown(coinInfo.decimals)\n return amount.multipliedBy(price)\n}\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nconst DEFAULT_LIST = [\n {\n name: 'Aptos Coin',\n symbol: 'APT',\n official_symbol: 'APT',\n coingecko_id: 'aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APT.webp',\n project_url: 'https://aptoslabs.com/',\n token_type: {\n type: '0x1::aptos_coin::AptosCoin',\n account_address: '0x1',\n module_name: 'aptos_coin',\n struct_name: 'AptosCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 1,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'APT',\n pancake_symbol: 'APT',\n },\n {\n name: 'Meeiro',\n symbol: 'MEE',\n official_symbol: 'MEE',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MEE.svg',\n project_url: 'https://meeiro.xyz',\n token_type: {\n type: '0xe9c192ff55cffab3963c695cff6dbf9dad6aff2bb5ac19a6415cad26a81860d9::mee_coin::MeeCoin',\n account_address: '0xe9c192ff55cffab3963c695cff6dbf9dad6aff2bb5ac19a6415cad26a81860d9',\n module_name: 'mee_coin',\n struct_name: 'MeeCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 101,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'MEE',\n pancake_symbol: 'MEE',\n },\n {\n name: 'Ditto Staked Aptos',\n symbol: 'stAPT',\n official_symbol: 'stAPT',\n coingecko_id: 'ditto-staked-aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DittoStakedAptos.svg',\n project_url: 'https://www.dittofinance.io/',\n token_type: {\n type: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::staked_coin::StakedAptos',\n account_address: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5',\n module_name: 'staked_coin',\n struct_name: 'StakedAptos',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 156,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'stAPT',\n pancake_symbol: 'stAPT',\n },\n {\n name: 'Ditto Discount Token',\n symbol: 'DTO',\n official_symbol: 'DTO',\n coingecko_id: 'ditto-discount-token',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DTO.svg',\n project_url: 'https://www.dittofinance.io/',\n token_type: {\n type: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5::ditto_discount_coin::DittoDiscountCoin',\n account_address: '0xd11107bdf0d6d7040c6c0bfbdecb6545191fdf13e8d8d259952f53e1713f61b5',\n module_name: 'ditto_discount_coin',\n struct_name: 'DittoDiscountCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 191,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'DTO',\n pancake_symbol: 'DTO',\n },\n {\n name: 'DAI',\n symbol: 'devDAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetDAI',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetDAI',\n },\n extensions: {\n data: [],\n },\n unique_index: 213,\n source: 'native',\n hippo_symbol: 'devDAI',\n pancake_symbol: 'devDAI',\n permissioned_listing: false,\n },\n {\n name: 'Aptoge',\n symbol: 'APTOGE',\n official_symbol: 'APTOGE',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APTOGE.svg',\n project_url: 'https://aptoge.com',\n token_type: {\n type: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf::Aptoge::Aptoge',\n account_address: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf',\n module_name: 'Aptoge',\n struct_name: 'Aptoge',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 231,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'APTOGE',\n pancake_symbol: 'APTOGE',\n },\n {\n name: 'Eternal Token',\n symbol: 'ETERN',\n official_symbol: 'ETERN',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ETERN.svg',\n project_url: 'https://eternalfinance.io',\n token_type: {\n type: '0x25a64579760a4c64be0d692327786a6375ec80740152851490cfd0b53604cf95::coin::ETERN',\n account_address: '0x25a64579760a4c64be0d692327786a6375ec80740152851490cfd0b53604cf95',\n module_name: 'coin',\n struct_name: 'ETERN',\n },\n extensions: {\n data: [],\n },\n unique_index: 256,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ETERN',\n pancake_symbol: 'ETERN',\n },\n {\n name: 'Argo USD',\n symbol: 'USDA',\n official_symbol: 'USDA',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDA.svg',\n project_url: 'https://argo.fi/',\n token_type: {\n type: '0x1000000fa32d122c18a6a31c009ce5e71674f22d06a581bb0a15575e6addadcc::usda::USDA',\n account_address: '0x1000000fa32d122c18a6a31c009ce5e71674f22d06a581bb0a15575e6addadcc',\n module_name: 'usda',\n struct_name: 'USDA',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 351,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'USDA',\n pancake_symbol: 'USDA',\n },\n {\n name: 'APass Coin',\n symbol: 'APC',\n official_symbol: 'APC',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/APC.svg',\n project_url: 'https://aptpp.com',\n token_type: {\n type: '0x777821c78442e17d82c3d7a371f42de7189e4248e529fe6eee6bca40ddbb::apcoin::ApCoin',\n account_address: '0x777821c78442e17d82c3d7a371f42de7189e4248e529fe6eee6bca40ddbb',\n module_name: 'apcoin',\n struct_name: 'ApCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 392,\n source: 'native',\n hippo_symbol: 'APC',\n pancake_symbol: 'APC',\n permissioned_listing: false,\n },\n {\n name: 'PancakeSwap Token',\n symbol: 'CAKE',\n official_symbol: 'CAKE',\n coingecko_id: 'pancakeswap-token',\n decimals: 8,\n logo_url: 'https://pancakeswap.finance/images/tokens/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82.svg',\n project_url: 'https://pancakeswap.finance/',\n token_type: {\n type: '0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT',\n account_address: '0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6',\n module_name: 'oft',\n struct_name: 'CakeOFT',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 397,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'CAKE',\n pancake_symbol: 'CAKE',\n },\n {\n name: 'EON',\n symbol: 'EON',\n official_symbol: 'EON',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/EON.svg',\n project_url: 'https://eonlabz.com/',\n token_type: {\n type: '0x389dbbc6884a1d5b1ab4e1df2913a8c1b01251e50aed377554372b2842c5e3ef::EONcoin::EONCoin',\n account_address: '0x389dbbc6884a1d5b1ab4e1df2913a8c1b01251e50aed377554372b2842c5e3ef',\n module_name: 'EONcoin',\n struct_name: 'EONCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 477,\n source: 'native',\n hippo_symbol: 'EON',\n pancake_symbol: 'EON',\n permissioned_listing: false,\n },\n {\n name: 'Mojito',\n symbol: 'MOJO',\n official_symbol: 'MOJO',\n coingecko_id: 'mojito',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MOJO.svg',\n project_url: 'https://www.mojito.markets/',\n token_type: {\n type: '0x881ac202b1f1e6ad4efcff7a1d0579411533f2502417a19211cfc49751ddb5f4::coin::MOJO',\n account_address: '0x881ac202b1f1e6ad4efcff7a1d0579411533f2502417a19211cfc49751ddb5f4',\n module_name: 'coin',\n struct_name: 'MOJO',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 551,\n source: 'native',\n hippo_symbol: 'MOJO',\n pancake_symbol: 'MOJO',\n permissioned_listing: false,\n },\n {\n name: 'USD Coin',\n symbol: 'devUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetUSDC',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetUSDC',\n },\n extensions: {\n data: [],\n },\n unique_index: 553,\n source: 'native',\n hippo_symbol: 'devUSDC',\n pancake_symbol: 'devUSDC',\n permissioned_listing: false,\n },\n {\n name: 'Doglaika Coin',\n symbol: 'DLC',\n official_symbol: 'DLC',\n coingecko_id: 'doglaikacoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DLC.svg',\n project_url: 'http://linktr.ee/doglaikacoin',\n token_type: {\n type: '0x84edd115c901709ef28f3cb66a82264ba91bfd24789500b6fd34ab9e8888e272::coin::DLC',\n account_address: '0x84edd115c901709ef28f3cb66a82264ba91bfd24789500b6fd34ab9e8888e272',\n module_name: 'coin',\n struct_name: 'DLC',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 591,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'DLC',\n pancake_symbol: 'DLC',\n },\n {\n name: 'Bitcoin',\n symbol: 'devBTC',\n official_symbol: 'BTC',\n coingecko_id: 'bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BTC.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetBTC',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetBTC',\n },\n extensions: {\n data: [],\n },\n unique_index: 662,\n source: 'native',\n hippo_symbol: 'devBTC',\n pancake_symbol: 'devBTC',\n permissioned_listing: false,\n },\n {\n name: 'The People',\n symbol: 'People',\n official_symbol: 'People',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/ThePeopleAPT/the_peoplemove/main/Logo.png',\n project_url: 'https://thepeopleapt.xyz/',\n token_type: {\n type: '0x5a1e84cdd217034d764abb91bf20aa0536c5a8c900831a37b393fe3af98c3f55::thepeoplecoin::The_People',\n account_address: '0x5a1e84cdd217034d764abb91bf20aa0536c5a8c900831a37b393fe3af98c3f55',\n module_name: 'thepeoplecoin',\n struct_name: 'The_People',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 691,\n source: 'native',\n hippo_symbol: 'People',\n pancake_symbol: 'People',\n permissioned_listing: false,\n },\n {\n name: 'AnimeSwap Coin',\n symbol: 'ANI',\n official_symbol: 'ANI',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ANI.png',\n project_url: 'http://animeswap.org/',\n token_type: {\n type: '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::AnimeCoin::ANI',\n account_address: '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c',\n module_name: 'AnimeCoin',\n struct_name: 'ANI',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 712,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ANI',\n pancake_symbol: 'ANI',\n },\n {\n name: 'Abel Coin',\n symbol: 'ABEL',\n official_symbol: 'ABEL',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ABEL.svg',\n project_url: 'https://www.abelfinance.xyz/',\n token_type: {\n type: '0x7c0322595a73b3fc53bb166f5783470afeb1ed9f46d1176db62139991505dc61::abel_coin::AbelCoin',\n account_address: '0x7c0322595a73b3fc53bb166f5783470afeb1ed9f46d1176db62139991505dc61',\n module_name: 'abel_coin',\n struct_name: 'AbelCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 790,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ABEL',\n pancake_symbol: 'ABEL',\n },\n {\n name: 'SPRING',\n symbol: 'SPRING',\n official_symbol: 'SPRING',\n coingecko_id: 'spring',\n decimals: 9,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SPRING.webp',\n project_url: 'https://springers.co.in/',\n token_type: {\n type: '0x7bdeaba6f037caf06bb5b2d57df9ee03a07e2a9df45b338ef3deb44d16c01d10::spring_coin::Spring_Coin',\n account_address: '0x7bdeaba6f037caf06bb5b2d57df9ee03a07e2a9df45b338ef3deb44d16c01d10',\n module_name: 'spring_coin',\n struct_name: 'Spring_Coin',\n },\n extensions: {\n data: [],\n },\n unique_index: 797,\n source: 'native',\n hippo_symbol: 'SPRING',\n pancake_symbol: 'SPRING',\n permissioned_listing: false,\n },\n {\n name: 'BlueMove',\n symbol: 'MOVE',\n official_symbol: 'MOVE',\n coingecko_id: 'bluemove',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/MOVE.svg',\n project_url: 'https://bluemove.net/',\n token_type: {\n type: '0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb::move_coin::MoveCoin',\n account_address: '0x27fafcc4e39daac97556af8a803dbb52bcb03f0821898dc845ac54225b9793eb',\n module_name: 'move_coin',\n struct_name: 'MoveCoin',\n },\n extensions: {\n data: [],\n },\n unique_index: 912,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'MOVE',\n pancake_symbol: 'MOVE',\n },\n {\n name: 'Tether',\n symbol: 'devUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.webp',\n project_url: 'project_url',\n token_type: {\n type: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68::devnet_coins::DevnetUSDT',\n account_address: '0x498d8926f16eb9ca90cab1b3a26aa6f97a080b3fcbe6e83ae150b7243a00fb68',\n module_name: 'devnet_coins',\n struct_name: 'DevnetUSDT',\n },\n extensions: {\n data: [],\n },\n unique_index: 923,\n source: 'native',\n hippo_symbol: 'devUSDT',\n pancake_symbol: 'devUSDT',\n permissioned_listing: false,\n },\n {\n name: 'AptosLaunch Token',\n symbol: 'ALT',\n official_symbol: 'ALT',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/Aptoslaunchlogob.svg',\n project_url: 'https://aptoslaunch.io',\n token_type: {\n type: '0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e::aptos_launch_token::AptosLaunchToken',\n account_address: '0xd0b4efb4be7c3508d9a26a9b5405cf9f860d0b9e5fe2f498b90e68b8d2cedd3e',\n module_name: 'aptos_launch_token',\n struct_name: 'AptosLaunchToken',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 928,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ALT',\n pancake_symbol: 'ALT',\n },\n {\n name: 'AlpacaINU Coin',\n symbol: 'ALI',\n official_symbol: 'ALI',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ALI.svg',\n project_url: 'https://twitter.com/AlpacaINU',\n token_type: {\n type: '0x27975005fd8b836a905dc7f81c51f89e76091a4d0c4d694265f6eae0c05cb400::proton_a5d::PROTON_E54',\n account_address: '0x27975005fd8b836a905dc7f81c51f89e76091a4d0c4d694265f6eae0c05cb400',\n module_name: 'coin',\n struct_name: 'ALI',\n },\n extensions: {\n data: [],\n },\n unique_index: 937,\n source: 'native',\n hippo_symbol: 'ALI',\n pancake_symbol: 'ALI',\n permissioned_listing: false,\n },\n {\n name: 'Tortuga Staked Aptos',\n symbol: 'tAPT',\n official_symbol: 'tAPT',\n coingecko_id: 'tortuga-staked-aptos',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/TortugaStakedAptos.png',\n project_url: 'https://tortuga.finance/',\n token_type: {\n type: '0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114::staked_aptos_coin::StakedAptosCoin',\n account_address: '0x84d7aeef42d38a5ffc3ccef853e1b82e4958659d16a7de736a29c55fbbeb0114',\n module_name: 'staked_aptos_coin',\n struct_name: 'StakedAptosCoin',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 952,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'tAPT',\n pancake_symbol: 'tAPT',\n },\n {\n name: 'AptSwap Governance Token',\n symbol: 'APTSWAP',\n official_symbol: 'APTSWAP',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/AptSwap.svg',\n project_url: 'http://aptswap.io',\n token_type: {\n type: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf::AptSwap::AptSwapGovernance',\n account_address: '0x5c738a5dfa343bee927c39ebe85b0ceb95fdb5ee5b323c95559614f5a77c47cf',\n module_name: 'AptSwap',\n struct_name: 'AptSwapGovernance',\n },\n extensions: {\n data: [['bridge', 'native']],\n },\n unique_index: 971,\n source: 'native',\n hippo_symbol: 'APTSWAP',\n pancake_symbol: 'APTSWAP',\n permissioned_listing: false,\n },\n {\n name: 'USD Coin (Wormhole)',\n symbol: 'USDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T',\n account_address: '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2001,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wUSDC',\n pancake_symbol: 'whUSDC',\n },\n {\n name: 'Tether USD (Wormhole)',\n symbol: 'USDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852::coin::T',\n account_address: '0xa2eda21a58856fda86451436513b867c97eecb4ba099da5775520e0f7492e852',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2002,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wUSDT',\n pancake_symbol: 'whUSDT',\n },\n {\n name: 'Wrapped BTC (Wormhole)',\n symbol: 'WBTC',\n official_symbol: 'WBTC',\n coingecko_id: 'wrapped-bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BTC.webp',\n project_url: '',\n token_type: {\n type: '0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e::coin::T',\n account_address: '0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2003,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWBTC',\n pancake_symbol: 'whWBTC',\n },\n {\n name: 'Wrapped Ether (Wormhole)',\n symbol: 'WETH',\n official_symbol: 'WETH',\n coingecko_id: 'weth',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: '',\n token_type: {\n type: '0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb::coin::T',\n account_address: '0xcc8a89c8dce9693d354449f1f73e60e14e347417854f029db5bc8e7454008abb',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2004,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWETH',\n pancake_symbol: 'whWETH',\n },\n {\n name: 'Dai Stablecoin (Wormhole)',\n symbol: 'DAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.webp',\n project_url: '',\n token_type: {\n type: '0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c::coin::T',\n account_address: '0x407a220699982ebb514568d007938d2447d33667e4418372ffec1ddb24491b6c',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2005,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wDAI',\n pancake_symbol: 'whDAI',\n },\n {\n name: 'BUSD Token (Wormhole)',\n symbol: 'BUSD',\n official_symbol: 'BUSD',\n coingecko_id: 'binance-usd',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BUSD.webp',\n project_url: '',\n token_type: {\n type: '0xccc9620d38c4f3991fa68a03ad98ef3735f18d04717cb75d7a1300dd8a7eed75::coin::T',\n account_address: '0xccc9620d38c4f3991fa68a03ad98ef3735f18d04717cb75d7a1300dd8a7eed75',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2006,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wBUSD',\n pancake_symbol: 'whBUSD',\n },\n {\n name: 'Wrapped BNB (Wormhole)',\n symbol: 'WBNB',\n official_symbol: 'WBNB',\n coingecko_id: 'binancecoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BNB.webp',\n project_url: '',\n token_type: {\n type: '0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86::coin::T',\n account_address: '0x6312bc0a484bc4e37013befc9949df2d7c8a78e01c6fe14a34018449d136ba86',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2009,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWBNB',\n pancake_symbol: 'whWBNB',\n },\n {\n name: 'SOL (Wormhole)',\n symbol: 'SOL',\n official_symbol: 'SOL',\n coingecko_id: 'solana',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SOL.webp',\n project_url: '',\n token_type: {\n type: '0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T',\n account_address: '0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-solana']],\n },\n unique_index: 2011,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSOL',\n pancake_symbol: 'whSOL',\n },\n {\n name: 'Tether USD',\n symbol: 'USDTbs',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xacd014e8bdf395fa8497b6d585b164547a9d45269377bdf67c96c541b7fec9ed::coin::T',\n account_address: '0xacd014e8bdf395fa8497b6d585b164547a9d45269377bdf67c96c541b7fec9ed',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-bsc']],\n },\n unique_index: 2050,\n source: 'wormhole-bsc',\n permissioned_listing: true,\n hippo_symbol: 'USDTbs',\n pancake_symbol: 'USDTbs',\n },\n {\n name: 'USD Coin (Wormhole Solana)',\n symbol: 'USDCso',\n official_symbol: 'USDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080::coin::T',\n account_address: '0xc91d826e29a3183eb3b6f6aa3a722089fdffb8e9642b94c5fcd4c48d035c0080',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-solana']],\n },\n unique_index: 2113,\n source: 'wormhole-solana',\n permissioned_listing: true,\n hippo_symbol: 'USDCso',\n pancake_symbol: 'USDCso',\n },\n {\n name: 'USD Coin (Wormhole Polygon)',\n symbol: 'USDCpo',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e::coin::T',\n account_address: '0xc7160b1c2415d19a88add188ec726e62aab0045f0aed798106a2ef2994a9101e',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-polygon']],\n },\n unique_index: 2171,\n source: 'wormhole-polygon',\n permissioned_listing: true,\n hippo_symbol: 'USDCpo',\n pancake_symbol: 'USDCpo',\n },\n {\n name: 'USD Coin (Wormhole, BSC)',\n symbol: 'USDCbs',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595::coin::T',\n account_address: '0x79a6ed7a0607fdad2d18d67d1a0e552d4b09ebce5951f1e5c851732c02437595',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-bsc']],\n },\n unique_index: 2202,\n source: 'wormhole-bsc',\n permissioned_listing: true,\n hippo_symbol: 'USDCbs',\n pancake_symbol: 'USDCbs',\n },\n {\n name: 'USD Coin (Wormhole Avalanche)',\n symbol: 'USDCav',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff::coin::T',\n account_address: '0x39d84c2af3b0c9895b45d4da098049e382c451ba63bec0ce0396ff7af4bb5dff',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole-avalanche']],\n },\n unique_index: 2304,\n source: 'wormhole-avalanche',\n permissioned_listing: true,\n hippo_symbol: 'USDCav',\n pancake_symbol: 'USDCav',\n },\n {\n name: 'Wrapped AVAX (Wormhole)',\n symbol: 'WAVAX',\n official_symbol: 'WAVAX',\n coingecko_id: 'avalanche-2',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/AVAX.webp',\n project_url: '',\n token_type: {\n type: '0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f::coin::T',\n account_address: '0x5b1bbc25524d41b17a95dac402cf2f584f56400bf5cc06b53c36b331b1ec6e8f',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2332,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wWAVAX',\n pancake_symbol: 'whWAVAX',\n },\n {\n name: 'SWEAT',\n symbol: 'SWEAT',\n official_symbol: 'SWEAT',\n coingecko_id: 'sweatcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SWEAT.webp',\n project_url: '',\n token_type: {\n type: '0x9aa4c03344444b53f4d9b1bca229ed2ac47504e3ea6cd0683ebdc0c5ecefd693::coin::T',\n account_address: '0x9aa4c03344444b53f4d9b1bca229ed2ac47504e3ea6cd0683ebdc0c5ecefd693',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2409,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSWEAT',\n pancake_symbol: 'whSWEAT',\n },\n {\n name: 'NEAR (Wormhole)',\n symbol: 'NEAR',\n official_symbol: 'NEAR',\n coingecko_id: 'near',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/NEAR.webp',\n project_url: '',\n token_type: {\n type: '0x394205c024d8e932832deef4cbfc7d3bb17ff2e9dc184fa9609405c2836b94aa::coin::T',\n account_address: '0x394205c024d8e932832deef4cbfc7d3bb17ff2e9dc184fa9609405c2836b94aa',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2492,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wNEAR',\n pancake_symbol: 'whNEAR',\n },\n {\n name: 'Nexum Coin',\n symbol: 'NEXM',\n official_symbol: 'NEXM',\n coingecko_id: 'nexum',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/NEXM.webp',\n project_url: '',\n token_type: {\n type: '0x1f9dca8eb42832b9ea07a804d745ef08833051e0c75c45b82665ef6f6e7fac32::coin::T',\n account_address: '0x1f9dca8eb42832b9ea07a804d745ef08833051e0c75c45b82665ef6f6e7fac32',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2527,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wNEXM',\n pancake_symbol: 'whNEXM',\n },\n {\n name: 'SushiToken (Wormhole)',\n symbol: 'SUSHI',\n official_symbol: 'SUSHI',\n coingecko_id: 'sushi',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/SUSHI.webp',\n project_url: '',\n token_type: {\n type: '0x2305dd96edd8debb5a2049be54379c74e61b37ceb54a49bd7dee4726d2a6b689::coin::T',\n account_address: '0x2305dd96edd8debb5a2049be54379c74e61b37ceb54a49bd7dee4726d2a6b689',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2700,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wSUSHI',\n pancake_symbol: 'whSUSHI',\n },\n {\n name: 'Celo (Wormhole)',\n symbol: 'CELO',\n official_symbol: 'CELO',\n coingecko_id: 'celo',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/CELO.webp',\n project_url: '',\n token_type: {\n type: '0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112::coin::T',\n account_address: '0xac0c3c35d50f6ef00e3b4db6998732fe9ed6331384925fe8ec95fcd7745a9112',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2801,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wCELO',\n pancake_symbol: 'whCELO',\n },\n {\n name: 'FTX Token',\n symbol: 'FTT',\n official_symbol: 'FTT',\n coingecko_id: 'ftx-token',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/FTXToken.webp',\n project_url: '',\n token_type: {\n type: '0x419d16ebaeda8dc374b1178a61d24fb699799d55a3f475f427998769c537b51b::coin::T',\n account_address: '0x419d16ebaeda8dc374b1178a61d24fb699799d55a3f475f427998769c537b51b',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2971,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wFTT',\n pancake_symbol: 'whFTT',\n },\n {\n name: 'Chain',\n symbol: 'XCN',\n official_symbol: 'XCN',\n coingecko_id: 'chain-2',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/XCN.webp',\n project_url: '',\n token_type: {\n type: '0xcefd39b563951a9ec2670aa57086f9adb3493671368ea60ff99e0bc98f697bb5::coin::T',\n account_address: '0xcefd39b563951a9ec2670aa57086f9adb3493671368ea60ff99e0bc98f697bb5',\n module_name: 'coin',\n struct_name: 'T',\n },\n extensions: {\n data: [['bridge', 'wormhole']],\n },\n unique_index: 2991,\n source: 'wormhole',\n permissioned_listing: true,\n hippo_symbol: 'wXCN',\n pancake_symbol: 'whXCN',\n },\n {\n name: 'USD Coin (LayerZero)',\n symbol: 'zUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'USDC',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3001,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zUSDC',\n pancake_symbol: 'lzUSDC',\n },\n {\n name: 'USD Tether (LayerZero)',\n symbol: 'zUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDT',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'USDT',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3002,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zUSDT',\n pancake_symbol: 'lzUSDT',\n },\n {\n name: 'Wrapped Ether (LayerZero)',\n symbol: 'zWETH',\n official_symbol: 'WETH',\n coingecko_id: 'weth',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: '',\n token_type: {\n type: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::WETH',\n account_address: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa',\n module_name: 'asset',\n struct_name: 'WETH',\n },\n extensions: {\n data: [['bridge', 'layerzero']],\n },\n unique_index: 3004,\n source: 'layerzero',\n permissioned_listing: true,\n hippo_symbol: 'zWETH',\n pancake_symbol: 'lzWETH',\n },\n {\n name: 'USD Coin (Celer)',\n symbol: 'ceUSDC',\n official_symbol: 'USDC',\n coingecko_id: 'usd-coin',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDC.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::UsdcCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'UsdcCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4001,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceUSDC',\n pancake_symbol: 'ceUSDC',\n },\n {\n name: 'Tether USD (Celer)',\n symbol: 'ceUSDT',\n official_symbol: 'USDT',\n coingecko_id: 'tether',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/USDT.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::UsdtCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'UsdtCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4002,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceUSDT',\n pancake_symbol: 'ceUSDT',\n },\n {\n name: 'Wrapped BTC (Celer)',\n symbol: 'ceWBTC',\n official_symbol: 'WBTC',\n coingecko_id: 'wrapped-bitcoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WBTC.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WbtcCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'WbtcCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4003,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceWBTC',\n pancake_symbol: 'ceWBTC',\n },\n {\n name: 'Wrapped Ether (Celer)',\n symbol: 'ceWETH',\n official_symbol: 'WETH',\n coingecko_id: 'ethereum',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/WETH.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::WethCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'WethCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4004,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceWETH',\n pancake_symbol: 'ceWETH',\n },\n {\n name: 'Dai Stablecoin (Celer)',\n symbol: 'ceDAI',\n official_symbol: 'DAI',\n coingecko_id: 'dai',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/DAI.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::DaiCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'DaiCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4005,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceDAI',\n pancake_symbol: 'ceDAI',\n },\n {\n name: 'Binance Coin (Celer)',\n symbol: 'ceBNB',\n official_symbol: 'BNB',\n coingecko_id: 'binancecoin',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BNB.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BnbCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'BnbCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4113,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceBNB',\n pancake_symbol: 'ceBNB',\n },\n {\n name: 'Binance USD (Celer)',\n symbol: 'ceBUSD',\n official_symbol: 'BUSD',\n coingecko_id: 'binance-usd',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/BUSD.svg',\n project_url: 'https://celer.network',\n token_type: {\n type: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d::celer_coin_manager::BusdCoin',\n account_address: '0x8d87a65ba30e09357fa2edea2c80dbac296e5dec2b18287113500b902942929d',\n module_name: 'celer_coin_manager',\n struct_name: 'BusdCoin',\n },\n extensions: {\n data: [['bridge', 'celer']],\n },\n unique_index: 4119,\n source: 'celer',\n permissioned_listing: true,\n hippo_symbol: 'ceBUSD',\n pancake_symbol: 'ceBUSD',\n },\n {\n name: 'XBTC',\n symbol: 'XBTC',\n official_symbol: 'XBTC',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/XBTC.svg',\n project_url: 'https://github.com/OmniBTC/OmniBridge',\n token_type: {\n type: '0x3b0a7c06837e8fbcce41af0e629fdc1f087b06c06ff9e86f81910995288fd7fb::xbtc::XBTC',\n account_address: '0x3b0a7c06837e8fbcce41af0e629fdc1f087b06c06ff9e86f81910995288fd7fb',\n module_name: 'xbtc',\n struct_name: 'XBTC',\n },\n extensions: {\n data: [],\n },\n unique_index: 5003,\n source: 'omnibridge',\n permissioned_listing: true,\n hippo_symbol: 'XBTC',\n pancake_symbol: 'XBTC',\n },\n {\n name: 'Aries Aptos Coin LP Token',\n symbol: 'ar-APT',\n official_symbol: 'aAPT',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-APT.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0x1::aptos_coin::AptosCoin>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0x1::aptos_coin::AptosCoin>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15338,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-APT',\n pancake_symbol: 'ar-APT',\n },\n {\n name: 'Aries Solana (Wormhole) LP Token',\n symbol: 'ar-SOL',\n official_symbol: 'aSOL',\n coingecko_id: '',\n decimals: 8,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-SOL.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0xdd89c0e695df0692205912fb69fc290418bed0dbe6e4573d744a6d5e6bab6c13::coin::T>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15339,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-SOL',\n pancake_symbol: 'ar-SOL',\n },\n {\n name: 'Aries USDC (Layerzero) LP Token',\n symbol: 'ar-zUSDC',\n official_symbol: 'aUSDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-USDC.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15340,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-zUSDC',\n pancake_symbol: 'ar-zUSDC',\n },\n {\n name: 'Aries USDC (Wormhole) LP Token',\n symbol: 'ar-USDC',\n official_symbol: 'aUSDC',\n coingecko_id: '',\n decimals: 6,\n logo_url: 'https://raw.githubusercontent.com/hippospace/aptos-coin-list/main/icons/ar-USDC.svg',\n project_url: 'https://ariesmarkets.xyz/',\n token_type: {\n type: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3::reserve::LP<0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T>',\n account_address: '0x9770fa9c725cbd97eb50b2be5f7416efdfd1f1554beb0750d4dae4c64e860da3',\n module_name: 'reserve',\n struct_name: 'LP<0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T>',\n },\n extensions: {\n data: [\n ['lp', 'aries'],\n ['bridge', 'native'],\n ],\n },\n unique_index: 15341,\n source: 'native',\n permissioned_listing: true,\n hippo_symbol: 'ar-USDC',\n pancake_symbol: 'ar-USDC',\n },\n]\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
3
  "license": "Apache-2.0",
4
- "version": "2.7.2-rc.1",
4
+ "version": "2.7.2-rc.2",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "compile": "tsc && cp src/utils/*.csv lib/utils && cp src/tsup.config.ts lib",
@@ -23,8 +23,8 @@
23
23
  "@project-serum/anchor": "^0.26.0",
24
24
  "@sentio/bigdecimal": "^9.1.1-patch.3",
25
25
  "@sentio/ethers-v6": "^1.0.25",
26
- "@sentio/protos": "^2.7.2-rc.1",
27
- "@sentio/runtime": "^2.7.2-rc.1",
26
+ "@sentio/protos": "^2.7.2-rc.2",
27
+ "@sentio/runtime": "^2.7.2-rc.2",
28
28
  "@solana/web3.js": "^1.73.2",
29
29
  "@types/prettier": "^2.7.2",
30
30
  "aptos-sdk": "npm:aptos@^1.7.1",
@@ -80,5 +80,5 @@
80
80
  "engines": {
81
81
  "node": ">=16"
82
82
  },
83
- "gitHead": "e6d5794ab9fd5bbe3cc4c6545b9d3e24db693f4e"
83
+ "gitHead": "4ee28cb0f7288b7630296933d76d4ec882af76f9"
84
84
  }
@@ -26,14 +26,14 @@ export class AptosDex<T> {
26
26
 
27
27
  constructor(
28
28
  volume: Gauge,
29
- volumeSingle: Gauge,
29
+ // volumeSingle: Gauge,
30
30
  tvlAll: Gauge,
31
31
  tvlByCoin: Gauge,
32
32
  tvlByPool: Gauge,
33
33
  poolAdaptor: PoolAdaptor<T>
34
34
  ) {
35
35
  this.volume = volume
36
- this.volumeSingle = volumeSingle
36
+ // this.volumeSingle = volumeSingle
37
37
  this.tvlAll = tvlAll
38
38
  this.tvlByPool = tvlByPool
39
39
  this.tvlByCoin = tvlByCoin
@@ -48,51 +48,50 @@ export class AptosDex<T> {
48
48
  coinYAmount: bigint,
49
49
  extraLabels?: any
50
50
  ): Promise<BigDecimal> {
51
+ let result = BigDecimal(0)
52
+
51
53
  const whitelistx = whiteListed(coinx)
52
54
  const whitelisty = whiteListed(coiny)
55
+ if (!whitelistx && !whitelisty) {
56
+ return result
57
+ }
53
58
  const coinXInfo = await getCoinInfo(coinx)
54
59
  const coinYInfo = await getCoinInfo(coiny)
55
60
  const timestamp = ctx.transaction.timestamp
56
- let result = new BigDecimal(0.0)
61
+ let resultX = BigDecimal(0)
62
+ let resultY = BigDecimal(0)
57
63
  const pair = await getPair(coinx, coiny)
58
64
  const baseLabels: Record<string, string> = extraLabels ? { ...extraLabels, pair } : { pair }
59
- if (!whitelistx || !whitelisty) {
60
- if (whitelistx) {
61
- result = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)
62
- this.volumeSingle.record(ctx, result, {
63
- ...baseLabels,
64
- coin: coinXInfo.symbol,
65
- type: coinXInfo.token_type.type,
66
- })
67
- }
68
- if (whitelisty) {
69
- result = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)
70
- this.volumeSingle.record(ctx, result, {
71
- ...baseLabels,
72
- coin: coinYInfo.symbol,
73
- type: coinYInfo.token_type.type,
74
- })
75
- }
76
- return result
65
+ if (whitelistx) {
66
+ resultX = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)
77
67
  }
78
-
79
- // Both x and y are whitelisted
80
- let value = await calculateValueInUsd(coinXAmount, coinXInfo, timestamp)
81
- this.volume.record(ctx, value, {
82
- ...baseLabels,
83
- coin: coinXInfo.symbol,
84
- bridge: coinXInfo.bridge,
85
- type: coinXInfo.token_type.type,
86
- })
87
- value = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)
88
- this.volume.record(ctx, value, {
89
- ...baseLabels,
90
- coin: coinYInfo.symbol,
91
- bridge: coinYInfo.bridge,
92
- type: coinYInfo.token_type.type,
93
- })
94
- this.volumeSingle.record(ctx, value, { ...baseLabels, coin: coinYInfo.symbol, type: coinYInfo.token_type.type })
95
- return value
68
+ if (whitelisty) {
69
+ resultY = await calculateValueInUsd(coinYAmount, coinYInfo, timestamp)
70
+ }
71
+ if (resultX.eq(0)) {
72
+ resultX = BigDecimal(resultY)
73
+ }
74
+ if (resultY.eq(0)) {
75
+ resultY = BigDecimal(resultX)
76
+ }
77
+ if (resultX.gt(0)) {
78
+ this.volume.record(ctx, resultX, {
79
+ ...baseLabels,
80
+ coin: coinXInfo.symbol,
81
+ bridge: coinXInfo.bridge,
82
+ type: coinXInfo.token_type.type,
83
+ })
84
+ }
85
+ if (resultY.gt(0)) {
86
+ this.volume.record(ctx, resultY, {
87
+ ...baseLabels,
88
+ coin: coinYInfo.symbol,
89
+ bridge: coinYInfo.bridge,
90
+ type: coinYInfo.token_type.type,
91
+ })
92
+ }
93
+ result = resultX.plus(resultY).div(2)
94
+ return result
96
95
  }
97
96
 
98
97
  async syncPools(
@@ -131,45 +130,39 @@ export class AptosDex<T> {
131
130
  const coinx_amount = this.poolAdaptor.getXReserve(pool.data_decoded)
132
131
  const coiny_amount = this.poolAdaptor.getYReserve(pool.data_decoded)
133
132
 
134
- let poolValue = BigDecimal(0)
133
+ let resultX = BigDecimal(0)
134
+ let resultY = BigDecimal(0)
135
135
 
136
136
  if (whitelistx) {
137
- const value = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp)
138
- poolValue = poolValue.plus(value)
139
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })
140
-
137
+ resultX = await calculateValueInUsd(coinx_amount, coinXInfo, timestamp)
141
138
  let coinXTotal = volumeByCoin.get(coinXInfo.token_type.type)
142
139
  if (!coinXTotal) {
143
- coinXTotal = value
140
+ coinXTotal = resultX
144
141
  } else {
145
- coinXTotal = coinXTotal.plus(value)
142
+ coinXTotal = coinXTotal.plus(resultX)
146
143
  }
147
144
  volumeByCoin.set(coinXInfo.token_type.type, coinXTotal)
148
-
149
- if (!whitelisty) {
150
- poolValue = poolValue.plus(value)
151
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type})
152
- }
153
145
  }
154
146
  if (whitelisty) {
155
- const value = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp)
156
- poolValue = poolValue.plus(value)
157
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinYInfo.token_type.type })
158
-
147
+ resultY = await calculateValueInUsd(coiny_amount, coinYInfo, timestamp)
159
148
  let coinYTotal = volumeByCoin.get(coinYInfo.token_type.type)
160
149
  if (!coinYTotal) {
161
- coinYTotal = value
150
+ coinYTotal = resultY
162
151
  } else {
163
- coinYTotal = coinYTotal.plus(value)
152
+ coinYTotal = coinYTotal.plus(resultY)
164
153
  }
165
154
  volumeByCoin.set(coinYInfo.token_type.type, coinYTotal)
155
+ }
166
156
 
167
- if (!whitelistx) {
168
- tvlAllValue = tvlAllValue.plus(value)
169
- // tvlTotal.record(ctx, value, { pool: poolName, type: coinXInfo.token_type.type })
170
- }
157
+ if (resultX.eq(0)) {
158
+ resultX = BigDecimal(resultY)
159
+ }
160
+ if (resultY.eq(0)) {
161
+ resultY = BigDecimal(resultX)
171
162
  }
172
163
 
164
+ const poolValue = resultX.plus(resultY)
165
+
173
166
  if (poolValue.isGreaterThan(0)) {
174
167
  this.tvlByPool.record(ctx, poolValue, baseLabels)
175
168
  }
@@ -50,6 +50,7 @@ export function getCoinInfo(type: string): SimpleCoinInfo {
50
50
  const r = WHITELISTED_COINS.get(type)
51
51
  if (!r) {
52
52
  const parts = type.split('::')
53
+ // TDDO retrive from network
53
54
  return {
54
55
  token_type: { type: type, account_address: parts[0] },
55
56
  symbol: parts[2],