@sentio/sdk 2.4.0 → 2.5.0-rc.1

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 (167) hide show
  1. package/lib/aptos/aptos-processor.d.ts +1 -1
  2. package/lib/aptos/aptos-processor.js +1 -1
  3. package/lib/aptos/aptos-processor.js.map +1 -1
  4. package/lib/aptos/builtin/0x1.d.ts +16 -177
  5. package/lib/aptos/builtin/0x1.js +56 -538
  6. package/lib/aptos/builtin/0x1.js.map +1 -1
  7. package/lib/aptos/builtin/0x3.d.ts +2 -13
  8. package/lib/aptos/builtin/0x3.js +20 -48
  9. package/lib/aptos/builtin/0x3.js.map +1 -1
  10. package/lib/aptos/codegen/codegen.d.ts +0 -20
  11. package/lib/aptos/codegen/codegen.js +37 -357
  12. package/lib/aptos/codegen/codegen.js.map +1 -1
  13. package/lib/aptos/{types.test.d.ts → codegen/types.test.d.ts} +0 -0
  14. package/lib/aptos/codegen/types.test.js.map +1 -0
  15. package/lib/aptos/models.d.ts +0 -8
  16. package/lib/aptos/models.js.map +1 -1
  17. package/lib/aptos/move-coder.d.ts +4 -13
  18. package/lib/aptos/move-coder.js +13 -124
  19. package/lib/aptos/move-coder.js.map +1 -1
  20. package/lib/aptos/move-types.d.ts +6 -0
  21. package/lib/aptos/move-types.js +52 -1
  22. package/lib/aptos/move-types.js.map +1 -1
  23. package/lib/aptos/tests/souffl3.js +1 -1
  24. package/lib/aptos/tests/souffl3.js.map +1 -1
  25. package/lib/aptos/tests/types/reserved.d.ts +2 -8
  26. package/lib/aptos/tests/types/reserved.js +11 -24
  27. package/lib/aptos/tests/types/reserved.js.map +1 -1
  28. package/lib/aptos/tests/types/soffl3.d.ts +2 -14
  29. package/lib/aptos/tests/types/soffl3.js +15 -48
  30. package/lib/aptos/tests/types/soffl3.js.map +1 -1
  31. package/lib/aptos/tests/types/souffle.d.ts +2 -8
  32. package/lib/aptos/tests/types/souffle.js +11 -24
  33. package/lib/aptos/tests/types/souffle.js.map +1 -1
  34. package/lib/aptos/utils.d.ts +2 -7
  35. package/lib/aptos/utils.js +2 -15
  36. package/lib/aptos/utils.js.map +1 -1
  37. package/lib/eth/tests/codegen.test.js.map +1 -1
  38. package/lib/eth/tests/erc20.js +1 -1
  39. package/lib/eth/tests/erc20.js.map +1 -1
  40. package/lib/eth/tests/logger.test.js.map +1 -1
  41. package/lib/move/abstract-codegen.d.ts +44 -0
  42. package/lib/move/abstract-codegen.js +341 -0
  43. package/lib/move/abstract-codegen.js.map +1 -0
  44. package/lib/move/abstract-move-coder.d.ts +24 -0
  45. package/lib/move/abstract-move-coder.js +141 -0
  46. package/lib/move/abstract-move-coder.js.map +1 -0
  47. package/lib/move/account.d.ts +18 -0
  48. package/lib/{aptos/codegen/typegen.js → move/account.js} +20 -82
  49. package/lib/move/account.js.map +1 -0
  50. package/lib/move/filter.d.ts +25 -0
  51. package/lib/move/filter.js +11 -0
  52. package/lib/move/filter.js.map +1 -0
  53. package/lib/move/index.d.ts +5 -25
  54. package/lib/move/index.js +5 -10
  55. package/lib/move/index.js.map +1 -1
  56. package/lib/move/neutral-models.d.ts +34 -0
  57. package/lib/move/neutral-models.js +7 -0
  58. package/lib/move/neutral-models.js.map +1 -0
  59. package/lib/move/ts-type.d.ts +2 -0
  60. package/lib/move/ts-type.js +77 -0
  61. package/lib/move/ts-type.js.map +1 -0
  62. package/lib/{aptos/codegen/typegen.test.d.ts → move/ts-type.test.d.ts} +0 -0
  63. package/lib/move/ts-type.test.js.map +1 -0
  64. package/lib/{aptos → move}/types.d.ts +1 -0
  65. package/lib/{aptos → move}/types.js +26 -3
  66. package/lib/move/types.js.map +1 -0
  67. package/lib/move/utils.d.ts +9 -0
  68. package/lib/move/utils.js +20 -0
  69. package/lib/move/utils.js.map +1 -0
  70. package/lib/sui/builtin/0x1.d.ts +114 -0
  71. package/lib/sui/builtin/0x1.js +174 -0
  72. package/lib/sui/builtin/0x1.js.map +1 -0
  73. package/lib/sui/builtin/0x2.d.ts +1047 -0
  74. package/lib/sui/builtin/0x2.js +1295 -0
  75. package/lib/sui/builtin/0x2.js.map +1 -0
  76. package/lib/sui/builtin/index.d.ts +2 -0
  77. package/lib/sui/builtin/index.js +6 -0
  78. package/lib/sui/builtin/index.js.map +1 -0
  79. package/lib/sui/codegen/codegen.d.ts +1 -0
  80. package/lib/sui/codegen/codegen.js +61 -0
  81. package/lib/sui/codegen/codegen.js.map +1 -0
  82. package/lib/sui/codegen/index.d.ts +1 -0
  83. package/lib/sui/codegen/index.js +2 -0
  84. package/lib/sui/codegen/index.js.map +1 -0
  85. package/lib/sui/codegen/run.d.ts +1 -0
  86. package/lib/sui/codegen/run.js +12 -0
  87. package/lib/sui/codegen/run.js.map +1 -0
  88. package/lib/sui/index.d.ts +2 -0
  89. package/lib/sui/index.js +1 -0
  90. package/lib/sui/index.js.map +1 -1
  91. package/lib/sui/models.d.ts +7 -1
  92. package/lib/sui/models.js +0 -23
  93. package/lib/sui/models.js.map +1 -1
  94. package/lib/sui/move-coder.d.ts +11 -0
  95. package/lib/sui/move-coder.js +53 -0
  96. package/lib/sui/move-coder.js.map +1 -0
  97. package/lib/sui/move-types.d.ts +9 -0
  98. package/lib/sui/move-types.js +81 -0
  99. package/lib/sui/move-types.js.map +1 -0
  100. package/lib/sui/sui-processor.js +3 -3
  101. package/lib/sui/sui-processor.js.map +1 -1
  102. package/lib/sui/tests/sui.test.js.map +1 -1
  103. package/lib/sui/tests/types/index.d.ts +1 -0
  104. package/lib/sui/tests/types/index.js +5 -0
  105. package/lib/sui/tests/types/index.js.map +1 -0
  106. package/lib/sui/tests/types/testnet/index.d.ts +1 -0
  107. package/lib/sui/tests/types/testnet/index.js +5 -0
  108. package/lib/sui/tests/types/testnet/index.js.map +1 -0
  109. package/lib/sui/tests/types/testnet/swap.d.ts +249 -0
  110. package/lib/sui/tests/types/testnet/swap.js +310 -0
  111. package/lib/sui/tests/types/testnet/swap.js.map +1 -0
  112. package/lib/testing/aptos-facet.js +1 -1
  113. package/lib/testing/aptos-facet.js.map +1 -1
  114. package/lib/testing/sui-facet.js +3 -2
  115. package/lib/testing/sui-facet.js.map +1 -1
  116. package/package.json +8 -5
  117. package/src/aptos/aptos-processor.ts +1 -1
  118. package/src/aptos/builtin/0x1.ts +70 -652
  119. package/src/aptos/builtin/0x3.ts +24 -59
  120. package/src/aptos/codegen/codegen.ts +35 -421
  121. package/src/aptos/models.ts +0 -10
  122. package/src/aptos/move-coder.ts +16 -150
  123. package/src/aptos/move-types.ts +62 -0
  124. package/src/aptos/tests/souffl3.ts +1 -1
  125. package/src/aptos/tests/types/reserved.ts +15 -30
  126. package/src/aptos/tests/types/soffl3.ts +19 -58
  127. package/src/aptos/tests/types/souffle.ts +15 -30
  128. package/src/aptos/utils.ts +3 -21
  129. package/src/eth/tests/erc20.ts +1 -1
  130. package/src/move/abstract-codegen.ts +426 -0
  131. package/src/move/abstract-move-coder.ts +170 -0
  132. package/src/move/account.ts +96 -0
  133. package/src/move/filter.ts +33 -0
  134. package/src/move/index.ts +5 -33
  135. package/src/move/neutral-models.ts +45 -0
  136. package/src/move/ts-type.ts +86 -0
  137. package/src/{aptos → move}/types.ts +28 -3
  138. package/src/move/utils.ts +25 -0
  139. package/src/sui/abis/0x1.json +1729 -1733
  140. package/src/sui/abis/0x2.json +13279 -13283
  141. package/src/sui/builtin/0x1.ts +307 -0
  142. package/src/sui/builtin/0x2.ts +2578 -0
  143. package/src/sui/builtin/index.ts +5 -0
  144. package/src/sui/codegen/codegen.ts +71 -0
  145. package/src/sui/codegen/index.ts +1 -0
  146. package/src/sui/codegen/run.ts +13 -0
  147. package/src/sui/index.ts +4 -0
  148. package/src/sui/models.ts +7 -28
  149. package/src/sui/move-coder.ts +63 -0
  150. package/src/sui/move-types.ts +109 -0
  151. package/src/sui/sui-processor.ts +3 -3
  152. package/src/sui/tests/abis/testnet/swap.json +1752 -0
  153. package/src/sui/tests/types/index.ts +3 -0
  154. package/src/sui/tests/types/testnet/index.ts +4 -0
  155. package/src/sui/tests/types/testnet/swap.ts +698 -0
  156. package/src/testing/aptos-facet.ts +1 -1
  157. package/src/testing/sui-facet.ts +3 -2
  158. package/lib/aptos/codegen/typegen.d.ts +0 -18
  159. package/lib/aptos/codegen/typegen.js.map +0 -1
  160. package/lib/aptos/codegen/typegen.test.js.map +0 -1
  161. package/lib/aptos/types.js.map +0 -1
  162. package/lib/aptos/types.test.js.map +0 -1
  163. package/lib/jest.config.d.ts +0 -9
  164. package/lib/jest.config.js +0 -9
  165. package/lib/jest.config.js.map +0 -1
  166. package/src/aptos/codegen/typegen.ts +0 -165
  167. package/src/jest.config.ts +0 -8
