@sentio/sdk 2.4.0 → 2.5.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) 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/bind-options.js +6 -0
  38. package/lib/eth/bind-options.js.map +1 -1
  39. package/lib/eth/tests/codegen.test.js.map +1 -1
  40. package/lib/eth/tests/erc20.js +1 -1
  41. package/lib/eth/tests/erc20.js.map +1 -1
  42. package/lib/eth/tests/logger.test.js.map +1 -1
  43. package/lib/move/abstract-codegen.d.ts +44 -0
  44. package/lib/move/abstract-codegen.js +341 -0
  45. package/lib/move/abstract-codegen.js.map +1 -0
  46. package/lib/move/abstract-move-coder.d.ts +24 -0
  47. package/lib/move/abstract-move-coder.js +141 -0
  48. package/lib/move/abstract-move-coder.js.map +1 -0
  49. package/lib/move/account.d.ts +18 -0
  50. package/lib/{aptos/codegen/typegen.js → move/account.js} +20 -82
  51. package/lib/move/account.js.map +1 -0
  52. package/lib/move/filter.d.ts +25 -0
  53. package/lib/move/filter.js +11 -0
  54. package/lib/move/filter.js.map +1 -0
  55. package/lib/move/index.d.ts +5 -25
  56. package/lib/move/index.js +5 -10
  57. package/lib/move/index.js.map +1 -1
  58. package/lib/move/neutral-models.d.ts +34 -0
  59. package/lib/move/neutral-models.js +7 -0
  60. package/lib/move/neutral-models.js.map +1 -0
  61. package/lib/move/ts-type.d.ts +2 -0
  62. package/lib/move/ts-type.js +77 -0
  63. package/lib/move/ts-type.js.map +1 -0
  64. package/lib/{aptos/codegen/typegen.test.d.ts → move/ts-type.test.d.ts} +0 -0
  65. package/lib/move/ts-type.test.js.map +1 -0
  66. package/lib/{aptos → move}/types.d.ts +1 -0
  67. package/lib/{aptos → move}/types.js +26 -3
  68. package/lib/move/types.js.map +1 -0
  69. package/lib/move/utils.d.ts +9 -0
  70. package/lib/move/utils.js +20 -0
  71. package/lib/move/utils.js.map +1 -0
  72. package/lib/sui/builtin/0x1.d.ts +114 -0
  73. package/lib/sui/builtin/0x1.js +174 -0
  74. package/lib/sui/builtin/0x1.js.map +1 -0
  75. package/lib/sui/builtin/0x2.d.ts +1047 -0
  76. package/lib/sui/builtin/0x2.js +1295 -0
  77. package/lib/sui/builtin/0x2.js.map +1 -0
  78. package/lib/sui/builtin/index.d.ts +2 -0
  79. package/lib/sui/builtin/index.js +6 -0
  80. package/lib/sui/builtin/index.js.map +1 -0
  81. package/lib/sui/codegen/codegen.d.ts +1 -0
  82. package/lib/sui/codegen/codegen.js +61 -0
  83. package/lib/sui/codegen/codegen.js.map +1 -0
  84. package/lib/sui/codegen/index.d.ts +1 -0
  85. package/lib/sui/codegen/index.js +2 -0
  86. package/lib/sui/codegen/index.js.map +1 -0
  87. package/lib/sui/codegen/run.d.ts +1 -0
  88. package/lib/sui/codegen/run.js +12 -0
  89. package/lib/sui/codegen/run.js.map +1 -0
  90. package/lib/sui/index.d.ts +2 -0
  91. package/lib/sui/index.js +1 -0
  92. package/lib/sui/index.js.map +1 -1
  93. package/lib/sui/models.d.ts +7 -1
  94. package/lib/sui/models.js +0 -23
  95. package/lib/sui/models.js.map +1 -1
  96. package/lib/sui/move-coder.d.ts +11 -0
  97. package/lib/sui/move-coder.js +53 -0
  98. package/lib/sui/move-coder.js.map +1 -0
  99. package/lib/sui/move-types.d.ts +9 -0
  100. package/lib/sui/move-types.js +81 -0
  101. package/lib/sui/move-types.js.map +1 -0
  102. package/lib/sui/sui-processor.js +3 -3
  103. package/lib/sui/sui-processor.js.map +1 -1
  104. package/lib/sui/tests/sui.test.js.map +1 -1
  105. package/lib/sui/tests/types/index.d.ts +1 -0
  106. package/lib/sui/tests/types/index.js +5 -0
  107. package/lib/sui/tests/types/index.js.map +1 -0
  108. package/lib/sui/tests/types/testnet/index.d.ts +1 -0
  109. package/lib/sui/tests/types/testnet/index.js +5 -0
  110. package/lib/sui/tests/types/testnet/index.js.map +1 -0
  111. package/lib/sui/tests/types/testnet/swap.d.ts +249 -0
  112. package/lib/sui/tests/types/testnet/swap.js +310 -0
  113. package/lib/sui/tests/types/testnet/swap.js.map +1 -0
  114. package/lib/testing/aptos-facet.js +1 -1
  115. package/lib/testing/aptos-facet.js.map +1 -1
  116. package/lib/testing/sui-facet.js +3 -2
  117. package/lib/testing/sui-facet.js.map +1 -1
  118. package/package.json +8 -5
  119. package/src/aptos/aptos-processor.ts +1 -1
  120. package/src/aptos/builtin/0x1.ts +70 -652
  121. package/src/aptos/builtin/0x3.ts +24 -59
  122. package/src/aptos/codegen/codegen.ts +35 -421
  123. package/src/aptos/models.ts +0 -10
  124. package/src/aptos/move-coder.ts +16 -150
  125. package/src/aptos/move-types.ts +62 -0
  126. package/src/aptos/tests/souffl3.ts +1 -1
  127. package/src/aptos/tests/types/reserved.ts +15 -30
  128. package/src/aptos/tests/types/soffl3.ts +19 -58
  129. package/src/aptos/tests/types/souffle.ts +15 -30
  130. package/src/aptos/utils.ts +3 -21
  131. package/src/eth/bind-options.ts +6 -0
  132. package/src/eth/tests/erc20.ts +1 -1
  133. package/src/move/abstract-codegen.ts +426 -0
  134. package/src/move/abstract-move-coder.ts +170 -0
  135. package/src/move/account.ts +96 -0
  136. package/src/move/filter.ts +33 -0
  137. package/src/move/index.ts +5 -33
  138. package/src/move/neutral-models.ts +45 -0
  139. package/src/move/ts-type.ts +86 -0
  140. package/src/{aptos → move}/types.ts +28 -3
  141. package/src/move/utils.ts +25 -0
  142. package/src/sui/abis/0x1.json +1729 -1733
  143. package/src/sui/abis/0x2.json +13279 -13283
  144. package/src/sui/builtin/0x1.ts +307 -0
  145. package/src/sui/builtin/0x2.ts +2578 -0
  146. package/src/sui/builtin/index.ts +5 -0
  147. package/src/sui/codegen/codegen.ts +71 -0
  148. package/src/sui/codegen/index.ts +1 -0
  149. package/src/sui/codegen/run.ts +13 -0
  150. package/src/sui/index.ts +4 -0
  151. package/src/sui/models.ts +7 -28
  152. package/src/sui/move-coder.ts +63 -0
  153. package/src/sui/move-types.ts +109 -0
  154. package/src/sui/sui-processor.ts +3 -3
  155. package/src/sui/tests/abis/testnet/swap.json +1752 -0
  156. package/src/sui/tests/types/index.ts +3 -0
  157. package/src/sui/tests/types/testnet/index.ts +4 -0
  158. package/src/sui/tests/types/testnet/swap.ts +698 -0
  159. package/src/testing/aptos-facet.ts +1 -1
  160. package/src/testing/sui-facet.ts +3 -2
  161. package/lib/aptos/codegen/typegen.d.ts +0 -18
  162. package/lib/aptos/codegen/typegen.js.map +0 -1
  163. package/lib/aptos/codegen/typegen.test.js.map +0 -1
  164. package/lib/aptos/types.js.map +0 -1
  165. package/lib/aptos/types.test.js.map +0 -1
  166. package/lib/jest.config.d.ts +0 -9
  167. package/lib/jest.config.js +0 -9
  168. package/lib/jest.config.js.map +0 -1
  169. package/src/aptos/codegen/typegen.ts +0 -165
  170. package/src/jest.config.ts +0 -8
