@sentio/sdk 2.13.0-rc.3 → 2.13.0-rc.4

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.
Files changed (47) hide show
  1. package/lib/aptos/aptos-processor.d.ts +1 -2
  2. package/lib/aptos/aptos-processor.js +6 -14
  3. package/lib/aptos/aptos-processor.js.map +1 -1
  4. package/lib/aptos/builtin/0x1.js +2 -1
  5. package/lib/aptos/builtin/0x1.js.map +1 -1
  6. package/lib/aptos/builtin/0x3.js +2 -1
  7. package/lib/aptos/builtin/0x3.js.map +1 -1
  8. package/lib/aptos/context.d.ts +3 -0
  9. package/lib/aptos/context.js +5 -0
  10. package/lib/aptos/context.js.map +1 -1
  11. package/lib/aptos/ext/aptos-dex.js +1 -2
  12. package/lib/aptos/ext/aptos-dex.js.map +1 -1
  13. package/lib/aptos/move-coder.d.ts +1 -2
  14. package/lib/aptos/move-coder.js +7 -3
  15. package/lib/aptos/move-coder.js.map +1 -1
  16. package/lib/move/abstract-codegen.d.ts +1 -0
  17. package/lib/move/abstract-codegen.js +12 -4
  18. package/lib/move/abstract-codegen.js.map +1 -1
  19. package/lib/sui/builtin/0x1.js +2 -1
  20. package/lib/sui/builtin/0x1.js.map +1 -1
  21. package/lib/sui/builtin/0x2.js +2 -1
  22. package/lib/sui/builtin/0x2.js.map +1 -1
  23. package/lib/sui/builtin/0x3.js +2 -1
  24. package/lib/sui/builtin/0x3.js.map +1 -1
  25. package/lib/sui/context.d.ts +2 -0
  26. package/lib/sui/context.js +3 -0
  27. package/lib/sui/context.js.map +1 -1
  28. package/lib/sui/move-coder.d.ts +2 -3
  29. package/lib/sui/move-coder.js +7 -3
  30. package/lib/sui/move-coder.js.map +1 -1
  31. package/lib/sui/sui-processor.d.ts +2 -0
  32. package/lib/sui/sui-processor.js +4 -2
  33. package/lib/sui/sui-processor.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/aptos/aptos-processor.ts +17 -15
  36. package/src/aptos/builtin/0x1.ts +2 -1
  37. package/src/aptos/builtin/0x3.ts +2 -1
  38. package/src/aptos/context.ts +5 -0
  39. package/src/aptos/ext/aptos-dex.ts +2 -11
  40. package/src/aptos/move-coder.ts +7 -3
  41. package/src/move/abstract-codegen.ts +16 -4
  42. package/src/sui/builtin/0x1.ts +2 -1
  43. package/src/sui/builtin/0x2.ts +2 -1
  44. package/src/sui/builtin/0x3.ts +2 -1
  45. package/src/sui/context.ts +3 -0
  46. package/src/sui/move-coder.ts +8 -4
  47. package/src/sui/sui-processor.ts +5 -3
@@ -2,6 +2,7 @@ import { RecordMetaData } from '@sentio/protos';
2
2
  import { type Labels, BaseContext } from '@sentio/sdk';
3
3
  import { Transaction_UserTransaction } from './move-types.js';
4
4
  import { AptosNetwork } from './network.js';