@@ -0,0 +1,2 @@
1
+ export * as _0x1 from './0x1.js';
2
+ export * as _0x2 from './0x2.js';
@@ -0,0 +1,6 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as _0x1 from './0x1.js';
5
+ export * as _0x2 from './0x2.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sui/builtin/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,OAAO,KAAK,IAAI,MAAM,UAAU,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,UAAU,CAAA","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexport * as _0x1 from './0x1.js'\nexport * as _0x2 from './0x2.js'\n"]}
@@ -0,0 +1 @@
1
+ export declare function codegen(abisDir: string, outDir?: string): Promise<void>;
@@ -0,0 +1,61 @@
1
+ import { SuiNetwork } from '../network.js';
2
+ import * as fs from 'fs';
3
+ import chalk from 'chalk';
4
+ import { AbstractCodegen } from '../../move/abstract-codegen.js';
5
+ import { JsonRpcProvider } from '@mysten/sui.js';
6
+ import { toNeutralModule } from '../move-types.js';
7
+ import { moduleQname, SPLITTER } from '../../move/index.js';
8
+ export async function codegen(abisDir, outDir = 'src/types/sui') {
9
+ if (!fs.existsSync(abisDir)) {
10
+ return;
11
+ }
12
+ console.log(chalk.green('Generated Types for Sui'));
13
+ const gen = new SuiCodeGen();
14
+ await gen.generate(abisDir, outDir);
15
+ }
16
+ function getRpcEndpoint(network) {
17
+ switch (network) {
18
+ case SuiNetwork.TEST_NET:
19
+ return 'https://fullnode.testnet.sui.io/';
20
+ }
21
+ return 'https://fullnode.mainnet.sui.io/';
22
+ }
23
+ function getRpcClient(network) {
24
+ return new JsonRpcProvider(getRpcEndpoint(network));
25
+ }
26
+ class SuiCodeGen extends AbstractCodegen {
27
+ ADDRESS_TYPE = 'SuiAddress';
28
+ MAIN_NET = SuiNetwork.MAIN_NET;
29
+ TEST_NET = SuiNetwork.TEST_NET;
30
+ PREFIX = 'Sui';
31
+ STRUCT_FIELD_NAME = 'fields';
32
+ async fetchModules(account, network) {
33
+ const client = getRpcClient(network);
34
+ return await client.getNormalizedMoveModulesByPackage(account);
35
+ }
36
+ getMeaningfulFunctionParams(params) {
37
+ return params.slice(0, params.length - 1);
38
+ }
39
+ toNeutral(modules) {
40
+ return Object.values(modules).map(toNeutralModule);
41
+ }
42
+ getEventStructs(module) {
43
+ const qname = moduleQname(module);
44
+ const eventMap = new Map();
45
+ for (const struct of module.structs) {
46
+ const abilities = new Set(struct.abilities);
47
+ if (abilities.has('Drop') && abilities.has('Copy')) {
48
+ eventMap.set(qname + SPLITTER + struct.name, struct);
49
+ }
50
+ }
51
+ return eventMap;
52
+ }
53
+ readModulesFile(fullPath) {
54
+ const res = super.readModulesFile(fullPath);
55
+ if (res.result) {
56
+ return res.result;
57
+ }
58
+ return res;
59
+ }
60
+ }
61
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/sui/codegen/codegen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,eAAe,EAA4B,MAAM,gBAAgB,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAkB,MAAM,qBAAqB,CAAA;AAE3E,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,MAAM,GAAG,eAAe;IACrE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC3B,OAAM;KACP;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAA;IACnD,MAAM,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;IAC5B,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AACrC,CAAC;AAED,SAAS,cAAc,CAAC,OAAmB;IACzC,QAAQ,OAAO,EAAE;QACf,KAAK,UAAU,CAAC,QAAQ;YACtB,OAAO,kCAAkC,CAAA;KAC5C;IACD,OAAO,kCAAkC,CAAA;AAC3C,CAAC;AAED,SAAS,YAAY,CAAC,OAAmB;IACvC,OAAO,IAAI,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,UAAW,SAAQ,eAAqD;IAC5E,YAAY,GAAG,YAAY,CAAA;IAC3B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAA;IAC9B,MAAM,GAAG,KAAK,CAAA;IACd,iBAAiB,GAAG,QAAQ,CAAA;IAE5B,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,OAAmB;QACrD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;QACpC,OAAO,MAAM,MAAM,CAAC,iCAAiC,CAAC,OAAO,CAAC,CAAA;IAChE,CAAC;IAED,2BAA2B,CAAC,MAAwB;QAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,SAAS,CAAC,OAAiC;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IACpD,CAAC;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;QACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAA;QAErD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAClD,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aACrD;SACF;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,OAAO,GAAG,CAAC,MAAM,CAAA;SAClB;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;CACF","sourcesContent":["import { SuiNetwork } from '../network.js'\nimport * as fs from 'fs'\nimport chalk from 'chalk'\nimport { NeutralMoveModule, NeutralMoveStruct } from '../../move/neutral-models.js'\nimport { AbstractCodegen } from '../../move/abstract-codegen.js'\nimport { JsonRpcProvider, SuiMoveNormalizedModules } from '@mysten/sui.js'\nimport { toNeutralModule } from '../move-types.js'\nimport { moduleQname, SPLITTER, TypeDescriptor } from '../../move/index.js'\n\nexport async function codegen(abisDir: string, outDir = 'src/types/sui') {\n if (!fs.existsSync(abisDir)) {\n return\n }\n console.log(chalk.green('Generated Types for Sui'))\n const gen = new SuiCodeGen()\n await gen.generate(abisDir, outDir)\n}\n\nfunction getRpcEndpoint(network: SuiNetwork): string {\n switch (network) {\n case SuiNetwork.TEST_NET:\n return 'https://fullnode.testnet.sui.io/'\n }\n return 'https://fullnode.mainnet.sui.io/'\n}\n\nfunction getRpcClient(network: SuiNetwork): JsonRpcProvider {\n return new JsonRpcProvider(getRpcEndpoint(network))\n}\n\nclass SuiCodeGen extends AbstractCodegen<SuiMoveNormalizedModules, SuiNetwork> {\n ADDRESS_TYPE = 'SuiAddress'\n MAIN_NET = SuiNetwork.MAIN_NET\n TEST_NET = SuiNetwork.TEST_NET\n PREFIX = 'Sui'\n STRUCT_FIELD_NAME = 'fields'\n\n async fetchModules(account: string, network: SuiNetwork): Promise<SuiMoveNormalizedModules> {\n const client = getRpcClient(network)\n return await client.getNormalizedMoveModulesByPackage(account)\n }\n\n getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[] {\n return params.slice(0, params.length - 1)\n }\n\n toNeutral(modules: SuiMoveNormalizedModules): NeutralMoveModule[] {\n return Object.values(modules).map(toNeutralModule)\n }\n\n getEventStructs(module: NeutralMoveModule) {\n const qname = moduleQname(module)\n const eventMap = new Map<string, NeutralMoveStruct>()\n\n for (const struct of module.structs) {\n const abilities = new Set(struct.abilities)\n if (abilities.has('Drop') && abilities.has('Copy')) {\n eventMap.set(qname + SPLITTER + struct.name, struct)\n }\n }\n return eventMap\n }\n\n readModulesFile(fullPath: string) {\n const res = super.readModulesFile(fullPath)\n if (res.result) {\n return res.result\n }\n return res\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export * from './codegen.js';
@@ -0,0 +1,2 @@
1
+ export * from './codegen.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sui/codegen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA","sourcesContent":["export * from './codegen.js'\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ // #!/usr/bin/env node
2
+ import { codegen } from './codegen.js';
3
+ if (process.argv.length > 3) {
4
+ const abisDir = process.argv[2];
5
+ const targetDir = process.argv[3];
6
+ await codegen(abisDir, targetDir);
7
+ }
8
+ else {
9
+ console.error('Not enough argument');
10
+ process.exit(1);
11
+ }
12
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/sui/codegen/run.ts"],"names":[],"mappings":"AAAA,sBAAsB;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAEjC,MAAM,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;CAClC;KAAM;IACL,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;CAChB","sourcesContent":["// #!/usr/bin/env node\n\nimport { codegen } from './codegen.js'\n\nif (process.argv.length > 3) {\n const abisDir = process.argv[2]\n const targetDir = process.argv[3]\n\n await codegen(abisDir, targetDir)\n} else {\n console.error('Not enough argument')\n process.exit(1)\n}\n"]}
@@ -2,4 +2,6 @@ export { SuiBaseProcessor, SuiBindOptions } from './sui-processor.js';
2
2
  export * from './network.js';
3
3
  export * from './context.js';
4
4
  export * from './models.js';
5
+ export type { SuiAddress } from './move-types.js';
6
+ export * from './move-coder.js';
5
7
  export { SuiPlugin } from './sui-plugin.js';
package/lib/sui/index.js CHANGED
@@ -2,5 +2,6 @@ export { SuiBaseProcessor, SuiBindOptions } from './sui-processor.js';
2
2
  export * from './network.js';
3
3
  export * from './context.js';
4
4
  export * from './models.js';
5
+ export * from './move-coder.js';
5
6
  export { SuiPlugin } from './sui-plugin.js';
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAErE,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA","sourcesContent":["export { SuiBaseProcessor, SuiBindOptions } from './sui-processor.js'\n\nexport * from './network.js'\nexport * from './context.js'\nexport * from './models.js'\n\nexport { SuiPlugin } from './sui-plugin.js'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAErE,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAI3B,cAAc,iBAAiB,CAAA;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA","sourcesContent":["export { SuiBaseProcessor, SuiBindOptions } from './sui-processor.js'\n\nexport * from './network.js'\nexport * from './context.js'\nexport * from './models.js'\n\nexport type { SuiAddress } from './move-types.js'\n\nexport * from './move-coder.js'\n\nexport { SuiPlugin } from './sui-plugin.js'\n"]}
@@ -1,4 +1,4 @@
1
- import { MoveEvent } from '@mysten/sui.js';
1
+ import { MoveEvent, MoveCall } from '@mysten/sui.js';
2
2
  export type TypedEventInstance<T> = MoveEvent & {
3
3
  /**
4
4
  * decoded data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch
@@ -6,3 +6,9 @@ export type TypedEventInstance<T> = MoveEvent & {
6
6
  fields_decoded: T;
7
7
  type_arguments: string[];
8
8
  };
9
+ export type TypedEntryFunctionPayload<T extends Array<any>> = MoveCall & {
10
+ /**
11
+ * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch
12
+ */
13
+ arguments_decoded: T;
14
+ };
package/lib/sui/models.js CHANGED
@@ -1,25 +1,2 @@
1
1
  export {};
2
- //
3
- // // Don't use intermediate type to make IDE happier
4
- // export type TypedEntryFunctionPayload<T extends Array<any>> = TransactionPayload_EntryFunctionPayload & {
5
- // /**
6
- // * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch
7
- // */
8
- // arguments_decoded: T
9
- // }
10
- //
11
- // export type TypedMoveResource<T> = MoveResource & {
12
- // data_decoded: T
13
- // type_arguments: string[]
14
- // }
15
- //
16
- // export interface StructWithTag {
17
- // type: string
18
- // data: any
19
- // }
20
- //
21
- // export interface StructWithType<T> extends StructWithTag {
22
- // data_decoded: T
23
- // type_arguments: string[]
24
- // }
25
2
  //# sourceMappingURL=models.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/sui/models.ts"],"names":[],"mappings":";AAeA,EAAE;AACF,qDAAqD;AACrD,4GAA4G;AAC5G,QAAQ;AACR,oHAAoH;AACpH,QAAQ;AACR,yBAAyB;AACzB,IAAI;AACJ,EAAE;AACF,sDAAsD;AACtD,oBAAoB;AACpB,6BAA6B;AAC7B,IAAI;AACJ,EAAE;AACF,mCAAmC;AACnC,iBAAiB;AACjB,cAAc;AACd,IAAI;AACJ,EAAE;AACF,6DAA6D;AAC7D,oBAAoB;AACpB,6BAA6B;AAC7B,IAAI","sourcesContent":["import { MoveEvent } from '@mysten/sui.js'\n\n// export type MoveEvent = MoveEvent & {\n// }\n\n//\nexport type TypedEventInstance<T> = MoveEvent & {\n /**\n * decoded data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n fields_decoded: T\n\n type_arguments: string[]\n}\n\n//\n// // Don't use intermediate type to make IDE happier\n// export type TypedEntryFunctionPayload<T extends Array<any>> = TransactionPayload_EntryFunctionPayload & {\n// /**\n// * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n// */\n// arguments_decoded: T\n// }\n//\n// export type TypedMoveResource<T> = MoveResource & {\n// data_decoded: T\n// type_arguments: string[]\n// }\n//\n// export interface StructWithTag {\n// type: string\n// data: any\n// }\n//\n// export interface StructWithType<T> extends StructWithTag {\n// data_decoded: T\n// type_arguments: string[]\n// }\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/sui/models.ts"],"names":[],"mappings":"","sourcesContent":["import { MoveEvent, MoveCall } from '@mysten/sui.js'\n\nexport type TypedEventInstance<T> = MoveEvent & {\n /**\n * decoded data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n fields_decoded: T\n\n type_arguments: string[]\n}\n\nexport type TypedEntryFunctionPayload<T extends Array<any>> = MoveCall & {\n /**\n * decoded argument data using ABI, undefined if there is decoding error, usually because the ABI/data mismatch\n */\n arguments_decoded: T\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { TypedEventInstance } from './models.js';
2
+ import { AbstractMoveCoder } from '../move/abstract-move-coder.js';
3
+ import { MoveCall, MoveEvent, SuiMoveNormalizedModule } from '@mysten/sui.js';
4
+ export declare class MoveCoder extends AbstractMoveCoder<MoveEvent> {
5
+ load(module: SuiMoveNormalizedModule): void;
6
+ decodeEvent<T>(event: MoveEvent): TypedEventInstance<T> | undefined;
7
+ filterAndDecodeEvents<T>(typeQname: string, resources: MoveEvent[]): TypedEventInstance<T>[];
8
+ decodeFunctionPayload(payload: MoveCall): MoveCall;
9
+ }
10
+ export declare const MOVE_CODER: MoveCoder;
11
+ export declare function defaultMoveCoder(): MoveCoder;
@@ -0,0 +1,53 @@
1
+ import { AbstractMoveCoder } from '../move/abstract-move-coder.js';
2
+ import { toNeutralModule } from './move-types.js';
3
+ import { SPLITTER } from '../move/index.js';
4
+ export class MoveCoder extends AbstractMoveCoder {
5
+ load(module) {
6
+ if (this.contains(module.address, module.name)) {
7
+ return;
8
+ }
9
+ this.loadNeutral(toNeutralModule(module));
10
+ }
11
+ decodeEvent(event) {
12
+ const res = this.decodedInternal({ ...event, data: event.fields });
13
+ return { ...event, fields_decoded: res?.data_decoded, type_arguments: res?.type_arguments || [] };
14
+ }
15
+ filterAndDecodeEvents(typeQname, resources) {
16
+ const resp = this.filterAndDecodeInternal(typeQname, resources.map((event) => {
17
+ return { ...event, data: event.fields, type: event.type };
18
+ }));
19
+ return resp.map((res) => {
20
+ delete res.data_decoded;
21
+ const event = res;
22
+ return { ...event, fields_decoded: res?.data_decoded, type_arguments: res?.type_arguments || [] };
23
+ });
24
+ }
25
+ decodeFunctionPayload(payload) {
26
+ // this.loadTypes(registry)
27
+ const argumentsTyped = [];
28
+ try {
29
+ const functionType = [payload.package.objectId, payload.module, payload.function].join(SPLITTER);
30
+ const func = this.getMoveFunction(functionType);
31
+ const params = func.params.slice(0, func.params.length - 1);
32
+ const args = payload.arguments || [];
33
+ for (const [idx, arg] of args.entries()) {
34
+ // TODO consider apply payload.type_arguments, but this might be hard since we don't code gen for them
35
+ const argType = params[idx];
36
+ argumentsTyped.push(this.decode(arg, argType));
37
+ }
38
+ }
39
+ catch (e) {
40
+ console.error('Decoding error for ', JSON.stringify(payload), e);
41
+ return payload;
42
+ }
43
+ return {
44
+ ...payload,
45
+ arguments_decoded: argumentsTyped,
46
+ };
47
+ }
48
+ }
49
+ export const MOVE_CODER = new MoveCoder();
50
+ export function defaultMoveCoder() {
51
+ return MOVE_CODER;
52
+ }
53
+ //# sourceMappingURL=move-coder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/sui/move-coder.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypedEventInstance, TypedEntryFunctionPayload } from './models.js'\nimport { AbstractMoveCoder } from '../move/abstract-move-coder.js'\nimport { MoveCall, MoveEvent, SuiMoveNormalizedModule } from '@mysten/sui.js'\nimport { toNeutralModule } from './move-types.js'\nimport { SPLITTER } from '../move/index.js'\n\nexport class MoveCoder extends AbstractMoveCoder<MoveEvent> {\n load(module: SuiMoveNormalizedModule) {\n if (this.contains(module.address, module.name)) {\n return\n }\n this.loadNeutral(toNeutralModule(module))\n }\n\n decodeEvent<T>(event: MoveEvent): TypedEventInstance<T> | undefined {\n const res = this.decodedInternal<T>({ ...event, data: event.fields })\n return { ...event, fields_decoded: res?.data_decoded as T, type_arguments: res?.type_arguments || [] }\n }\n filterAndDecodeEvents<T>(typeQname: string, resources: MoveEvent[]): TypedEventInstance<T>[] {\n const resp = this.filterAndDecodeInternal(\n typeQname,\n resources.map((event) => {\n return { ...event, data: event.fields, type: event.type }\n })\n )\n return resp.map((res) => {\n delete res.data_decoded\n const event = res as MoveEvent\n return { ...event, fields_decoded: res?.data_decoded as T, type_arguments: res?.type_arguments || [] }\n })\n }\n\n decodeFunctionPayload(payload: MoveCall): MoveCall {\n // this.loadTypes(registry)\n const argumentsTyped: any[] = []\n\n try {\n const functionType = [payload.package.objectId, payload.module, payload.function].join(SPLITTER)\n const func = this.getMoveFunction(functionType)\n const params = func.params.slice(0, func.params.length - 1)\n const args = payload.arguments || []\n for (const [idx, arg] of args.entries()) {\n // TODO consider apply payload.type_arguments, but this might be hard since we don't code gen for them\n const argType = params[idx]\n argumentsTyped.push(this.decode(arg, argType))\n }\n } catch (e) {\n console.error('Decoding error for ', JSON.stringify(payload), e)\n return payload\n }\n\n return {\n ...payload,\n arguments_decoded: argumentsTyped,\n } as TypedEntryFunctionPayload<any>\n }\n}\n\nexport const MOVE_CODER = new MoveCoder()\n\nexport function defaultMoveCoder(): MoveCoder {\n return MOVE_CODER\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { SuiMoveNormalizedField, SuiMoveNormalizedFunction, SuiMoveNormalizedModule, SuiMoveNormalizedStruct, SuiMoveNormalizedType } from '@mysten/sui.js';
2
+ import { NeutralMoveFunction, NeutralMoveModule, NeutralMoveStruct, NeutralMoveStructField } from '../move/neutral-models.js';
3
+ import { TypeDescriptor } from '../move/index.js';
4
+ export type { SuiAddress } from '@mysten/sui.js';
5
+ export declare function toNeutralModule(module: SuiMoveNormalizedModule): NeutralMoveModule;
6
+ export declare function toNeutralFunction(name: string, func: SuiMoveNormalizedFunction): NeutralMoveFunction;
7
+ export declare function toNeutralStruct(name: string, struct: SuiMoveNormalizedStruct): NeutralMoveStruct;
8
+ export declare function toNeutralField(module: SuiMoveNormalizedField): NeutralMoveStructField;
9
+ export declare function convertToTypeDescriptor(normalizedType: SuiMoveNormalizedType): TypeDescriptor;
@@ -0,0 +1,81 @@
1
+ import { NeutralMoveFunctionVisibility, } from '../move/neutral-models.js';
2
+ import { SPLITTER, TypeDescriptor } from '../move/index.js';
3
+ export function toNeutralModule(module) {
4
+ return {
5
+ address: module.address,
6
+ exposed_functions: Object.entries(module.exposed_functions).map(([n, f]) => toNeutralFunction(n, f)),
7
+ name: module.name,
8
+ structs: Object.entries(module.structs).map(([n, s]) => toNeutralStruct(n, s)),
9
+ };
10
+ }
11
+ export function toNeutralFunction(name, func) {
12
+ let visibility;
13
+ switch (func.visibility) {
14
+ case 'Private':
15
+ visibility = NeutralMoveFunctionVisibility.PRIVATE;
16
+ break;
17
+ case 'Public':
18
+ visibility = NeutralMoveFunctionVisibility.PUBLIC;
19
+ break;
20
+ case 'Friend':
21
+ visibility = NeutralMoveFunctionVisibility.FRIEND;
22
+ break;
23
+ }
24
+ return {
25
+ generic_type_params: func.type_parameters.map((p) => {
26
+ return { constraints: p.abilities };
27
+ }),
28
+ is_entry: func.is_entry,
29
+ name: name,
30
+ params: func.parameters.map(convertToTypeDescriptor),
31
+ return: func.return_.map(convertToTypeDescriptor),
32
+ visibility: visibility,
33
+ };
34
+ }
35
+ export function toNeutralStruct(name, struct) {
36
+ return {
37
+ abilities: struct.abilities.abilities,
38
+ fields: struct.fields.map(toNeutralField),
39
+ generic_type_params: struct.type_parameters.map((p) => {
40
+ return { constraints: p.constraints.abilities };
41
+ }),
42
+ is_native: false,
43
+ name: name,
44
+ };
45
+ }
46
+ export function toNeutralField(module) {
47
+ return {
48
+ name: module.name,
49
+ type: convertToTypeDescriptor(module.type_),
50
+ };
51
+ }
52
+ export function convertToTypeDescriptor(normalizedType) {
53
+ if (typeof normalizedType === 'string') {
54
+ return new TypeDescriptor(normalizedType);
55
+ }
56
+ if ('Struct' in normalizedType) {
57
+ // normalizedType.Struct.
58
+ // return normalizedType;
59
+ const qname = [normalizedType.Struct.address, normalizedType.Struct.module, normalizedType.Struct.name].join(SPLITTER);
60
+ const args = normalizedType.Struct.type_arguments.map(convertToTypeDescriptor);
61
+ return new TypeDescriptor(qname, args);
62
+ }
63
+ if ('Vector' in normalizedType) {
64
+ return new TypeDescriptor('vector', [convertToTypeDescriptor(normalizedType.Vector)]);
65
+ }
66
+ if ('TypeParameter' in normalizedType) {
67
+ return new TypeDescriptor('T' + normalizedType.TypeParameter);
68
+ }
69
+ if ('Reference' in normalizedType) {
70
+ const res = convertToTypeDescriptor(normalizedType.Reference);
71
+ res.reference = true;
72
+ return res;
73
+ }
74
+ if ('MutableReference' in normalizedType) {
75
+ const res = convertToTypeDescriptor(normalizedType.MutableReference);
76
+ res.reference = true;
77
+ return res;
78
+ }
79
+ throw new Error('Unexpected sui type');
80
+ }
81
+ //# sourceMappingURL=move-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move-types.js","sourceRoot":"","sources":["../../src/sui/move-types.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SuiMoveNormalizedField,\n SuiMoveNormalizedFunction,\n SuiMoveNormalizedModule,\n SuiMoveNormalizedStruct,\n SuiMoveNormalizedType,\n} from '@mysten/sui.js'\nimport {\n NeutralMoveFunction,\n NeutralMoveFunctionVisibility,\n NeutralMoveModule,\n NeutralMoveStruct,\n NeutralMoveStructField,\n} from '../move/neutral-models.js'\nimport { SPLITTER, TypeDescriptor } from '../move/index.js'\n\nexport type { SuiAddress } from '@mysten/sui.js'\n\nexport function toNeutralModule(module: SuiMoveNormalizedModule): NeutralMoveModule {\n return {\n address: module.address,\n exposed_functions: Object.entries(module.exposed_functions).map(([n, f]) => toNeutralFunction(n, f)),\n name: module.name,\n structs: Object.entries(module.structs).map(([n, s]) => toNeutralStruct(n, s)),\n }\n}\n\nexport function toNeutralFunction(name: string, func: SuiMoveNormalizedFunction): NeutralMoveFunction {\n let visibility\n switch (func.visibility) {\n case 'Private':\n visibility = NeutralMoveFunctionVisibility.PRIVATE\n break\n case 'Public':\n visibility = NeutralMoveFunctionVisibility.PUBLIC\n break\n case 'Friend':\n visibility = NeutralMoveFunctionVisibility.FRIEND\n break\n }\n return {\n generic_type_params: func.type_parameters.map((p) => {\n return { constraints: p.abilities }\n }),\n is_entry: func.is_entry,\n name: name,\n params: func.parameters.map(convertToTypeDescriptor),\n return: func.return_.map(convertToTypeDescriptor),\n visibility: visibility,\n }\n}\n\nexport function toNeutralStruct(name: string, struct: SuiMoveNormalizedStruct): NeutralMoveStruct {\n return {\n abilities: struct.abilities.abilities,\n fields: struct.fields.map(toNeutralField),\n generic_type_params: struct.type_parameters.map((p) => {\n return { constraints: p.constraints.abilities }\n }),\n is_native: false,\n name: name,\n }\n}\n\nexport function toNeutralField(module: SuiMoveNormalizedField): NeutralMoveStructField {\n return {\n name: module.name,\n type: convertToTypeDescriptor(module.type_),\n }\n}\n\nexport function convertToTypeDescriptor(normalizedType: SuiMoveNormalizedType): TypeDescriptor {\n if (typeof normalizedType === 'string') {\n return new TypeDescriptor(normalizedType)\n }\n\n if ('Struct' in normalizedType) {\n // normalizedType.Struct.\n // return normalizedType;\n const qname = [normalizedType.Struct.address, normalizedType.Struct.module, normalizedType.Struct.name].join(\n SPLITTER\n )\n\n const args = normalizedType.Struct.type_arguments.map(convertToTypeDescriptor)\n\n return new TypeDescriptor(qname, args)\n }\n\n if ('Vector' in normalizedType) {\n return new TypeDescriptor('vector', [convertToTypeDescriptor(normalizedType.Vector)])\n }\n if ('TypeParameter' in normalizedType) {\n return new TypeDescriptor('T' + normalizedType.TypeParameter)\n }\n\n if ('Reference' in normalizedType) {\n const res = convertToTypeDescriptor(normalizedType.Reference)\n res.reference = true\n return res\n }\n\n if ('MutableReference' in normalizedType) {\n const res = convertToTypeDescriptor(normalizedType.MutableReference)\n res.reference = true\n return res\n }\n\n throw new Error('Unexpected sui type')\n}\n"]}
@@ -4,6 +4,7 @@ import { SuiNetwork, getChainId } from './network.js';
4
4
  import { ServerError, Status } from 'nice-grpc';
5
5
  import { SuiContext } from './context.js';
6
6
  import { getMoveCalls } from './utils.js';
7
+ import { defaultMoveCoder } from './move-coder.js';
7
8
  class IndexConfigure {
8
9
  address;
9
10
  network;
@@ -56,8 +57,7 @@ export class SuiBaseProcessor {
56
57
  for (const evt of events) {
57
58
  if ('moveEvent' in evt) {
58
59
  const eventInstance = evt.moveEvent;
59
- const decoded = eventInstance; // TODO
60
- // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)
60
+ const decoded = defaultMoveCoder().decodeEvent(eventInstance);
61
61
  await handler(decoded || eventInstance, ctx);
62
62
  }
63
63
  }
@@ -93,7 +93,7 @@ export class SuiBaseProcessor {
93
93
  throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length);
94
94
  }
95
95
  const payload = calls[0];
96
- const decoded = payload; // MOVE_CODER.decodeFunctionPayload(payload)
96
+ const decoded = defaultMoveCoder().decodeFunctionPayload(payload);
97
97
  await handler(decoded, ctx);
98
98
  }
99
99
  return ctx.getProcessResult();
@@ -1 +1 @@
1
- {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = eventInstance // TODO\n // const decoded = MOVE_CODER.decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = payload // MOVE_CODER.decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
1
+ {"version":3,"file":"sui-processor.js","sourceRoot":"","sources":["../../src/sui/sui-processor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data_SuiCall, Data_SuiEvent, MoveFetchConfig } from '@sentio/protos'\nimport { ListStateStorage } from '@sentio/runtime'\nimport { SuiNetwork, getChainId } from './network.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { SuiContext } from './context.js'\nimport { MoveEvent, SuiTransactionResponse, getMoveCallTransaction, MoveCall } from '@mysten/sui.js'\nimport { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter } from '../move/index.js'\nimport { getMoveCalls } from './utils.js'\nimport { defaultMoveCoder } from './move-coder.js'\n\nclass IndexConfigure {\n address: string\n network: SuiNetwork\n startTimestamp: number\n}\n\nexport class SuiBindOptions {\n address: string\n network?: SuiNetwork\n startTimestamp?: number\n}\n\nexport class SuiProcessorState extends ListStateStorage<SuiBaseProcessor> {\n static INSTANCE = new SuiProcessorState()\n}\n\nexport class SuiBaseProcessor {\n readonly moduleName: string\n config: IndexConfigure\n\n eventHandlers: EventHandler<Data_SuiEvent>[] = []\n callHandlers: CallHandler<Data_SuiCall>[] = []\n\n constructor(name: string, options: SuiBindOptions) {\n this.config = configure(options)\n SuiProcessorState.INSTANCE.addValue(this)\n }\n\n getChainId(): string {\n return getChainId(this.config.network)\n }\n\n public onMoveEvent(\n handler: (event: MoveEvent, ctx: SuiContext) => void,\n filter: EventFilter | EventFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: EventFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n\n const processor = this\n\n this.eventHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'event is null')\n }\n const txn = data.transaction as SuiTransactionResponse\n if (!txn.effects.events || !txn.effects.events.length) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'no event in the transactions')\n }\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n txn\n )\n\n const events = txn.effects.events\n txn.effects.events = []\n for (const evt of events) {\n if ('moveEvent' in evt) {\n const eventInstance = evt.moveEvent as MoveEvent\n const decoded = defaultMoveCoder().decodeEvent<any>(eventInstance)\n await handler(decoded || eventInstance, ctx)\n }\n }\n\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n\n public onEntryFunctionCall(\n handler: (call: MoveCall, ctx: SuiContext) => void,\n filter: FunctionNameAndCallFilter | FunctionNameAndCallFilter[],\n fetchConfig?: MoveFetchConfig\n ): SuiBaseProcessor {\n let _filters: FunctionNameAndCallFilter[] = []\n const _fetchConfig = fetchConfig || MoveFetchConfig.fromPartial({})\n\n if (Array.isArray(filter)) {\n _filters = filter\n } else {\n _filters.push(filter)\n }\n\n // const address = this.config.address\n // const moduleName = this.moduleName\n const processor = this\n\n this.callHandlers.push({\n handler: async function (data) {\n if (!data.transaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'call is null')\n }\n const tx = data.transaction as SuiTransactionResponse\n\n const ctx = new SuiContext(\n processor.moduleName,\n processor.config.network,\n processor.config.address,\n data.timestamp || new Date(0),\n data.slot,\n tx\n )\n if (tx) {\n const calls: MoveCall[] = getMoveCalls(tx)\n if (calls.length !== 1) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Unexpected number of call transactions ' + calls.length)\n }\n const payload = calls[0]\n const decoded = defaultMoveCoder().decodeFunctionPayload(payload)\n await handler(decoded, ctx)\n }\n return ctx.getProcessResult()\n },\n filters: _filters,\n fetchConfig: _fetchConfig,\n })\n return this\n }\n}\n\nfunction configure(options: SuiBindOptions): IndexConfigure {\n return {\n startTimestamp: options.startTimestamp || 0,\n address: options.address,\n network: options.network || SuiNetwork.MAIN_NET,\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sui.test.js","sourceRoot":"","sources":["../../../src/sui/tests/sui.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { SuiBaseProcessor, SuiBindOptions } from '../index.js'\n\nimport { TestProcessorServer } from '../../testing/index.js'\n\ndescribe('Test Sui Example', () => {\n const service = new TestProcessorServer(async () => {\n class SwapProcessor extends SuiBaseProcessor {\n static bind(options: SuiBindOptions): SwapProcessor {\n return new SwapProcessor('TicTacToe', options)\n }\n }\n\n SwapProcessor.bind({\n startTimestamp: 0,\n address: '0x8235459df815e77668b4a49bb36e229f3321f432',\n }).onMoveEvent(\n (evt, ctx) => {\n const amount = parseInt(evt.fields?.x_amount)\n ctx.meter.Counter('amount').add(amount)\n },\n {\n type: 'pool::LiquidityEvent',\n }\n )\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(1)\n })\n\n test('Check event dispatch', async () => {\n const res = await service.sui.testEvent(testData as any, testData.effects.events.length - 1)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n })\n})\n\nconst testData = {\n certificate: {\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n data: {\n transactions: [\n {\n Call: {\n package: {\n objectId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n version: 1,\n digest: 'THgI2ZcsS4aU5UNvLjB1huyOTXZ+QEavMOWGPC1UnHE=',\n },\n module: 'pool',\n function: 'add_liquidity',\n typeArguments: ['0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL', '0x2::sui::SUI'],\n arguments: [\n '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n [64, 13, 3, 0, 0, 0, 0, 0],\n [16, 0, 0, 0, 0, 0, 0, 0],\n ],\n },\n },\n ],\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n gasPayment: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n digest: '+AVDN5/rqB755p9bU4Qh0gpn8FlaA6+ZRO//VPUSTVA=',\n },\n gasPrice: 618,\n gasBudget: 1000,\n },\n txSignature:\n 'ANprZ/tjWOt7YBpfksRHlcRfMzHFNd1flhkSs6ld/CX8h6CYkdctIXPrcyLrUpwEDqM7XLJ1v4x/1670E6sfngv83dcb+0vmesdX0PdnU6Mte4NGe5+0kTZ3/sb71VTMNA==',\n authSignInfo: {\n epoch: 22,\n signature: 'AZKQTmXsBGPz0Z3IKNXJCiCuIkFEqmGfQnm6R+umm34ppHHMSIvre1ThTcwSAnp3zQ==',\n signers_map: [\n 58, 48, 0, 0, 1, 0, 0, 0, 0, 0, 27, 0, 16, 0, 0, 0, 0, 0, 1, 0, 3, 0, 4, 0, 7, 0, 8, 0, 9, 0, 10, 0, 13, 0, 15,\n 0, 16, 0, 18, 0, 19, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 35,\n 0, 36, 0, 40, 0,\n ],\n },\n },\n effects: {\n status: {\n status: 'success',\n },\n gasUsed: {\n computationCost: 268212,\n storageCost: 95,\n storageRebate: 73,\n },\n sharedObjects: [\n {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493761,\n digest: 'SoxFXUfrWjtkqQ2zfCFxykkM0epbShSqc/5JfSAJgB4=',\n },\n ],\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n created: [\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n digest: '6HGSh1X72r21XbHg0zEo43uIkEfyVVALbASxB7N1eIs=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n digest: 'pTWwShZgjwZAZrVDI/i0xV25TTWEPBRbsCBBVZJsiXc=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n digest: '0Wo2uSBUhqNGI6mveDBAwlckVKBFkW9MjPjjTiiKBHU=',\n },\n },\n ],\n mutated: [\n {\n owner: {\n Shared: {\n initial_shared_version: 1020,\n },\n },\n reference: {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n digest: 'Y7lbJv2OkIe+awkSaZn6RGw6ga1IhklP1/Ij+vhu1Ns=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n ],\n deleted: [\n {\n objectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n {\n objectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n ],\n gasObject: {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n events: [\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Gas',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -268234,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n amount: 199999984,\n },\n },\n {\n mutateObject: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n objectType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::Pool<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LSP<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n coinObjectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n amount: 741,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n amount: 800000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -1,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 5624,\n amount: -200000000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2492561,\n amount: -1000000,\n },\n },\n {\n moveEvent: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n type: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LiquidityEvent',\n fields: {\n is_added: true,\n lsp_amount: '741',\n pool_id: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n x_amount: '200000',\n y_amount: '16',\n },\n bcs: 'SBqcMTqnJ15vyf9g66kZVks4UIYBQA0DAAAAAAAQAAAAAAAAAOUCAAAAAAAA',\n },\n },\n ],\n dependencies: [\n '4EXKjF3vTnoDEz54pDk6d2njs8roWwq3cfFAg2kUgKU4',\n '791GgUyLfBEhdsPSJ2HrHBPTm2599JLBnjbn6ySZhK3z',\n '8rq48ohgYu2QAHbwNHv1bLh8ZMgwiyghx1rzTzbWUB5B',\n 'CN8EG4p7x2mWuX8Tt82kWuSWLC43Vjfgp1nDzRLkibYE',\n 'DYUqe5hDjvyhG2EF2WsShTYAauVuC8oavB9U3eABScu3',\n ],\n },\n timestamp_ms: 1676013644266,\n parsed_data: null,\n}\n"]}
1
+ {"version":3,"file":"sui.test.js","sourceRoot":"","sources":["../../../src/sui/tests/sui.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect } from 'chai'\nimport { TestProcessorServer } from '../../testing/index.js'\n\nimport { pool } from './types/testnet/swap.js'\nimport { SuiNetwork } from '../network.js'\n\ndescribe('Test Sui Example', () => {\n const service = new TestProcessorServer(async () => {\n pool\n .bind({\n startTimestamp: 0,\n address: '0x8235459df815e77668b4a49bb36e229f3321f432',\n })\n .onEventLiquidityEvent((evt, ctx) => {\n const amount_original = BigInt(evt.fields?.x_amount)\n const amount = evt.fields_decoded.x_amount\n expect(amount_original).eq(amount)\n ctx.meter.Counter('amount').add(amount, { pool: evt.fields_decoded.pool_id })\n })\n .onEntryAddLiquidity((call, ctx) => {\n const amount = call.arguments_decoded[3]\n ctx.meter.Gauge('amount2').record(amount)\n })\n })\n\n beforeAll(async () => {\n await service.start({ templateInstances: [] })\n })\n\n test('check configuration ', async () => {\n const config = await service.getConfig({})\n expect(config.contractConfigs).length(1)\n })\n\n test('Check event dispatch', async () => {\n const res = await service.sui.testEvent(testData as any, testData.effects.events.length - 1, SuiNetwork.TEST_NET)\n expect(res.result?.counters).length(1)\n expect(res.result?.gauges).length(0)\n })\n\n test('Check call dispatch', async () => {\n const res = await service.sui.testEntryFunctionCall(testData as any, SuiNetwork.TEST_NET)\n expect(res.result?.counters).length(0)\n expect(res.result?.gauges).length(1)\n })\n})\n\nconst testData = {\n certificate: {\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n data: {\n transactions: [\n {\n Call: {\n package: {\n objectId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n version: 1,\n digest: 'THgI2ZcsS4aU5UNvLjB1huyOTXZ+QEavMOWGPC1UnHE=',\n },\n module: 'pool',\n function: 'add_liquidity',\n typeArguments: ['0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL', '0x2::sui::SUI'],\n arguments: [\n '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n [64, 13, 3, 0, 0, 0, 0, 0],\n [16, 0, 0, 0, 0, 0, 0, 0],\n ],\n },\n },\n ],\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n gasPayment: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n digest: '+AVDN5/rqB755p9bU4Qh0gpn8FlaA6+ZRO//VPUSTVA=',\n },\n gasPrice: 618,\n gasBudget: 1000,\n },\n txSignature:\n 'ANprZ/tjWOt7YBpfksRHlcRfMzHFNd1flhkSs6ld/CX8h6CYkdctIXPrcyLrUpwEDqM7XLJ1v4x/1670E6sfngv83dcb+0vmesdX0PdnU6Mte4NGe5+0kTZ3/sb71VTMNA==',\n authSignInfo: {\n epoch: 22,\n signature: 'AZKQTmXsBGPz0Z3IKNXJCiCuIkFEqmGfQnm6R+umm34ppHHMSIvre1ThTcwSAnp3zQ==',\n signers_map: [\n 58, 48, 0, 0, 1, 0, 0, 0, 0, 0, 27, 0, 16, 0, 0, 0, 0, 0, 1, 0, 3, 0, 4, 0, 7, 0, 8, 0, 9, 0, 10, 0, 13, 0, 15,\n 0, 16, 0, 18, 0, 19, 0, 21, 0, 22, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 33, 0, 35,\n 0, 36, 0, 40, 0,\n ],\n },\n },\n effects: {\n status: {\n status: 'success',\n },\n gasUsed: {\n computationCost: 268212,\n storageCost: 95,\n storageRebate: 73,\n },\n sharedObjects: [\n {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493761,\n digest: 'SoxFXUfrWjtkqQ2zfCFxykkM0epbShSqc/5JfSAJgB4=',\n },\n ],\n transactionDigest: '7DSTY6euDQKq7fn3N7654Xf1pbpSuBuYarW2c6B6ixio',\n created: [\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n digest: '6HGSh1X72r21XbHg0zEo43uIkEfyVVALbASxB7N1eIs=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n digest: 'pTWwShZgjwZAZrVDI/i0xV25TTWEPBRbsCBBVZJsiXc=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n digest: '0Wo2uSBUhqNGI6mveDBAwlckVKBFkW9MjPjjTiiKBHU=',\n },\n },\n ],\n mutated: [\n {\n owner: {\n Shared: {\n initial_shared_version: 1020,\n },\n },\n reference: {\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n digest: 'Y7lbJv2OkIe+awkSaZn6RGw6ga1IhklP1/Ij+vhu1Ns=',\n },\n },\n {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n ],\n deleted: [\n {\n objectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n {\n objectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2493762,\n digest: 'Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2M=',\n },\n ],\n gasObject: {\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n reference: {\n objectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493762,\n digest: 'V1y2V81JUTb1YTAy9bh/b7QOXH4RGbZ71Pstxf+6bjQ=',\n },\n },\n events: [\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Gas',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -268234,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x3f0b179f7787ed98a2ef2e6f5c6a016c982c6c6c',\n version: 2493762,\n amount: 199999984,\n },\n },\n {\n mutateObject: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n objectType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::Pool<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n objectId: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n version: 2493762,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType:\n '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LSP<0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL, 0x2::sui::SUI>',\n coinObjectId: '0xa7fe715725aa608e5102765f3af7d4d85de1a24f',\n version: 2493762,\n amount: 741,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Receive',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xcd127e648c10649935a86d74833a9c22b7ccb10c',\n version: 2493762,\n amount: 800000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x0000000000000000000000000000000000000002',\n transactionModule: 'gas',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0xd5bc168c9cbddf5918818c1d544580e97de3bd46',\n version: 2493759,\n amount: -1,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x2::sui::SUI',\n coinObjectId: '0x84210e7d5fb0be0b359ef8cdacb0d0448baf8478',\n version: 5624,\n amount: -200000000,\n },\n },\n {\n coinBalanceChange: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n changeType: 'Pay',\n owner: {\n AddressOwner: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n },\n coinType: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::TestSOL',\n coinObjectId: '0xc9b60a9fd79a9536f2f49e6827a51e8e62a7a544',\n version: 2492561,\n amount: -1000000,\n },\n },\n {\n moveEvent: {\n packageId: '0x8235459df815e77668b4a49bb36e229f3321f432',\n transactionModule: 'pool',\n sender: '0x4b63cec2b85cf31ed0ec42e5c7e79d54db1411b6',\n type: '0x8235459df815e77668b4a49bb36e229f3321f432::pool::LiquidityEvent',\n fields: {\n is_added: true,\n lsp_amount: '741',\n pool_id: '0x481a9c313aa7275e6fc9ff60eba919564b385086',\n x_amount: '200000',\n y_amount: '16',\n },\n bcs: 'SBqcMTqnJ15vyf9g66kZVks4UIYBQA0DAAAAAAAQAAAAAAAAAOUCAAAAAAAA',\n },\n },\n ],\n dependencies: [\n '4EXKjF3vTnoDEz54pDk6d2njs8roWwq3cfFAg2kUgKU4',\n '791GgUyLfBEhdsPSJ2HrHBPTm2599JLBnjbn6ySZhK3z',\n '8rq48ohgYu2QAHbwNHv1bLh8ZMgwiyghx1rzTzbWUB5B',\n 'CN8EG4p7x2mWuX8Tt82kWuSWLC43Vjfgp1nDzRLkibYE',\n 'DYUqe5hDjvyhG2EF2WsShTYAauVuC8oavB9U3eABScu3',\n ],\n },\n timestamp_ms: 1676013644266,\n parsed_data: null,\n}\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export {};
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sui/tests/types/index.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\n"]}
@@ -0,0 +1 @@
1
+ export * as _swap from './swap.js';
@@ -0,0 +1,5 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ export * as _swap from './swap.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/sui/tests/types/testnet/index.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB;AACpB,OAAO,KAAK,KAAK,MAAM,WAAW,CAAA","sourcesContent":["/* Autogenerated file. Do not edit manually. */\n/* tslint:disable */\n/* eslint-disable */\nexport * as _swap from './swap.js'\n"]}