@@ -3,7 +3,7 @@ import { DataBinding, HandlerType } from '@sentio/protos'
3
3
  import { getChainId } from '../aptos/network.js'
4
4
  import { TestProcessorServer } from './test-processor-server.js'
5
5
  import { AptosNetwork, Event } from '@sentio/sdk/aptos'
6
- import { parseMoveType } from '../aptos/types.js'
6
+ import { parseMoveType } from '../move/types.js'
7
7
 
8
8
  export class AptosFacet {
9
9
  server: TestProcessorServer
@@ -1,10 +1,11 @@
1
1
  import { DataBinding, HandlerType } from '@sentio/protos'
2
2
  import { getChainId } from '../sui/network.js'
3
3
  import { TestProcessorServer } from './test-processor-server.js'
4
- import { parseMoveType } from '../aptos/types.js'
4
+ import { parseMoveType } from '../move/types.js'
5
5
  import { SuiNetwork } from '../sui/index.js'
6
6
  import { MoveEvent, SuiTransactionResponse, MoveCall } from '@mysten/sui.js'
7
7
  import { getMoveCalls } from '../sui/utils.js'
8
+ import { SPLITTER } from '../move/index.js'
8
9
 
9
10
  export class SuiFacet {
10
11
  server: TestProcessorServer
@@ -38,7 +39,7 @@ export class SuiFacet {
38
39
  if (calls.length !== 1) {
39
40
  throw Error('Transaction has more than one calls')
40
41
  }
41
- const functionType = calls[0].package.objectId + calls[0].module + calls[0].function
42
+ const functionType = [calls[0].package.objectId, calls[0].module, calls[0].function].join(SPLITTER)
42
43
 
43
44
  for (const config of this.server.contractConfigs) {
44
45
  if (config.contract?.chainId !== getChainId(network)) {
@@ -1,18 +0,0 @@
1
- import { MoveModule } from '../move-types.js';
2
- import { TypeDescriptor } from '../types.js';
3
- export declare function generateType(type: string, currentAddress: string): string;
4
- export declare class AccountModulesImportInfo {
5
- imports: Map<string, Set<string>>;
6
- account: string;
7
- moduleName: string;
8
- constructor(account: string, tsModuleName: string);
9
- addImport(account: string, module: string): void;
10
- }
11
- export declare class AccountRegister {
12
- accountImports: Map<string, AccountModulesImportInfo>;
13
- pendingAccounts: Set<string>;
14
- typeDescriptors: Map<string, TypeDescriptor>;
15
- private loadTypeDescriptor;
16
- register(module: MoveModule, tsModuleName: string): AccountModulesImportInfo;
17
- }
18
- export declare function normalizeToJSName(name: string): string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../../src/aptos/codegen/typegen.ts"],"names":[],"mappings":"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","sourcesContent":["import { MoveModule } from '../move-types.js'\nimport { parseMoveType, TypeDescriptor } from '../types.js'\nimport { moduleQname, moduleQnameForType, SPLITTER, VECTOR_STR } from '../utils.js'\n\nfunction generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {\n // TODO &signer is defintely an address, but what if &OTHER_TYPE?\n if (type.qname.startsWith('&')) {\n return 'Address'\n }\n\n switch (type.qname) {\n case 'signer': // TODO check this\n case 'address':\n return 'Address'\n case '0x1::string::String':\n return 'string'\n case 'bool':\n return 'Boolean'\n case 'u8':\n case 'u16':\n case 'u32':\n return 'number'\n case 'u64':\n case 'u128':\n return 'bigint'\n }\n\n if (type.qname === VECTOR_STR) {\n // vector<u8> as hex string\n const elementTypeQname = type.typeArgs[0].qname\n if (elementTypeQname === 'u8') {\n return 'string'\n }\n if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {\n return `${elementTypeQname}[] | string`\n }\n return generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'\n }\n\n const simpleName = generateSimpleType(type.qname, currentAddress)\n if (simpleName.length === 0) {\n console.error('unexpected error')\n }\n if (simpleName.includes('vector')) {\n console.error('unexpected error')\n }\n if (type.typeArgs.length > 0) {\n // return simpleName\n return simpleName + '<' + type.typeArgs.map((t) => generateTypeForDescriptor(t, currentAddress)).join(',') + '>'\n }\n return simpleName\n}\n\nfunction 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// TODO ctx need to have type parameters\nexport function generateType(type: string, currentAddress: string): string {\n return generateTypeForDescriptor(parseMoveType(type), currentAddress)\n}\n\nexport class AccountModulesImportInfo {\n // account to module\n imports: Map<string, Set<string>>\n account: string\n moduleName: string\n\n constructor(account: string, tsModuleName: string) {\n this.account = account\n this.moduleName = tsModuleName\n this.imports = new Map<string, Set<string>>()\n }\n\n addImport(account: string, module: string) {\n if (account === this.account) {\n return\n }\n let accountModules = this.imports.get(account)\n if (!accountModules) {\n accountModules = new Set<string>()\n this.imports.set(account, accountModules)\n }\n accountModules.add(module)\n }\n}\n\nexport class AccountRegister {\n accountImports = new Map<string, AccountModulesImportInfo>()\n pendingAccounts = new Set<string>()\n\n // loadedAccount = new Set<string>()\n typeDescriptors = new Map<string, TypeDescriptor>()\n\n private loadTypeDescriptor(type: string) {\n let descriptor = this.typeDescriptors.get(type)\n\n // const descriptparseMoveType(type)\n if (!descriptor) {\n descriptor = parseMoveType(type)\n this.typeDescriptors.set(type, descriptor)\n }\n return descriptor\n }\n\n register(module: MoveModule, tsModuleName: string): AccountModulesImportInfo {\n const currentModuleFqn = moduleQname(module)\n\n let accountModuleImports = this.accountImports.get(module.address)\n if (!accountModuleImports) {\n accountModuleImports = new AccountModulesImportInfo(module.address, tsModuleName)\n this.accountImports.set(module.address, accountModuleImports)\n // the account has already be processed, delete pending task\n this.pendingAccounts.delete(module.address)\n }\n\n for (const struct of module.structs) {\n for (const field of struct.fields) {\n for (const type of this.loadTypeDescriptor(field.type).dependedTypes()) {\n const [account, module] = moduleQnameForType(type)\n accountModuleImports.addImport(account, module)\n if (!this.accountImports.has(account)) {\n this.pendingAccounts.add(account)\n }\n }\n }\n }\n\n for (const func of module.exposed_functions) {\n if (!func.is_entry) {\n continue\n }\n for (const param of func.params) {\n for (const type of this.loadTypeDescriptor(param).dependedTypes()) {\n const [account, module] = moduleQnameForType(type)\n accountModuleImports.addImport(account, module)\n if (!this.accountImports.has(account)) {\n this.pendingAccounts.add(account)\n }\n }\n }\n }\n this.accountImports.set(currentModuleFqn, accountModuleImports)\n return accountModuleImports\n }\n}\n\nexport function normalizeToJSName(name: string) {\n if (name === 'package' || name === 'volatile') {\n return name + '_'\n }\n return name\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"typegen.test.js","sourceRoot":"","sources":["../../../src/aptos/codegen/typegen.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,GAAG,GAAG,aAAa,CAAC,8BAA8B,CAAC,CAAA;QAEzD,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAA;QACzB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAA;QAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QAEhC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QAC3B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,UAAU,GACd,wJAAwJ,CAAA;QAC1J,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QAErC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,EAAE,CAAA;QAChC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAA;QACzB,MAAM,CACJ,IAAI,CAAC,CAAC,CAAC,KAAK,mGAAmG,CAChH,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,yCAAyC,CAAC,CAAA;QAE7D,MAAM,kBAAkB,GAAG,GAAG,CAAC,YAAY,EAAE,CAAA;QAC7C,MAAM,CAAC,kBAAkB,KAAK,UAAU,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IACF,sCAAsC;IACtC,EAAE;IACF,iEAAiE;IACjE,qBAAqB;IACrB,EAAE;IACF,+BAA+B;IAC/B,4DAA4D;IAC5D,yEAAyE;IACzE,KAAK;AACP,CAAC,CAAC,CAAA","sourcesContent":["import { assert } from 'chai'\nimport { parseMoveType } from '../types.js'\n\ndescribe('type gen', () => {\n test('type gen for generic', async () => {\n const res = parseMoveType('x<g1<a,g2<c,d>>,b,g3<a,b>,e>')\n\n assert(res.qname === 'x')\n assert(res.typeArgs[0].typeArgs[1].qname === 'g2')\n assert(res.typeArgs[0].typeArgs[1].typeArgs[1].qname === 'd')\n })\n\n test('type gen for non generic', async () => {\n const res = parseMoveType('xyz')\n\n assert(res.qname === 'xyz')\n assert(res.typeArgs.length === 0)\n })\n\n test('test depended types', async () => {\n const typeString =\n '0x1::table_with_length::TableWithLength<T0, 0xd5f9f2b1c24faee8f07b790e570c75dfa1b7d8c1e9a60162fbd92ade03ea29e4::iterable_table::IterableValue<T0, T1>>'\n const res = parseMoveType(typeString)\n\n const deps = res.dependedTypes()\n assert(deps.length === 2)\n assert(\n deps[0] === '0xd5f9f2b1c24faee8f07b790e570c75dfa1b7d8c1e9a60162fbd92ade03ea29e4::iterable_table::IterableValue'\n )\n assert(deps[1] === '0x1::table_with_length::TableWithLength')\n\n const computedTypeString = res.getSignature()\n assert(computedTypeString === typeString)\n })\n // test('type type gen', async () => {\n //\n // const res = parseGenericType('x<g1<a,g2<c,d>>,b,g3<a,b>,e>')\n // console.log(res)\n //\n // assert(res.symbol === 'x')\n // assert(res.typeParams[0].typeParams[1].symbol === \"g2\")\n // assert(res.typeParams[0].typeParams[1].typeParams[1].symbol === \"d\")\n // })\n})\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/aptos/types.ts"],"names":[],"mappings":"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","sourcesContent":["import { SPLITTER, VECTOR_STR } from './utils.js'\n\nexport class TypeDescriptor {\n // type: string\n\n // qualified name without type parameters\n qname: string\n // account?: string\n // module?: string\n\n typeArgs: TypeDescriptor[]\n\n constructor(symbol: string, typeParams?: TypeDescriptor[]) {\n this.qname = symbol\n this.typeArgs = typeParams || []\n }\n\n getSignature(): string {\n if (this.typeArgs.length > 0) {\n return this.qname + '<' + this.typeArgs.map((t) => t.getSignature()).join(', ') + '>'\n }\n return this.qname\n }\n\n // Replace T0, T1 with more concrete type\n applyTypeArgs(ctx: Map<string, TypeDescriptor>): TypeDescriptor {\n const replace = ctx.get(this.qname)\n if (replace) {\n return replace\n }\n if (ctx.size === 0 || this.typeArgs.length === 0) {\n return this\n }\n\n const typeArgs: TypeDescriptor[] = []\n for (const arg of this.typeArgs) {\n const replace = ctx.get(arg.qname)\n if (replace) {\n typeArgs.push(replace)\n } else {\n typeArgs.push(arg.applyTypeArgs(ctx))\n }\n }\n return new TypeDescriptor(this.qname, typeArgs)\n }\n\n // all depended types including itself, not include system type\n dependedTypes(): string[] {\n if (this.qname.startsWith('&')) {\n return []\n }\n switch (this.qname) {\n case 'signer':\n case 'address':\n case '0x1::string::String':\n case 'bool':\n case 'u8':\n case 'u16':\n case 'u32':\n case 'u64':\n case 'u128':\n return []\n }\n\n // Type parameters are not depended\n if (this.qname.indexOf(SPLITTER) == -1) {\n if (this.qname.startsWith('T')) {\n return []\n }\n }\n\n const types = new Set<string>()\n for (const param of this.typeArgs) {\n param.dependedTypes().forEach((t) => types.add(t))\n }\n\n if (this.qname !== VECTOR_STR) {\n types.add(this.qname)\n }\n\n return Array.from(types)\n }\n}\n\nexport function parseMoveType(type: string): TypeDescriptor {\n // type = type.replace('&', '')\n\n type = type.replaceAll('&mut ', '&')\n type = type.replaceAll('mut ', '')\n\n // TODO replace ' ' is not exactly safe, need to double check this\n type = type.replaceAll(' ', '')\n\n const stack: TypeDescriptor[] = [new TypeDescriptor('')]\n let buffer = []\n\n // xxx:asdf<g1<a,<c,d>>, b, g2<a,b>, e>\n for (let i = 0; i < type.length; i++) {\n const ch = type[i]\n if (ch === '<') {\n // const symbol = type.slice(symbolStart, i)\n // symbolStart =\n const symbol = buffer.join('')\n buffer = []\n stack[stack.length - 1].qname = symbol\n stack.push(new TypeDescriptor(''))\n continue\n }\n if (ch === '>') {\n const typeParam = stack.pop()\n if (!typeParam) {\n throw Error('Uxpectecd stack size')\n }\n if (buffer.length > 0) {\n typeParam.qname = buffer.join('')\n buffer = []\n }\n stack[stack.length - 1].typeArgs.push(typeParam)\n continue\n }\n if (ch === ',') {\n const typeParam = stack.pop()\n if (!typeParam) {\n throw Error('Uxpectecd stack size')\n }\n if (buffer.length > 0) {\n typeParam.qname = buffer.join('')\n buffer = []\n }\n\n stack[stack.length - 1].typeArgs.push(typeParam)\n // continue parse next param\n stack.push(new TypeDescriptor(''))\n continue\n }\n\n buffer.push(ch)\n }\n\n if (buffer.length > 0) {\n stack[stack.length - 1].qname = buffer.join('')\n }\n\n const res = stack.pop()\n if (!res || stack.length > 0) {\n throw Error('Uxpectecd stack size')\n }\n return res\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/aptos/types.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IACnC,IAAI,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;QACtD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,MAAM,IAAI,GAAG;IACX,IAAI,EAAE,wBAAwB;IAC9B,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,CAAC,oEAAoE,CAAC;IACjF,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACtB,QAAQ,EAAE,oCAAoC;CAC/C,CAAA","sourcesContent":["import { MOVE_CODER } from './move-coder.js'\nimport { aptos_account } from './builtin/0x1.js'\n\ndescribe('type decode', () => {\n aptos_account.loadTypes(MOVE_CODER)\n test('decode function payload', async () => {\n const decoded = MOVE_CODER.decodeFunctionPayload(data)\n console.log(decoded)\n })\n})\n\nconst data = {\n type: 'entry_function_payload',\n type_arguments: [],\n arguments: ['0xaaaf981fec16d967eb79bb51b4c6d39e75acb3482c6dabddb19ca9adbfceee80'],\n code: { bytecode: '' },\n function: '0x1::aptos_account::create_account',\n}\n"]}
@@ -1,9 +0,0 @@
1
- /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
2
- declare const _default: {
3
- preset: string;
4
- modulePathIgnorePatterns: string[];
5
- moduleNameMapper: {
6
- '^(\\.{1,2}/.*)\\.js$': string;
7
- };
8
- };
9
- export default _default;
@@ -1,9 +0,0 @@
1
- /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
2
- export default {
3
- preset: 'ts-jest/presets/default-esm',
4
- modulePathIgnorePatterns: ['<rootDir>/dist/'],
5
- moduleNameMapper: {
6
- '^(\\.{1,2}/.*)\\.js$': '$1',
7
- },
8
- };
9
- //# sourceMappingURL=jest.config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../src/jest.config.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,eAAe;IACb,MAAM,EAAE,6BAA6B;IACrC,wBAAwB,EAAE,CAAC,iBAAiB,CAAC;IAC7C,gBAAgB,EAAE;QAChB,sBAAsB,EAAE,IAAI;KAC7B;CACF,CAAA","sourcesContent":["/** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */\nexport default {\n preset: 'ts-jest/presets/default-esm',\n modulePathIgnorePatterns: ['<rootDir>/dist/'],\n moduleNameMapper: {\n '^(\\\\.{1,2}/.*)\\\\.js$': '$1',\n },\n}\n"]}
@@ -1,165 +0,0 @@
1
- import { MoveModule } from '../move-types.js'
2
- import { parseMoveType, TypeDescriptor } from '../types.js'
3
- import { moduleQname, moduleQnameForType, SPLITTER, VECTOR_STR } from '../utils.js'
4
-
5
- function generateTypeForDescriptor(type: TypeDescriptor, currentAddress: string): string {
6
- // TODO &signer is defintely an address, but what if &OTHER_TYPE?
7
- if (type.qname.startsWith('&')) {
8
- return 'Address'
9
- }
10
-
11
- switch (type.qname) {
12
- case 'signer': // TODO check this
13
- case 'address':
14
- return 'Address'
15
- case '0x1::string::String':
16
- return 'string'
17
- case 'bool':
18
- return 'Boolean'
19
- case 'u8':
20
- case 'u16':
21
- case 'u32':
22
- return 'number'
23
- case 'u64':
24
- case 'u128':
25
- return 'bigint'
26
- }
27
-
28
- if (type.qname === VECTOR_STR) {
29
- // vector<u8> as hex string
30
- const elementTypeQname = type.typeArgs[0].qname
31
- if (elementTypeQname === 'u8') {
32
- return 'string'
33
- }
34
- if (elementTypeQname.startsWith('T') && !elementTypeQname.includes(SPLITTER)) {
35
- return `${elementTypeQname}[] | string`
36
- }
37
- return generateTypeForDescriptor(type.typeArgs[0], currentAddress) + '[]'
38
- }
39
-
40
- const simpleName = generateSimpleType(type.qname, currentAddress)
41
- if (simpleName.length === 0) {
42
- console.error('unexpected error')
43
- }
44
- if (simpleName.includes('vector')) {
45
- console.error('unexpected error')
46
- }
47
- if (type.typeArgs.length > 0) {
48
- // return simpleName
49
- return simpleName + '<' + type.typeArgs.map((t) => generateTypeForDescriptor(t, currentAddress)).join(',') + '>'
50
- }
51
- return simpleName
52
- }
53
-
54
- function generateSimpleType(type: string, currentAddress: string): string {
55
- const parts = type.split(SPLITTER)
56
-
57
- for (let i = 0; i < parts.length; i++) {
58
- parts[i] = normalizeToJSName(parts[i])
59
- }
60
-
61
- if (parts.length < 2) {
62
- return parts[0]
63
- }
64
- if (parts[0] === currentAddress) {
65
- return parts.slice(1).join('.')
66
- }
67
- return '_' + parts.join('.')
68
- }
69
-
70
- // TODO ctx need to have type parameters
71
- export function generateType(type: string, currentAddress: string): string {
72
- return generateTypeForDescriptor(parseMoveType(type), currentAddress)
73
- }
74
-
75
- export class AccountModulesImportInfo {
76
- // account to module
77
- imports: Map<string, Set<string>>
78
- account: string
79
- moduleName: string
80
-
81
- constructor(account: string, tsModuleName: string) {
82
- this.account = account
83
- this.moduleName = tsModuleName
84
- this.imports = new Map<string, Set<string>>()
85
- }
86
-
87
- addImport(account: string, module: string) {
88
- if (account === this.account) {
89
- return
90
- }
91
- let accountModules = this.imports.get(account)
92
- if (!accountModules) {
93
- accountModules = new Set<string>()
94
- this.imports.set(account, accountModules)
95
- }
96
- accountModules.add(module)
97
- }
98
- }
99
-
100
- export class AccountRegister {
101
- accountImports = new Map<string, AccountModulesImportInfo>()
102
- pendingAccounts = new Set<string>()
103
-
104
- // loadedAccount = new Set<string>()
105
- typeDescriptors = new Map<string, TypeDescriptor>()
106
-
107
- private loadTypeDescriptor(type: string) {
108
- let descriptor = this.typeDescriptors.get(type)
109
-
110
- // const descriptparseMoveType(type)
111
- if (!descriptor) {
112
- descriptor = parseMoveType(type)
113
- this.typeDescriptors.set(type, descriptor)
114
- }
115
- return descriptor
116
- }
117
-
118
- register(module: MoveModule, tsModuleName: string): AccountModulesImportInfo {
119
- const currentModuleFqn = moduleQname(module)
120
-
121
- let accountModuleImports = this.accountImports.get(module.address)
122
- if (!accountModuleImports) {
123
- accountModuleImports = new AccountModulesImportInfo(module.address, tsModuleName)
124
- this.accountImports.set(module.address, accountModuleImports)
125
- // the account has already be processed, delete pending task
126
- this.pendingAccounts.delete(module.address)
127
- }
128
-
129
- for (const struct of module.structs) {
130
- for (const field of struct.fields) {
131
- for (const type of this.loadTypeDescriptor(field.type).dependedTypes()) {
132
- const [account, module] = moduleQnameForType(type)
133
- accountModuleImports.addImport(account, module)
134
- if (!this.accountImports.has(account)) {
135
- this.pendingAccounts.add(account)
136
- }
137
- }
138
- }
139
- }
140
-
141
- for (const func of module.exposed_functions) {
142
- if (!func.is_entry) {
143
- continue
144
- }
145
- for (const param of func.params) {
146
- for (const type of this.loadTypeDescriptor(param).dependedTypes()) {
147
- const [account, module] = moduleQnameForType(type)
148
- accountModuleImports.addImport(account, module)
149
- if (!this.accountImports.has(account)) {
150
- this.pendingAccounts.add(account)
151
- }
152
- }
153
- }
154
- }
155
- this.accountImports.set(currentModuleFqn, accountModuleImports)
156
- return accountModuleImports
157
- }
158
- }
159
-
160
- export function normalizeToJSName(name: string) {
161
- if (name === 'package' || name === 'volatile') {
162
- return name + '_'
163
- }
164
- return name
165
- }
@@ -1,8 +0,0 @@
1
- /** @type {import('ts-jest/dist/types').JestConfigWithTsJest} */
2
- export default {
3
- preset: 'ts-jest/presets/default-esm',
4
- modulePathIgnorePatterns: ['<rootDir>/dist/'],
5
- moduleNameMapper: {
6
- '^(\\.{1,2}/.*)\\.js$': '$1',
7
- },
8
- }