5
+ import { MoveCoder } from './move-coder.js';
5
6
  export declare class AptosContext extends BaseContext {
6
7
  address: string;
7
8
  network: AptosNetwork;
@@ -9,6 +10,7 @@ export declare class AptosContext extends BaseContext {
9
10
  version: bigint;
10
11
  transaction: Transaction_UserTransaction;
11
12
  eventIndex: number;
13
+ coder: MoveCoder;
12
14
  constructor(moduleName: string, network: AptosNetwork, address: string, version: bigint, transaction: Transaction_UserTransaction, eventIndex: number);
13
15
  getChainId(): string;
14
16
  getMetaData(name: string, labels: Labels): RecordMetaData;
@@ -18,6 +20,7 @@ export declare class AptosResourcesContext extends BaseContext {
18
20
  network: AptosNetwork;
19
21
  version: bigint;
20
22
  timestampInMicros: number;
23
+ coder: MoveCoder;
21
24
  constructor(network: AptosNetwork, address: string, version: bigint, timestampInMicros: number);
22
25
  getChainId(): string;
23
26
  getMetaData(name: string, labels: Labels): RecordMetaData;
@@ -1,5 +1,6 @@
1
1
  import { BaseContext, normalizeLabels } from '@sentio/sdk';
2
2
  import { getChainId } from './network.js';
3
+ import { defaultMoveCoder } from './move-coder.js';
3
4
  export class AptosContext extends BaseContext {
4
5
  address;
5
6
  network;
@@ -7,6 +8,7 @@ export class AptosContext extends BaseContext {
7
8
  version;
8
9
  transaction;
9
10
  eventIndex;
11
+ coder;
10
12
  constructor(moduleName, network, address, version, transaction, eventIndex) {
11
13
  super();
12
14
  this.address = address.toLowerCase();
@@ -14,6 +16,7 @@ export class AptosContext extends BaseContext {
14
16
  this.moduleName = moduleName;
15
17
  this.version = version;
16
18
  this.eventIndex = eventIndex;
19
+ this.coder = defaultMoveCoder(network);
17
20
  if (transaction) {
18
21
  this.transaction = transaction;
19
22
  }
@@ -40,12 +43,14 @@ export class AptosResourcesContext extends BaseContext {
40
43
  network;
41
44
  version;
42
45
  timestampInMicros;
46
+ coder;
43
47
  constructor(network, address, version, timestampInMicros) {
44
48
  super();
45
49
  this.address = address;
46
50
  this.network = network;
47
51
  this.version = version;
48
52
  this.timestampInMicros = timestampInMicros;
53
+ this.coder = defaultMoveCoder(network);
49
54
  }
50
55
  getChainId() {
51
56
  return getChainId(this.network);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/aptos/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAQ;IACf,OAAO,CAAc;IACrB,UAAU,CAAQ;IAClB,OAAO,CAAQ;IACf,WAAW,CAA6B;IACxC,UAAU,CAAQ;IAElB,YACE,UAAkB,EAClB,OAAqB,EACrB,OAAe,EACf,OAAe,EACf,WAAwC,EACxC,UAAkB;QAElB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAQ;IACf,OAAO,CAAc;IACrB,OAAO,CAAQ;IACf,iBAAiB,CAAQ;IAEzB,YAAY,OAAqB,EAAE,OAAe,EAAE,OAAe,EAAE,iBAAyB;QAC5F,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;IAC5C,CAAC;IAED,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, BaseContext, normalizeLabels } from '@sentio/sdk'\nimport { Transaction_UserTransaction } from './move-types.js'\nimport { AptosNetwork, getChainId } from './network.js'\n\nexport class AptosContext extends BaseContext {\n address: string\n network: AptosNetwork\n moduleName: string\n version: bigint\n transaction: Transaction_UserTransaction\n eventIndex: number\n\n constructor(\n moduleName: string,\n network: AptosNetwork,\n address: string,\n version: bigint,\n transaction: Transaction_UserTransaction,\n eventIndex: number\n ) {\n super()\n this.address = address.toLowerCase()\n this.network = network\n this.moduleName = moduleName\n this.version = version\n this.eventIndex = eventIndex\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getChainId(): string {\n return getChainId(this.network)\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: this.version,\n transactionIndex: 0,\n transactionHash: this.transaction?.hash || '', // TODO\n logIndex: this.eventIndex,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n\nexport class AptosResourcesContext extends BaseContext {\n address: string\n network: AptosNetwork\n version: bigint\n timestampInMicros: number\n\n constructor(network: AptosNetwork, address: string, version: bigint, timestampInMicros: number) {\n super()\n this.address = address\n this.network = network\n this.version = version\n this.timestampInMicros = timestampInMicros\n }\n\n getChainId(): string {\n return getChainId(this.network)\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: 'resources',\n blockNumber: this.version,\n transactionIndex: 0,\n transactionHash: '',\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/aptos/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAa,MAAM,iBAAiB,CAAA;AAE7D,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,OAAO,CAAQ;IACf,OAAO,CAAc;IACrB,UAAU,CAAQ;IAClB,OAAO,CAAQ;IACf,WAAW,CAA6B;IACxC,UAAU,CAAQ;IAClB,KAAK,CAAW;IAEhB,YACE,UAAkB,EAClB,OAAqB,EACrB,OAAe,EACf,OAAe,EACf,WAAwC,EACxC,UAAkB;QAElB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;SAC/B;IACH,CAAC;IAED,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,UAAU;YAC7B,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE;YAC7C,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,OAAO,CAAQ;IACf,OAAO,CAAc;IACrB,OAAO,CAAQ;IACf,iBAAiB,CAAQ;IACzB,KAAK,CAAW;IAEhB,YAAY,OAAqB,EAAE,OAAe,EAAE,OAAe,EAAE,iBAAyB;QAC5F,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACxC,CAAC;IAED,UAAU;QACR,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,EAAE;YACnB,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF","sourcesContent":["import { RecordMetaData } from '@sentio/protos'\nimport { type Labels, BaseContext, normalizeLabels } from '@sentio/sdk'\nimport { Transaction_UserTransaction } from './move-types.js'\nimport { AptosNetwork, getChainId } from './network.js'\nimport { defaultMoveCoder, MoveCoder } from './move-coder.js'\n\nexport class AptosContext extends BaseContext {\n address: string\n network: AptosNetwork\n moduleName: string\n version: bigint\n transaction: Transaction_UserTransaction\n eventIndex: number\n coder: MoveCoder\n\n constructor(\n moduleName: string,\n network: AptosNetwork,\n address: string,\n version: bigint,\n transaction: Transaction_UserTransaction,\n eventIndex: number\n ) {\n super()\n this.address = address.toLowerCase()\n this.network = network\n this.moduleName = moduleName\n this.version = version\n this.eventIndex = eventIndex\n this.coder = defaultMoveCoder(network)\n if (transaction) {\n this.transaction = transaction\n }\n }\n\n getChainId(): string {\n return getChainId(this.network)\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.moduleName,\n blockNumber: this.version,\n transactionIndex: 0,\n transactionHash: this.transaction?.hash || '', // TODO\n logIndex: this.eventIndex,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n\nexport class AptosResourcesContext extends BaseContext {\n address: string\n network: AptosNetwork\n version: bigint\n timestampInMicros: number\n coder: MoveCoder\n\n constructor(network: AptosNetwork, address: string, version: bigint, timestampInMicros: number) {\n super()\n this.address = address\n this.network = network\n this.version = version\n this.timestampInMicros = timestampInMicros\n this.coder = defaultMoveCoder(network)\n }\n\n getChainId(): string {\n return getChainId(this.network)\n }\n\n getMetaData(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: 'resources',\n blockNumber: this.version,\n transactionIndex: 0,\n transactionHash: '',\n logIndex: 0,\n chainId: this.getChainId(),\n name: name,\n labels: normalizeLabels(labels),\n }\n }\n}\n"]}
@@ -1,6 +1,5 @@
1
1
  import { BigDecimal } from '@sentio/bigdecimal';
2
2
  import { calculateValueInUsd, getCoinInfo, whitelistCoins, whiteListed } from './coin.js';
3
- import { defaultMoveCoder, } from '@sentio/sdk/aptos';
4
3
  export class AptosDex {
5
4
  poolAdaptor;
6
5
  volume;
@@ -67,7 +66,7 @@ export class AptosDex {
67
66
  return result;
68
67
  }
69
68
  async syncPools(resources, ctx, poolsHandler) {
70
- const pools = defaultMoveCoder().filterAndDecodeResources(this.poolAdaptor.poolTypeName, resources);
69
+ const pools = ctx.coder.filterAndDecodeResources(this.poolAdaptor.poolTypeName, resources);
71
70
  const volumeByCoin = new Map();
72
71
  const timestamp = ctx.timestampInMicros;
73
72
  console.log('num of pools: ', pools.length, ctx.version.toString());
@@ -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 AptosResourcesContext,\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 volumeByCoin: Gauge\n tvlAll: Gauge\n tvlByPool: Gauge\n tvlByCoin: Gauge\n\n constructor(\n volume: Gauge,\n volumeByCoin: Gauge,\n tvlAll: Gauge,\n tvlByCoin: Gauge,\n tvlByPool: Gauge,\n poolAdaptor: PoolAdaptor<T>\n ) {\n this.volume = volume\n this.volumeByCoin = volumeByCoin\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 const total = resultX.plus(resultY)\n if (total.gt(0)) {\n this.volume.record(ctx, total, {\n ...baseLabels,\n bridge: coinXInfo.bridge,\n })\n }\n if (resultX.gt(0)) {\n this.volumeByCoin.record(ctx, resultX, {\n coin: coinXInfo.symbol,\n bridge: coinXInfo.bridge,\n type: coinXInfo.token_type.type,\n })\n }\n if (resultY.gt(0)) {\n this.volumeByCoin.record(ctx, resultY, {\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: AptosResourcesContext,\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"]}
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 { AptosResourcesContext, TypedMoveResource, MoveResource, AptosContext } 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 volumeByCoin: Gauge\n tvlAll: Gauge\n tvlByPool: Gauge\n tvlByCoin: Gauge\n\n constructor(\n volume: Gauge,\n volumeByCoin: Gauge,\n tvlAll: Gauge,\n tvlByCoin: Gauge,\n tvlByPool: Gauge,\n poolAdaptor: PoolAdaptor<T>\n ) {\n this.volume = volume\n this.volumeByCoin = volumeByCoin\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 const total = resultX.plus(resultY)\n if (total.gt(0)) {\n this.volume.record(ctx, total, {\n ...baseLabels,\n bridge: coinXInfo.bridge,\n })\n }\n if (resultX.gt(0)) {\n this.volumeByCoin.record(ctx, resultX, {\n coin: coinXInfo.symbol,\n bridge: coinXInfo.bridge,\n type: coinXInfo.token_type.type,\n })\n }\n if (resultY.gt(0)) {\n this.volumeByCoin.record(ctx, resultY, {\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: AptosResourcesContext,\n poolsHandler?: (pools: TypedMoveResource<T>[]) => Promise<void> | void\n ) {\n const pools: TypedMoveResource<T>[] = ctx.coder.filterAndDecodeResources(this.poolAdaptor.poolTypeName, resources)\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"]}
@@ -11,5 +11,4 @@ export declare class MoveCoder extends AbstractMoveCoder<AptosNetwork, MoveModul
11
11
  filterAndDecodeResources<T>(typeQname: string, resources: MoveResource[]): TypedMoveResource<T>[];
12
12
  decodeFunctionPayload(payload: TransactionPayload_EntryFunctionPayload): TransactionPayload_EntryFunctionPayload;
13
13
  }
14
- export declare const MOVE_CODER: MoveCoder;
15
- export declare function defaultMoveCoder(): MoveCoder;
14
+ export declare function defaultMoveCoder(network?: AptosNetwork): MoveCoder;
@@ -38,8 +38,12 @@ export class MoveCoder extends AbstractMoveCoder {
38
38
  };
39
39
  }
40
40
  }
41
- export const MOVE_CODER = new MoveCoder(AptosNetwork.MAIN_NET);
42
- export function defaultMoveCoder() {
43
- return MOVE_CODER;
41
+ const MOVE_CODER = new MoveCoder(AptosNetwork.MAIN_NET);
42
+ const TESTNET_MOVE_CODER = new MoveCoder(AptosNetwork.TEST_NET);
43
+ export function defaultMoveCoder(network = AptosNetwork.MAIN_NET) {
44
+ if (network == AptosNetwork.MAIN_NET) {
45
+ return MOVE_CODER;
46
+ }
47
+ return TESTNET_MOVE_CODER;
44
48
  }
45
49
  //# sourceMappingURL=move-coder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/aptos/move-coder.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,OAAO,SAAU,SAAQ,iBAA2E;IACxG,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,MAA0B;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtD,OAAM;SACP;QACD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,WAAW,CAAI,KAAY;QACzB,OAAO,IAAI,CAAC,aAAa,CAAI,KAAK,CAA0B,CAAA;IAC9D,CAAC;IACD,qBAAqB,CAAI,SAAiB,EAAE,SAAkB;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAA4B,CAAA;IACpF,CAAC;IACD,cAAc,CAAI,GAAiB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAI,GAAG,CAAC,CAAA;IACnC,CAAC;IACD,wBAAwB,CAAI,SAAiB,EAAE,SAAyB;QACtE,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAQ,CAAA;IAChE,CAAC;IAED,qBAAqB,CAAC,OAAgD;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAEpE,OAAO;YACL,GAAG,OAAO;YACV,iBAAiB,EAAE,gBAAgB;SACP,CAAA;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE9D,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["import {\n Event,\n MoveModuleBytecode,\n MoveResource,\n toInternalModule,\n TransactionPayload_EntryFunctionPayload,\n} from './move-types.js'\n\nimport { TypedEventInstance, TypedFunctionPayload, TypedMoveResource } from './models.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\nimport { AptosNetwork } from './network.js'\nimport { AptosChainAdapter } from './aptos-chain-adapter.js'\n\nexport class MoveCoder extends AbstractMoveCoder<AptosNetwork, MoveModuleBytecode[], Event | MoveResource> {\n constructor(network: AptosNetwork) {\n super(network)\n this.adapter = new AptosChainAdapter()\n }\n\n load(module: MoveModuleBytecode) {\n if (!module.abi) {\n throw Error('Module without abi')\n }\n if (this.contains(module.abi.address, module.abi.name)) {\n return\n }\n this.loadInternal(toInternalModule(module))\n }\n\n decodeEvent<T>(event: Event): TypedEventInstance<T> | undefined {\n return this.decodedStruct<T>(event) as TypedEventInstance<T>\n }\n filterAndDecodeEvents<T>(typeQname: string, resources: Event[]): TypedEventInstance<T>[] {\n return this.filterAndDecodeStruct(typeQname, resources) as TypedEventInstance<T>[]\n }\n decodeResource<T>(res: MoveResource): TypedMoveResource<T> | undefined {\n return this.decodedStruct<T>(res)\n }\n filterAndDecodeResources<T>(typeQname: string, resources: MoveResource[]): TypedMoveResource<T>[] {\n return this.filterAndDecodeStruct(typeQname, resources) as any\n }\n\n decodeFunctionPayload(payload: TransactionPayload_EntryFunctionPayload): TransactionPayload_EntryFunctionPayload {\n const func = this.getMoveFunction(payload.function)\n const params = this.adapter.getMeaningfulFunctionParams(func.params)\n const argumentsDecoded = this.decodeArray(payload.arguments, params)\n\n return {\n ...payload,\n arguments_decoded: argumentsDecoded,\n } as TypedFunctionPayload<any>\n }\n}\n\nexport const MOVE_CODER = new MoveCoder(AptosNetwork.MAIN_NET)\n\nexport function defaultMoveCoder(): MoveCoder {\n return MOVE_CODER\n}\n"]}
1
+ {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/aptos/move-coder.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,gBAAgB,GAEjB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,OAAO,SAAU,SAAQ,iBAA2E;IACxG,YAAY,OAAqB;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,MAA0B;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YACf,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAA;SAClC;QACD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACtD,OAAM;SACP;QACD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,WAAW,CAAI,KAAY;QACzB,OAAO,IAAI,CAAC,aAAa,CAAI,KAAK,CAA0B,CAAA;IAC9D,CAAC;IACD,qBAAqB,CAAI,SAAiB,EAAE,SAAkB;QAC5D,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAA4B,CAAA;IACpF,CAAC;IACD,cAAc,CAAI,GAAiB;QACjC,OAAO,IAAI,CAAC,aAAa,CAAI,GAAG,CAAC,CAAA;IACnC,CAAC;IACD,wBAAwB,CAAI,SAAiB,EAAE,SAAyB;QACtE,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAQ,CAAA;IAChE,CAAC;IAED,qBAAqB,CAAC,OAAgD;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACpE,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAEpE,OAAO;YACL,GAAG,OAAO;YACV,iBAAiB,EAAE,gBAAgB;SACP,CAAA;IAChC,CAAC;CACF;AAED,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AACvD,MAAM,kBAAkB,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;AAE/D,MAAM,UAAU,gBAAgB,CAAC,UAAwB,YAAY,CAAC,QAAQ;IAC5E,IAAI,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE;QACpC,OAAO,UAAU,CAAA;KAClB;IACD,OAAO,kBAAkB,CAAA;AAC3B,CAAC","sourcesContent":["import {\n Event,\n MoveModuleBytecode,\n MoveResource,\n toInternalModule,\n TransactionPayload_EntryFunctionPayload,\n} from './move-types.js'\n\nimport { TypedEventInstance, TypedFunctionPayload, TypedMoveResource } from './models.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\nimport { AptosNetwork } from './network.js'\nimport { AptosChainAdapter } from './aptos-chain-adapter.js'\n\nexport class MoveCoder extends AbstractMoveCoder<AptosNetwork, MoveModuleBytecode[], Event | MoveResource> {\n constructor(network: AptosNetwork) {\n super(network)\n this.adapter = new AptosChainAdapter()\n }\n\n load(module: MoveModuleBytecode) {\n if (!module.abi) {\n throw Error('Module without abi')\n }\n if (this.contains(module.abi.address, module.abi.name)) {\n return\n }\n this.loadInternal(toInternalModule(module))\n }\n\n decodeEvent<T>(event: Event): TypedEventInstance<T> | undefined {\n return this.decodedStruct<T>(event) as TypedEventInstance<T>\n }\n filterAndDecodeEvents<T>(typeQname: string, resources: Event[]): TypedEventInstance<T>[] {\n return this.filterAndDecodeStruct(typeQname, resources) as TypedEventInstance<T>[]\n }\n decodeResource<T>(res: MoveResource): TypedMoveResource<T> | undefined {\n return this.decodedStruct<T>(res)\n }\n filterAndDecodeResources<T>(typeQname: string, resources: MoveResource[]): TypedMoveResource<T>[] {\n return this.filterAndDecodeStruct(typeQname, resources) as any\n }\n\n decodeFunctionPayload(payload: TransactionPayload_EntryFunctionPayload): TransactionPayload_EntryFunctionPayload {\n const func = this.getMoveFunction(payload.function)\n const params = this.adapter.getMeaningfulFunctionParams(func.params)\n const argumentsDecoded = this.decodeArray(payload.arguments, params)\n\n return {\n ...payload,\n arguments_decoded: argumentsDecoded,\n } as TypedFunctionPayload<any>\n }\n}\n\nconst MOVE_CODER = new MoveCoder(AptosNetwork.MAIN_NET)\nconst TESTNET_MOVE_CODER = new MoveCoder(AptosNetwork.TEST_NET)\n\nexport function defaultMoveCoder(network: AptosNetwork = AptosNetwork.MAIN_NET): MoveCoder {\n if (network == AptosNetwork.MAIN_NET) {\n return MOVE_CODER\n }\n return TESTNET_MOVE_CODER\n}\n"]}
@@ -20,6 +20,7 @@ export declare abstract class AbstractCodegen<ModuleTypes, NetworkType> {
20
20
  GENERATE_CLIENT: boolean;
21
21
  GENERATE_ON_ENTRY: boolean;
22
22
  PAYLOAD_OPTIONAL: boolean;
23
+ SYSTEM_MODULES: Set<string>;
23
24
  chainAdapter: ChainAdapter<NetworkType, ModuleTypes>;
24
25
  protected constructor(chainAdapter: ChainAdapter<NetworkType, ModuleTypes>);
25
26
  readModulesFile(fullPath: string): any;
@@ -15,6 +15,7 @@ export class AbstractCodegen {
15
15
  GENERATE_CLIENT = false;
16
16
  GENERATE_ON_ENTRY = true;
17
17
  PAYLOAD_OPTIONAL = false;
18
+ SYSTEM_MODULES = new Set(['0x1', '0x2', '0x3']);
18
19
  chainAdapter;
19
20
  constructor(chainAdapter) {
20
21
  this.chainAdapter = chainAdapter;
@@ -37,9 +38,9 @@ export class AbstractCodegen {
37
38
  fs.mkdirSync(outputDir, { recursive: true });
38
39
  const loader = new AccountRegister();
39
40
  // when generating user code, don't need to generate framework account
40
- loader.accountImports.set('0x1', new AccountModulesImportInfo('0x1', '0x1'));
41
- loader.accountImports.set('0x2', new AccountModulesImportInfo('0x2', '0x2'));
42
- loader.accountImports.set('0x3', new AccountModulesImportInfo('0x3', '0x3'));
41
+ for (const sysModule of this.SYSTEM_MODULES) {
42
+ loader.accountImports.set(sysModule, new AccountModulesImportInfo(sysModule, sysModule));
43
+ }
43
44
  // const client = getRpcClient(network)
44
45
  for (const file of files) {
45
46
  if (!file.endsWith('.json')) {
@@ -411,6 +412,13 @@ export class AccountCodegen {
411
412
  dependedAccounts.push(account);
412
413
  }
413
414
  }
415
+ let loadAllTypes = `loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.${this.moduleGen.generateNetworkOption(this.config.network)}))`;
416
+ if (this.moduleGen.SYSTEM_MODULES.has(address)) {
417
+ loadAllTypes = `
418
+ loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.MAIN_NET))
419
+ loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.TEST_NET))
420
+ `;
421
+ }
414
422
  const source = `
415
423
  /* Autogenerated file. Do not edit manually. */
416
424
  /* tslint:disable */
@@ -433,7 +441,7 @@ export class AccountCodegen {
433
441
  }
434
442
  }
435
443
 
436
- loadAllTypes(defaultMoveCoder())
444
+ ${loadAllTypes}
437
445
  `; // source
438
446
  return [
439
447
  {
@@ -1 +1 @@
1
- {"version":3,"file":"abstract-codegen.js","sourceRoot":"","sources":["../../src/move/abstract-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n InternalMoveFunction,\n InternalMoveFunctionVisibility,\n InternalMoveModule,\n InternalMoveStruct,\n} from './internal-models.js'\nimport path from 'path'\nimport fs from 'fs'\nimport { AccountModulesImportInfo, AccountRegister } from './account.js'\nimport chalk from 'chalk'\nimport { format } from 'prettier'\nimport { isFrameworkAccount, moduleQname, normalizeToJSName, SPLITTER, VECTOR_STR } from './utils.js'\nimport { camelCase, upperFirst } from 'lodash-es'\nimport { TypeDescriptor } from './types.js'\nimport { ChainAdapter } from './chain-adapter.js'\n\ninterface OutputFile {\n fileName: string\n fileContent: string\n}\n\ninterface Config<NetworkType> {\n fileName: string\n outputDir: string\n network: NetworkType\n}\n\nexport abstract class AbstractCodegen<ModuleTypes, NetworkType> {\n TEST_NET: NetworkType\n MAIN_NET: NetworkType\n ADDRESS_TYPE: string\n PREFIX: string\n STRUCT_FIELD_NAME: string = 'data'\n GENERATE_CLIENT = false\n GENERATE_ON_ENTRY = true\n PAYLOAD_OPTIONAL = false\n\n chainAdapter: ChainAdapter<NetworkType, ModuleTypes>\n\n protected constructor(chainAdapter: ChainAdapter<NetworkType, ModuleTypes>) {\n this.chainAdapter = chainAdapter\n }\n\n readModulesFile(fullPath: string) {\n return JSON.parse(fs.readFileSync(fullPath, 'utf-8'))\n }\n\n async generate(srcDir: string, outputDir: string): Promise<number> {\n const num1 = await this.generateForNetwork(srcDir, outputDir, this.MAIN_NET)\n const num2 = await this.generateForNetwork(\n path.join(srcDir, 'testnet'),\n path.join(outputDir, 'testnet'),\n this.TEST_NET\n )\n return num1 + num2\n }\n\n async generateForNetwork(srcDir: string, outputDir: string, network: NetworkType) {\n if (!fs.existsSync(srcDir)) {\n return 0\n }\n\n const files = fs.readdirSync(srcDir)\n outputDir = path.resolve(outputDir)\n const outputs: OutputFile[] = []\n\n fs.mkdirSync(outputDir, { recursive: true })\n\n const loader = new AccountRegister()\n\n // when generating user code, don't need to generate framework account\n loader.accountImports.set('0x1', new AccountModulesImportInfo('0x1', '0x1'))\n loader.accountImports.set('0x2', new AccountModulesImportInfo('0x2', '0x2'))\n loader.accountImports.set('0x3', new AccountModulesImportInfo('0x3', '0x3'))\n // const client = getRpcClient(network)\n\n for (const file of files) {\n if (!file.endsWith('.json')) {\n continue\n }\n const fullPath = path.resolve(srcDir, file)\n const abi = this.readModulesFile(fullPath)\n const modules = this.chainAdapter.toInternalModules(abi)\n\n for (const module of modules) {\n loader.register(module, path.basename(file, '.json'))\n }\n const codeGen = new AccountCodegen(this, loader, abi, modules, {\n fileName: path.basename(file, '.json'),\n outputDir: outputDir,\n network,\n })\n\n outputs.push(...codeGen.generate())\n }\n\n while (loader.pendingAccounts.size > 0) {\n for (const account of loader.pendingAccounts) {\n console.log(`download dependent module for account ${account} at ${network}`)\n\n try {\n const rawModules = await this.chainAdapter.fetchModules(account, network)\n const modules = this.chainAdapter.toInternalModules(rawModules)\n\n fs.writeFileSync(path.resolve(srcDir, account + '.json'), JSON.stringify(rawModules, null, '\\t'))\n for (const module of modules) {\n loader.register(module, account)\n }\n const codeGen = new AccountCodegen(this, loader, rawModules, modules, {\n fileName: account,\n outputDir: outputDir,\n network,\n })\n\n outputs.push(...codeGen.generate())\n } catch (e) {\n console.error(\n chalk.red(\n 'Error downloading account module, check if you choose the right network,or download account modules manually into your director'\n )\n )\n console.error(e)\n process.exit(1)\n }\n }\n }\n\n for (const output of outputs) {\n // const content = output.fileContent\n const content = format(output.fileContent, { parser: 'typescript' })\n fs.writeFileSync(path.join(outputDir, output.fileName), content)\n }\n\n const rootFile = path.join(outputDir, 'index.ts')\n fs.writeFileSync(\n rootFile,\n `/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n`\n )\n for (const output of outputs) {\n const parsed = path.parse(output.fileName)\n const content = `export * as _${parsed.name.replaceAll('-', '_')} from './${parsed.name}.js'\\n`\n fs.appendFileSync(rootFile, content)\n }\n return outputs.length + 1\n }\n\n generateNetworkOption(network: NetworkType) {\n switch (network) {\n case this.TEST_NET:\n return 'TEST_NET'\n }\n return 'MAIN_NET'\n }\n\n generateModule(module: InternalMoveModule, network: NetworkType) {\n const functions = this.GENERATE_ON_ENTRY\n ? module.exposedFunctions.map((f) => this.generateOnEntryFunctions(module, f)).filter((s) => s !== '')\n : []\n const clientFunctions = this.GENERATE_CLIENT\n ? module.exposedFunctions.map((f) => this.generateClientFunctions(module, f)).filter((s) => s !== '')\n : []\n const eventStructs = this.chainAdapter.getEventStructs(module)\n const eventTypes = new Set(eventStructs.keys())\n const events = Array.from(eventStructs.values())\n .map((e) => this.generateOnEvents(module, e))\n .filter((s) => s !== '')\n const structs = module.structs.map((s) => this.generateStructs(module, s, eventTypes))\n const callArgs = module.exposedFunctions.map((f) => this.generateCallArgsStructs(module, f))\n\n const moduleName = normalizeToJSName(module.name)\n let processor = ''\n let client = ''\n\n if (clientFunctions.length > 0) {\n client = `\n export class ${moduleName}_client extends ModuleClient {\n ${clientFunctions.join('\\n')}\n }\n `\n }\n\n if (functions.length > 0 || events.length > 0) {\n processor = `export class ${moduleName} extends ${this.PREFIX}BaseProcessor {\n\n constructor(options: ${this.PREFIX}BindOptions) {\n super(\"${module.name}\", options)\n }\n static DEFAULT_OPTIONS: ${this.PREFIX}BindOptions = {\n address: \"${module.address}\",\n network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}\n }\n\n static bind(options: Partial<${this.PREFIX}BindOptions> = {}): ${moduleName} {\n return new ${moduleName}({ ...${moduleName}.DEFAULT_OPTIONS, ...options })\n }\n\n ${functions.join('\\n')}\n\n ${events.join('\\n')}\n }\n `\n }\n\n return `\n ${client}\n\n ${processor}\n\n export namespace ${moduleName} {\n ${structs.join('\\n')}\n\n ${callArgs.join('\\n')}\n }\n `\n }\n\n generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>) {\n const genericString = this.generateStructTypeParameters(struct)\n const genericStringAny = this.generateStructTypeParameters(struct, true)\n\n const structName = normalizeToJSName(struct.name)\n\n const fields = struct.fields.map((field) => {\n const type = this.generateTypeForDescriptor(field.type, module.address)\n return `${field.name}: ${type}`\n })\n\n let eventPayload = ''\n if (events.has(moduleQname(module) + SPLITTER + struct.name)) {\n eventPayload = `\n export interface ${structName}Instance extends\n TypedEventInstance<${structName}${genericStringAny}> {\n ${this.STRUCT_FIELD_NAME}_decoded: ${structName}${genericStringAny}\n type_arguments: [${struct.typeParams.map((_) => 'string').join(', ')}]\n }\n `\n }\n\n return `\n export class ${structName}${genericString} {\n static TYPE_QNAME = '${module.address}::${module.name}::${struct.name}'\n ${fields.join('\\n')}\n }\n\n ${eventPayload}\n `\n }\n\n generateFunctionTypeParameters(func: InternalMoveFunction) {\n let genericString = ''\n if (func.typeParams && func.typeParams.length > 0) {\n const params = func.typeParams\n .map((v, idx) => {\n return `T${idx}=any`\n })\n .join(',')\n genericString = `<${params}>`\n }\n return genericString\n }\n\n generateStructTypeParameters(struct: InternalMoveStruct, useAny = false) {\n let genericString = ''\n\n if (struct.typeParams && struct.typeParams.length > 0) {\n const params = struct.typeParams\n .map((v, idx) => {\n return useAny ? 'any' : 'T' + idx\n })\n .join(',')\n genericString = `<${params}>`\n }\n return genericString\n }\n\n generateCallArgsStructs(module: InternalMoveModule, func: InternalMoveFunction) {\n if (!func.isEntry) {\n return\n }\n\n const fields = this.chainAdapter.getMeaningfulFunctionParams(func.params).map((param) => {\n return this.generateTypeForDescriptor(param, module.address) + (this.PAYLOAD_OPTIONAL ? ' | undefined' : '')\n })\n\n const camelFuncName = upperFirst(camelCase(func.name))\n\n const genericString = this.generateFunctionTypeParameters(func)\n return `\n export interface ${camelFuncName}Payload${genericString}\n extends TypedFunctionPayload<[${fields.join(',')}]> {\n arguments_decoded: [${fields.join(',')}],\n type_arguments: [${func.typeParams.map((_) => 'string').join(', ')}]\n }\n `\n }\n\n generateClientFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n if (func.visibility === InternalMoveFunctionVisibility.PRIVATE) {\n return ''\n }\n if (func.isEntry) {\n return ''\n }\n // const moduleName = normalizeToJSName(module.name)\n const funcName = camelCase(func.name)\n const fields = this.chainAdapter.getMeaningfulFunctionParams(func.params).map((param) => {\n return this.generateTypeForDescriptor(param, module.address)\n })\n const genericString = this.generateFunctionTypeParameters(func)\n\n const returns = func.return.map((param) => {\n return this.generateTypeForDescriptor(param, module.address)\n })\n\n const source = `\n ${funcName}${genericString}(type_arguments: [${func.typeParams\n .map((_) => 'string')\n .join(', ')}], args: [${fields.join(',')}], version?: bigint): Promise<[${returns.join(',')}]> {\n return this.viewDecoded('${module.address}::${module.name}::${func.name}', type_arguments, args, version) as any\n }`\n return source\n }\n\n generateOnEntryFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n if (!func.isEntry) {\n return ''\n }\n\n // const genericString = generateFunctionTypeParameters(func)\n const moduleName = normalizeToJSName(module.name)\n\n const camelFuncName = upperFirst(camelCase(func.name))\n const source = `\n onEntry${camelFuncName}(func: (call: ${moduleName}.${camelFuncName}Payload, ctx: ${this.PREFIX}Context) => void, filter?: CallFilter, fetchConfig?: Partial<MoveFetchConfig>): ${moduleName} {\n this.onEntryFunctionCall(func, {\n ...filter,\n function: '${module.name}::${func.name}'\n },\n fetchConfig)\n return this\n }`\n\n return source\n }\n\n generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n // for struct that has drop + store\n // if (!isEvent(struct, module)) {\n // return ''\n // }\n\n // const genericString = generateStructTypeParameters(struct)\n\n const moduleName = normalizeToJSName(module.name)\n const source = `\n onEvent${struct.name}(func: (event: ${moduleName}.${normalizeToJSName(struct.name)}Instance, ctx: ${\n this.PREFIX\n }Context) => void, fetchConfig?: Partial<MoveFetchConfig>): ${moduleName} {\n this.onMoveEvent(func, {\n type: '${module.name}::${struct.name}'\n },\n fetchConfig)\n return this\n }\n `\n return source\n }\n\n generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {\n if (type.reference) {\n return this.ADDRESS_TYPE\n }\n\n switch (type.qname) {\n case 'signer': // TODO check this\n case 'address':\n case 'Address':\n return this.ADDRESS_TYPE\n case '0x1::string::String':\n return 'string'\n case 'bool':\n case 'Bool':\n return 'Boolean'\n case 'u8':\n case 'U8':\n case 'u16':\n case 'U16':\n case 'u32':\n case 'U32':\n return 'number'\n case 'u64':\n case 'U64':\n case 'u128':\n case 'U128':\n case 'u256':\n case 'U256':\n return 'bigint'\n }\n\n if (type.qname.toLowerCase() === VECTOR_STR) {\n // vector<u8> as hex string\n const elementTypeQname = type.typeArgs[0].qname\n if (elementTypeQname === 'u8') {\n // only for aptos\n return 'string'\n }\n if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {\n return `${elementTypeQname}[] | string`\n }\n return this.generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'\n }\n\n const simpleName = this.generateSimpleType(type.qname, currentAddress)\n if (simpleName.length === 0) {\n console.error('unexpected error')\n }\n if (simpleName.toLowerCase() === VECTOR_STR || simpleName.toLowerCase().startsWith(VECTOR_STR + SPLITTER)) {\n console.error('unexpected vector type error')\n }\n if (type.typeArgs.length > 0) {\n // return simpleName\n return (\n simpleName + '<' + type.typeArgs.map((t) => this.generateTypeForDescriptor(t, currentAddress)).join(',') + '>'\n )\n }\n return simpleName\n }\n\n generateSimpleType(type: string, currentAddress: string): string {\n const parts = type.split(SPLITTER)\n\n for (let i = 0; i < parts.length; i++) {\n parts[i] = normalizeToJSName(parts[i])\n }\n\n if (parts.length < 2) {\n return parts[0]\n }\n if (parts[0] === currentAddress) {\n return parts.slice(1).join('.')\n }\n return '_' + parts.join('.')\n }\n}\n\nexport class AccountCodegen<ModuleType, NetworkType> {\n modules: InternalMoveModule[]\n config: Config<NetworkType>\n abi: ModuleType\n loader: AccountRegister\n moduleGen: AbstractCodegen<ModuleType, NetworkType>\n\n constructor(\n moduleGen: AbstractCodegen<ModuleType, NetworkType>,\n loader: AccountRegister,\n abi: ModuleType,\n modules: InternalMoveModule[],\n config: Config<NetworkType>\n ) {\n // const json = fs.readFileSync(config.srcFile, 'utf-8')\n this.moduleGen = moduleGen\n this.abi = abi\n this.modules = modules\n this.config = config\n this.loader = loader\n }\n\n generate(): OutputFile[] {\n if (!this.modules) {\n return []\n }\n // const baseName = path.basename(this.config.fileName, '.json')\n\n let address: string | undefined\n for (const module of this.modules) {\n address = module.address\n }\n if (!address) {\n return []\n }\n\n const imports = `\n import { CallFilter } from \"@sentio/sdk/move\"\n import {\n MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,\n TypedEventInstance, ${this.moduleGen.PREFIX}Network, TypedFunctionPayload,\n ${this.moduleGen.PREFIX}Context } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n import { MoveFetchConfig } from \"@sentio/protos\"\n import { ${this.moduleGen.ADDRESS_TYPE}, ModuleClient } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n `\n\n const dependedAccounts: string[] = []\n\n const moduleImports: string[] = []\n\n const info = this.loader.accountImports.get(address)\n\n if (info) {\n for (const [account] of info.imports.entries()) {\n // Remap to user's filename if possible, TODO codepath not well tested\n const tsAccountModule = './' + (this.loader.accountImports.get(account)?.moduleName || account)\n if (isFrameworkAccount(account) && !isFrameworkAccount(address)) {\n // Decide where to find runtime library\n moduleImports.push(`import { _${account} } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}/builtin\"`)\n } else {\n moduleImports.push(`import * as _${account} from \"${tsAccountModule}.js\"`)\n }\n\n dependedAccounts.push(account)\n }\n }\n\n const source = `\n /* Autogenerated file. Do not edit manually. */\n /* tslint:disable */\n /* eslint-disable */\n\n /* Generated modules for account ${address} */\n\n ${imports}\n\n ${moduleImports.join('\\n')}\n\n ${this.modules.map((m) => this.moduleGen.generateModule(m, this.config.network)).join('\\n')}\n\n const MODULES = JSON.parse('${JSON.stringify(this.abi)}')\n\n export function loadAllTypes(coder: MoveCoder) {\n ${dependedAccounts.map((a) => `_${a}.loadAllTypes(coder)`).join('\\n')}\n for (const m of Object.values(MODULES)) {\n coder.load(m as any)\n }\n }\n\n loadAllTypes(defaultMoveCoder())\n ` // source\n\n return [\n {\n fileName: this.config.fileName + '.ts',\n fileContent: source,\n },\n ]\n }\n}\n"]}
1
+ {"version":3,"file":"abstract-codegen.js","sourceRoot":"","sources":["../../src/move/abstract-codegen.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n InternalMoveFunction,\n InternalMoveFunctionVisibility,\n InternalMoveModule,\n InternalMoveStruct,\n} from './internal-models.js'\nimport path from 'path'\nimport fs from 'fs'\nimport { AccountModulesImportInfo, AccountRegister } from './account.js'\nimport chalk from 'chalk'\nimport { format } from 'prettier'\nimport { isFrameworkAccount, moduleQname, normalizeToJSName, SPLITTER, VECTOR_STR } from './utils.js'\nimport { camelCase, upperFirst } from 'lodash-es'\nimport { TypeDescriptor } from './types.js'\nimport { ChainAdapter } from './chain-adapter.js'\n\ninterface OutputFile {\n fileName: string\n fileContent: string\n}\n\ninterface Config<NetworkType> {\n fileName: string\n outputDir: string\n network: NetworkType\n}\n\nexport abstract class AbstractCodegen<ModuleTypes, NetworkType> {\n TEST_NET: NetworkType\n MAIN_NET: NetworkType\n ADDRESS_TYPE: string\n PREFIX: string\n STRUCT_FIELD_NAME: string = 'data'\n GENERATE_CLIENT = false\n GENERATE_ON_ENTRY = true\n PAYLOAD_OPTIONAL = false\n SYSTEM_MODULES = new Set(['0x1', '0x2', '0x3'])\n\n chainAdapter: ChainAdapter<NetworkType, ModuleTypes>\n\n protected constructor(chainAdapter: ChainAdapter<NetworkType, ModuleTypes>) {\n this.chainAdapter = chainAdapter\n }\n\n readModulesFile(fullPath: string) {\n return JSON.parse(fs.readFileSync(fullPath, 'utf-8'))\n }\n\n async generate(srcDir: string, outputDir: string): Promise<number> {\n const num1 = await this.generateForNetwork(srcDir, outputDir, this.MAIN_NET)\n const num2 = await this.generateForNetwork(\n path.join(srcDir, 'testnet'),\n path.join(outputDir, 'testnet'),\n this.TEST_NET\n )\n return num1 + num2\n }\n\n async generateForNetwork(srcDir: string, outputDir: string, network: NetworkType) {\n if (!fs.existsSync(srcDir)) {\n return 0\n }\n\n const files = fs.readdirSync(srcDir)\n outputDir = path.resolve(outputDir)\n const outputs: OutputFile[] = []\n\n fs.mkdirSync(outputDir, { recursive: true })\n\n const loader = new AccountRegister()\n\n // when generating user code, don't need to generate framework account\n for (const sysModule of this.SYSTEM_MODULES) {\n loader.accountImports.set(sysModule, new AccountModulesImportInfo(sysModule, sysModule))\n }\n // const client = getRpcClient(network)\n\n for (const file of files) {\n if (!file.endsWith('.json')) {\n continue\n }\n const fullPath = path.resolve(srcDir, file)\n const abi = this.readModulesFile(fullPath)\n const modules = this.chainAdapter.toInternalModules(abi)\n\n for (const module of modules) {\n loader.register(module, path.basename(file, '.json'))\n }\n const codeGen = new AccountCodegen(this, loader, abi, modules, {\n fileName: path.basename(file, '.json'),\n outputDir: outputDir,\n network,\n })\n\n outputs.push(...codeGen.generate())\n }\n\n while (loader.pendingAccounts.size > 0) {\n for (const account of loader.pendingAccounts) {\n console.log(`download dependent module for account ${account} at ${network}`)\n\n try {\n const rawModules = await this.chainAdapter.fetchModules(account, network)\n const modules = this.chainAdapter.toInternalModules(rawModules)\n\n fs.writeFileSync(path.resolve(srcDir, account + '.json'), JSON.stringify(rawModules, null, '\\t'))\n for (const module of modules) {\n loader.register(module, account)\n }\n const codeGen = new AccountCodegen(this, loader, rawModules, modules, {\n fileName: account,\n outputDir: outputDir,\n network,\n })\n\n outputs.push(...codeGen.generate())\n } catch (e) {\n console.error(\n chalk.red(\n 'Error downloading account module, check if you choose the right network,or download account modules manually into your director'\n )\n )\n console.error(e)\n process.exit(1)\n }\n }\n }\n\n for (const output of outputs) {\n // const content = output.fileContent\n const content = format(output.fileContent, { parser: 'typescript' })\n fs.writeFileSync(path.join(outputDir, output.fileName), content)\n }\n\n const rootFile = path.join(outputDir, 'index.ts')\n fs.writeFileSync(\n rootFile,\n `/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n`\n )\n for (const output of outputs) {\n const parsed = path.parse(output.fileName)\n const content = `export * as _${parsed.name.replaceAll('-', '_')} from './${parsed.name}.js'\\n`\n fs.appendFileSync(rootFile, content)\n }\n return outputs.length + 1\n }\n\n generateNetworkOption(network: NetworkType) {\n switch (network) {\n case this.TEST_NET:\n return 'TEST_NET'\n }\n return 'MAIN_NET'\n }\n\n generateModule(module: InternalMoveModule, network: NetworkType) {\n const functions = this.GENERATE_ON_ENTRY\n ? module.exposedFunctions.map((f) => this.generateOnEntryFunctions(module, f)).filter((s) => s !== '')\n : []\n const clientFunctions = this.GENERATE_CLIENT\n ? module.exposedFunctions.map((f) => this.generateClientFunctions(module, f)).filter((s) => s !== '')\n : []\n const eventStructs = this.chainAdapter.getEventStructs(module)\n const eventTypes = new Set(eventStructs.keys())\n const events = Array.from(eventStructs.values())\n .map((e) => this.generateOnEvents(module, e))\n .filter((s) => s !== '')\n const structs = module.structs.map((s) => this.generateStructs(module, s, eventTypes))\n const callArgs = module.exposedFunctions.map((f) => this.generateCallArgsStructs(module, f))\n\n const moduleName = normalizeToJSName(module.name)\n let processor = ''\n let client = ''\n\n if (clientFunctions.length > 0) {\n client = `\n export class ${moduleName}_client extends ModuleClient {\n ${clientFunctions.join('\\n')}\n }\n `\n }\n\n if (functions.length > 0 || events.length > 0) {\n processor = `export class ${moduleName} extends ${this.PREFIX}BaseProcessor {\n\n constructor(options: ${this.PREFIX}BindOptions) {\n super(\"${module.name}\", options)\n }\n static DEFAULT_OPTIONS: ${this.PREFIX}BindOptions = {\n address: \"${module.address}\",\n network: ${this.PREFIX}Network.${this.generateNetworkOption(network)}\n }\n\n static bind(options: Partial<${this.PREFIX}BindOptions> = {}): ${moduleName} {\n return new ${moduleName}({ ...${moduleName}.DEFAULT_OPTIONS, ...options })\n }\n\n ${functions.join('\\n')}\n\n ${events.join('\\n')}\n }\n `\n }\n\n return `\n ${client}\n\n ${processor}\n\n export namespace ${moduleName} {\n ${structs.join('\\n')}\n\n ${callArgs.join('\\n')}\n }\n `\n }\n\n generateStructs(module: InternalMoveModule, struct: InternalMoveStruct, events: Set<string>) {\n const genericString = this.generateStructTypeParameters(struct)\n const genericStringAny = this.generateStructTypeParameters(struct, true)\n\n const structName = normalizeToJSName(struct.name)\n\n const fields = struct.fields.map((field) => {\n const type = this.generateTypeForDescriptor(field.type, module.address)\n return `${field.name}: ${type}`\n })\n\n let eventPayload = ''\n if (events.has(moduleQname(module) + SPLITTER + struct.name)) {\n eventPayload = `\n export interface ${structName}Instance extends\n TypedEventInstance<${structName}${genericStringAny}> {\n ${this.STRUCT_FIELD_NAME}_decoded: ${structName}${genericStringAny}\n type_arguments: [${struct.typeParams.map((_) => 'string').join(', ')}]\n }\n `\n }\n\n return `\n export class ${structName}${genericString} {\n static TYPE_QNAME = '${module.address}::${module.name}::${struct.name}'\n ${fields.join('\\n')}\n }\n\n ${eventPayload}\n `\n }\n\n generateFunctionTypeParameters(func: InternalMoveFunction) {\n let genericString = ''\n if (func.typeParams && func.typeParams.length > 0) {\n const params = func.typeParams\n .map((v, idx) => {\n return `T${idx}=any`\n })\n .join(',')\n genericString = `<${params}>`\n }\n return genericString\n }\n\n generateStructTypeParameters(struct: InternalMoveStruct, useAny = false) {\n let genericString = ''\n\n if (struct.typeParams && struct.typeParams.length > 0) {\n const params = struct.typeParams\n .map((v, idx) => {\n return useAny ? 'any' : 'T' + idx\n })\n .join(',')\n genericString = `<${params}>`\n }\n return genericString\n }\n\n generateCallArgsStructs(module: InternalMoveModule, func: InternalMoveFunction) {\n if (!func.isEntry) {\n return\n }\n\n const fields = this.chainAdapter.getMeaningfulFunctionParams(func.params).map((param) => {\n return this.generateTypeForDescriptor(param, module.address) + (this.PAYLOAD_OPTIONAL ? ' | undefined' : '')\n })\n\n const camelFuncName = upperFirst(camelCase(func.name))\n\n const genericString = this.generateFunctionTypeParameters(func)\n return `\n export interface ${camelFuncName}Payload${genericString}\n extends TypedFunctionPayload<[${fields.join(',')}]> {\n arguments_decoded: [${fields.join(',')}],\n type_arguments: [${func.typeParams.map((_) => 'string').join(', ')}]\n }\n `\n }\n\n generateClientFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n if (func.visibility === InternalMoveFunctionVisibility.PRIVATE) {\n return ''\n }\n if (func.isEntry) {\n return ''\n }\n // const moduleName = normalizeToJSName(module.name)\n const funcName = camelCase(func.name)\n const fields = this.chainAdapter.getMeaningfulFunctionParams(func.params).map((param) => {\n return this.generateTypeForDescriptor(param, module.address)\n })\n const genericString = this.generateFunctionTypeParameters(func)\n\n const returns = func.return.map((param) => {\n return this.generateTypeForDescriptor(param, module.address)\n })\n\n const source = `\n ${funcName}${genericString}(type_arguments: [${func.typeParams\n .map((_) => 'string')\n .join(', ')}], args: [${fields.join(',')}], version?: bigint): Promise<[${returns.join(',')}]> {\n return this.viewDecoded('${module.address}::${module.name}::${func.name}', type_arguments, args, version) as any\n }`\n return source\n }\n\n generateOnEntryFunctions(module: InternalMoveModule, func: InternalMoveFunction) {\n if (!func.isEntry) {\n return ''\n }\n\n // const genericString = generateFunctionTypeParameters(func)\n const moduleName = normalizeToJSName(module.name)\n\n const camelFuncName = upperFirst(camelCase(func.name))\n const source = `\n onEntry${camelFuncName}(func: (call: ${moduleName}.${camelFuncName}Payload, ctx: ${this.PREFIX}Context) => void, filter?: CallFilter, fetchConfig?: Partial<MoveFetchConfig>): ${moduleName} {\n this.onEntryFunctionCall(func, {\n ...filter,\n function: '${module.name}::${func.name}'\n },\n fetchConfig)\n return this\n }`\n\n return source\n }\n\n generateOnEvents(module: InternalMoveModule, struct: InternalMoveStruct): string {\n // for struct that has drop + store\n // if (!isEvent(struct, module)) {\n // return ''\n // }\n\n // const genericString = generateStructTypeParameters(struct)\n\n const moduleName = normalizeToJSName(module.name)\n const source = `\n onEvent${struct.name}(func: (event: ${moduleName}.${normalizeToJSName(struct.name)}Instance, ctx: ${\n this.PREFIX\n }Context) => void, fetchConfig?: Partial<MoveFetchConfig>): ${moduleName} {\n this.onMoveEvent(func, {\n type: '${module.name}::${struct.name}'\n },\n fetchConfig)\n return this\n }\n `\n return source\n }\n\n generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {\n if (type.reference) {\n return this.ADDRESS_TYPE\n }\n\n switch (type.qname) {\n case 'signer': // TODO check this\n case 'address':\n case 'Address':\n return this.ADDRESS_TYPE\n case '0x1::string::String':\n return 'string'\n case 'bool':\n case 'Bool':\n return 'Boolean'\n case 'u8':\n case 'U8':\n case 'u16':\n case 'U16':\n case 'u32':\n case 'U32':\n return 'number'\n case 'u64':\n case 'U64':\n case 'u128':\n case 'U128':\n case 'u256':\n case 'U256':\n return 'bigint'\n }\n\n if (type.qname.toLowerCase() === VECTOR_STR) {\n // vector<u8> as hex string\n const elementTypeQname = type.typeArgs[0].qname\n if (elementTypeQname === 'u8') {\n // only for aptos\n return 'string'\n }\n if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {\n return `${elementTypeQname}[] | string`\n }\n return this.generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'\n }\n\n const simpleName = this.generateSimpleType(type.qname, currentAddress)\n if (simpleName.length === 0) {\n console.error('unexpected error')\n }\n if (simpleName.toLowerCase() === VECTOR_STR || simpleName.toLowerCase().startsWith(VECTOR_STR + SPLITTER)) {\n console.error('unexpected vector type error')\n }\n if (type.typeArgs.length > 0) {\n // return simpleName\n return (\n simpleName + '<' + type.typeArgs.map((t) => this.generateTypeForDescriptor(t, currentAddress)).join(',') + '>'\n )\n }\n return simpleName\n }\n\n generateSimpleType(type: string, currentAddress: string): string {\n const parts = type.split(SPLITTER)\n\n for (let i = 0; i < parts.length; i++) {\n parts[i] = normalizeToJSName(parts[i])\n }\n\n if (parts.length < 2) {\n return parts[0]\n }\n if (parts[0] === currentAddress) {\n return parts.slice(1).join('.')\n }\n return '_' + parts.join('.')\n }\n}\n\nexport class AccountCodegen<ModuleType, NetworkType> {\n modules: InternalMoveModule[]\n config: Config<NetworkType>\n abi: ModuleType\n loader: AccountRegister\n moduleGen: AbstractCodegen<ModuleType, NetworkType>\n\n constructor(\n moduleGen: AbstractCodegen<ModuleType, NetworkType>,\n loader: AccountRegister,\n abi: ModuleType,\n modules: InternalMoveModule[],\n config: Config<NetworkType>\n ) {\n // const json = fs.readFileSync(config.srcFile, 'utf-8')\n this.moduleGen = moduleGen\n this.abi = abi\n this.modules = modules\n this.config = config\n this.loader = loader\n }\n\n generate(): OutputFile[] {\n if (!this.modules) {\n return []\n }\n // const baseName = path.basename(this.config.fileName, '.json')\n\n let address: string | undefined\n for (const module of this.modules) {\n address = module.address\n }\n if (!address) {\n return []\n }\n\n const imports = `\n import { CallFilter } from \"@sentio/sdk/move\"\n import {\n MoveCoder, defaultMoveCoder, ${this.moduleGen.PREFIX}BindOptions, ${this.moduleGen.PREFIX}BaseProcessor,\n TypedEventInstance, ${this.moduleGen.PREFIX}Network, TypedFunctionPayload,\n ${this.moduleGen.PREFIX}Context } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n import { MoveFetchConfig } from \"@sentio/protos\"\n import { ${this.moduleGen.ADDRESS_TYPE}, ModuleClient } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}\"\n `\n\n const dependedAccounts: string[] = []\n\n const moduleImports: string[] = []\n\n const info = this.loader.accountImports.get(address)\n\n if (info) {\n for (const [account] of info.imports.entries()) {\n // Remap to user's filename if possible, TODO codepath not well tested\n const tsAccountModule = './' + (this.loader.accountImports.get(account)?.moduleName || account)\n if (isFrameworkAccount(account) && !isFrameworkAccount(address)) {\n // Decide where to find runtime library\n moduleImports.push(`import { _${account} } from \"@sentio/sdk/${this.moduleGen.PREFIX.toLowerCase()}/builtin\"`)\n } else {\n moduleImports.push(`import * as _${account} from \"${tsAccountModule}.js\"`)\n }\n\n dependedAccounts.push(account)\n }\n }\n\n let loadAllTypes = `loadAllTypes(defaultMoveCoder(${\n this.moduleGen.PREFIX\n }Network.${this.moduleGen.generateNetworkOption(this.config.network)}))`\n\n if (this.moduleGen.SYSTEM_MODULES.has(address)) {\n loadAllTypes = `\n loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.MAIN_NET))\n loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.TEST_NET))\n `\n }\n\n const source = `\n /* Autogenerated file. Do not edit manually. */\n /* tslint:disable */\n /* eslint-disable */\n\n /* Generated modules for account ${address} */\n\n ${imports}\n\n ${moduleImports.join('\\n')}\n\n ${this.modules.map((m) => this.moduleGen.generateModule(m, this.config.network)).join('\\n')}\n\n const MODULES = JSON.parse('${JSON.stringify(this.abi)}')\n\n export function loadAllTypes(coder: MoveCoder) {\n ${dependedAccounts.map((a) => `_${a}.loadAllTypes(coder)`).join('\\n')}\n for (const m of Object.values(MODULES)) {\n coder.load(m as any)\n }\n }\n\n ${loadAllTypes}\n ` // source\n\n return [\n {\n fileName: this.config.fileName + '.ts',\n fileContent: source,\n },\n ]\n }\n}\n"]}
@@ -150,5 +150,6 @@ export function loadAllTypes(coder) {
150
150
  coder.load(m);
151
151
  }
152
152
  }
153
- loadAllTypes(defaultMoveCoder());
153
+ loadAllTypes(defaultMoveCoder(SuiNetwork.MAIN_NET));
154
+ loadAllTypes(defaultMoveCoder(SuiNetwork.TEST_NET));
154
155
  //# sourceMappingURL=0x1.js.map