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

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 (65) hide show
  1. package/lib/aptos/aptos-chain-adapter.d.ts +2 -1
  2. package/lib/aptos/aptos-chain-adapter.js +4 -0
  3. package/lib/aptos/aptos-chain-adapter.js.map +1 -1
  4. package/lib/aptos/aptos-processor.d.ts +1 -2
  5. package/lib/aptos/aptos-processor.js +6 -14
  6. package/lib/aptos/aptos-processor.js.map +1 -1
  7. package/lib/aptos/builtin/0x1.js +2 -1
  8. package/lib/aptos/builtin/0x1.js.map +1 -1
  9. package/lib/aptos/builtin/0x3.js +2 -1
  10. package/lib/aptos/builtin/0x3.js.map +1 -1
  11. package/lib/aptos/codegen/codegen.js.map +1 -1
  12. package/lib/aptos/context.d.ts +3 -0
  13. package/lib/aptos/context.js +5 -0
  14. package/lib/aptos/context.js.map +1 -1
  15. package/lib/aptos/ext/aptos-dex.js +1 -2
  16. package/lib/aptos/ext/aptos-dex.js.map +1 -1
  17. package/lib/aptos/move-coder.d.ts +2 -3
  18. package/lib/aptos/move-coder.js +7 -3
  19. package/lib/aptos/move-coder.js.map +1 -1
  20. package/lib/move/abstract-codegen.d.ts +3 -2
  21. package/lib/move/abstract-codegen.js +12 -4
  22. package/lib/move/abstract-codegen.js.map +1 -1
  23. package/lib/move/abstract-move-coder.d.ts +2 -2
  24. package/lib/move/abstract-move-coder.js.map +1 -1
  25. package/lib/move/chain-adapter.d.ts +4 -4
  26. package/lib/move/chain-adapter.js.map +1 -1
  27. package/lib/sui/builtin/0x1.js +2 -1
  28. package/lib/sui/builtin/0x1.js.map +1 -1
  29. package/lib/sui/builtin/0x2.js +2 -1
  30. package/lib/sui/builtin/0x2.js.map +1 -1
  31. package/lib/sui/builtin/0x3.js +2 -1
  32. package/lib/sui/builtin/0x3.js.map +1 -1
  33. package/lib/sui/codegen/codegen.js.map +1 -1
  34. package/lib/sui/context.d.ts +2 -0
  35. package/lib/sui/context.js +3 -0
  36. package/lib/sui/context.js.map +1 -1
  37. package/lib/sui/move-coder.d.ts +3 -4
  38. package/lib/sui/move-coder.js +7 -3
  39. package/lib/sui/move-coder.js.map +1 -1
  40. package/lib/sui/sui-chain-adapter.d.ts +5 -4
  41. package/lib/sui/sui-chain-adapter.js +6 -1
  42. package/lib/sui/sui-chain-adapter.js.map +1 -1
  43. package/lib/sui/sui-processor.d.ts +2 -0
  44. package/lib/sui/sui-processor.js +4 -2
  45. package/lib/sui/sui-processor.js.map +1 -1
  46. package/package.json +4 -4
  47. package/src/aptos/aptos-chain-adapter.ts +6 -1
  48. package/src/aptos/aptos-processor.ts +17 -15
  49. package/src/aptos/builtin/0x1.ts +2 -1
  50. package/src/aptos/builtin/0x3.ts +2 -1
  51. package/src/aptos/codegen/codegen.ts +1 -1
  52. package/src/aptos/context.ts +5 -0
  53. package/src/aptos/ext/aptos-dex.ts +2 -11
  54. package/src/aptos/move-coder.ts +8 -4
  55. package/src/move/abstract-codegen.ts +18 -6
  56. package/src/move/abstract-move-coder.ts +2 -2
  57. package/src/move/chain-adapter.ts +4 -4
  58. package/src/sui/builtin/0x1.ts +2 -1
  59. package/src/sui/builtin/0x2.ts +2 -1
  60. package/src/sui/builtin/0x3.ts +2 -1
  61. package/src/sui/codegen/codegen.ts +2 -2
  62. package/src/sui/context.ts +3 -0
  63. package/src/sui/move-coder.ts +8 -5
  64. package/src/sui/sui-chain-adapter.ts +11 -5
  65. package/src/sui/sui-processor.ts +5 -3
@@ -34,6 +34,7 @@ export abstract class AbstractCodegen<ModuleTypes, NetworkType> {
34
34
  GENERATE_CLIENT = false
35
35
  GENERATE_ON_ENTRY = true
36
36
  PAYLOAD_OPTIONAL = false
37
+ SYSTEM_MODULES = new Set(['0x1', '0x2', '0x3'])
37
38
 
38
39
  chainAdapter: ChainAdapter<NetworkType, ModuleTypes>
39
40
 
@@ -69,9 +70,9 @@ export abstract class AbstractCodegen<ModuleTypes, NetworkType> {
69
70
  const loader = new AccountRegister()
70
71
 
71
72
  // when generating user code, don't need to generate framework account
72
- loader.accountImports.set('0x1', new AccountModulesImportInfo('0x1', '0x1'))
73
- loader.accountImports.set('0x2', new AccountModulesImportInfo('0x2', '0x2'))
74
- loader.accountImports.set('0x3', new AccountModulesImportInfo('0x3', '0x3'))
73
+ for (const sysModule of this.SYSTEM_MODULES) {
74
+ loader.accountImports.set(sysModule, new AccountModulesImportInfo(sysModule, sysModule))
75
+ }
75
76
  // const client = getRpcClient(network)
76
77
 
77
78
  for (const file of files) {
@@ -449,14 +450,14 @@ export abstract class AbstractCodegen<ModuleTypes, NetworkType> {
449
450
  export class AccountCodegen<ModuleType, NetworkType> {
450
451
  modules: InternalMoveModule[]
451
452
  config: Config<NetworkType>
452
- abi: ModuleType
453
+ abi: ModuleType[]
453
454
  loader: AccountRegister
454
455
  moduleGen: AbstractCodegen<ModuleType, NetworkType>
455
456
 
456
457
  constructor(
457
458
  moduleGen: AbstractCodegen<ModuleType, NetworkType>,
458
459
  loader: AccountRegister,
459
- abi: ModuleType,
460
+ abi: ModuleType[],
460
461
  modules: InternalMoveModule[],
461
462
  config: Config<NetworkType>
462
463
  ) {
@@ -513,6 +514,17 @@ export class AccountCodegen<ModuleType, NetworkType> {
513
514
  }
514
515
  }
515
516
 
517
+ let loadAllTypes = `loadAllTypes(defaultMoveCoder(${
518
+ this.moduleGen.PREFIX
519
+ }Network.${this.moduleGen.generateNetworkOption(this.config.network)}))`
520
+
521
+ if (this.moduleGen.SYSTEM_MODULES.has(address)) {
522
+ loadAllTypes = `
523
+ loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.MAIN_NET))
524
+ loadAllTypes(defaultMoveCoder(${this.moduleGen.PREFIX}Network.TEST_NET))
525
+ `
526
+ }
527
+
516
528
  const source = `
517
529
  /* Autogenerated file. Do not edit manually. */
518
530
  /* tslint:disable */
@@ -535,7 +547,7 @@ export class AccountCodegen<ModuleType, NetworkType> {
535
547
  }
536
548
  }
537
549
 
538
- loadAllTypes(defaultMoveCoder())
550
+ ${loadAllTypes}
539
551
  ` // source
540
552
 
541
553
  return [
@@ -14,12 +14,12 @@ export type DecodedStructWithTag<B, T> = StructWithTag<B> & {
14
14
  type_arguments: string[]
15
15
  }
16
16
 
17
- export abstract class AbstractMoveCoder<Network, ModuleTypes, StructType> {
17
+ export abstract class AbstractMoveCoder<Network, ModuleType, StructType> {
18
18
  private moduleMapping = new Map<string, InternalMoveModule>()
19
19
  private typeMapping = new Map<string, InternalMoveStruct>()
20
20
  private funcMapping = new Map<string, InternalMoveFunction>()
21
21
  network: Network
22
- adapter: ChainAdapter<Network, ModuleTypes>
22
+ adapter: ChainAdapter<Network, ModuleType>
23
23
 
24
24
  protected constructor(network: Network) {
25
25
  this.network = network
@@ -1,11 +1,11 @@
1
1
  import { InternalMoveModule, InternalMoveStruct } from './internal-models.js'
2
2
  import { TypeDescriptor } from './types.js'
3
3
 
4
- export abstract class ChainAdapter<NetworkType, ModuleTypes> {
5
- abstract fetchModules(account: string, network: NetworkType): Promise<ModuleTypes>
4
+ export abstract class ChainAdapter<NetworkType, ModuleType> {
5
+ abstract fetchModule(account: string, module: string, network: NetworkType): Promise<ModuleType>
6
6
 
7
- abstract fetchModules(account: string, network: NetworkType): Promise<ModuleTypes>
8
- abstract toInternalModules(modules: ModuleTypes): InternalMoveModule[]
7
+ abstract fetchModules(account: string, network: NetworkType): Promise<ModuleType[]>
8
+ abstract toInternalModules(modules: ModuleType[]): InternalMoveModule[]
9
9
  // Get the structs that represent Events
10
10
  abstract getEventStructs(module: InternalMoveModule): Map<string, InternalMoveStruct>
11
11
  // Get the parameters that actually have arguments in runtime
@@ -268,4 +268,5 @@ export function loadAllTypes(coder: MoveCoder) {
268
268
  }
269
269
  }
270
270
 
271
- loadAllTypes(defaultMoveCoder());
271
+ loadAllTypes(defaultMoveCoder(SuiNetwork.MAIN_NET));
272
+ loadAllTypes(defaultMoveCoder(SuiNetwork.TEST_NET));
@@ -1553,4 +1553,5 @@ export function loadAllTypes(coder: MoveCoder) {
1553
1553
  }
1554
1554
  }
1555
1555
 
1556
- loadAllTypes(defaultMoveCoder());
1556
+ loadAllTypes(defaultMoveCoder(SuiNetwork.MAIN_NET));
1557
+ loadAllTypes(defaultMoveCoder(SuiNetwork.TEST_NET));
@@ -1577,4 +1577,5 @@ export function loadAllTypes(coder: MoveCoder) {
1577
1577
  }
1578
1578
  }
1579
1579
 
1580
- loadAllTypes(defaultMoveCoder());
1580
+ loadAllTypes(defaultMoveCoder(SuiNetwork.MAIN_NET));
1581
+ loadAllTypes(defaultMoveCoder(SuiNetwork.TEST_NET));
@@ -1,4 +1,4 @@
1
- import { SuiMoveNormalizedModules } from '@mysten/sui.js'
1
+ import { SuiMoveNormalizedModule } from '@mysten/sui.js'
2
2
 
3
3
  import { SuiNetwork } from '../network.js'
4
4
  import * as fs from 'fs'
@@ -18,7 +18,7 @@ export async function codegen(abisDir: string, outDir = join('src', 'types', 'su
18
18
  console.log(chalk.green(`Generated ${numFiles} for Sui`))
19
19
  }
20
20
 
21
- class SuiCodegen extends AbstractCodegen<SuiMoveNormalizedModules, SuiNetwork> {
21
+ class SuiCodegen extends AbstractCodegen<SuiMoveNormalizedModule, SuiNetwork> {
22
22
  ADDRESS_TYPE = 'SuiAddress'
23
23
  MAIN_NET = SuiNetwork.MAIN_NET
24
24
  TEST_NET = SuiNetwork.TEST_NET
@@ -2,6 +2,7 @@ import { RecordMetaData } from '@sentio/protos'
2
2
  import { type Labels, BaseContext, normalizeLabels } from '../index.js'
3
3
  import { SuiNetwork, getChainId } from './network.js'
4
4
  import { SuiTransactionBlockResponse } from '@mysten/sui.js'
5
+ import { MoveCoder, defaultMoveCoder } from './move-coder.js'
5
6
 
6
7
  export class SuiContext extends BaseContext {
7
8
  address: string
@@ -11,6 +12,7 @@ export class SuiContext extends BaseContext {
11
12
  slot: bigint
12
13
  transaction: SuiTransactionBlockResponse
13
14
  eventIndex: number
15
+ coder: MoveCoder
14
16
 
15
17
  constructor(
16
18
  moduleName: string,
@@ -28,6 +30,7 @@ export class SuiContext extends BaseContext {
28
30
  this.timestamp = timestamp
29
31
  this.slot = slot
30
32
  this.eventIndex = eventIndex
33
+ this.coder = defaultMoveCoder(network)
31
34
  if (transaction) {
32
35
  this.transaction = transaction
33
36
  }
@@ -7,7 +7,6 @@ import {
7
7
  SuiMoveNormalizedModule,
8
8
  SuiMoveObject,
9
9
  SuiRawData,
10
- SuiMoveNormalizedModules,
11
10
  } from '@mysten/sui.js'
12
11
  import { toInternalModule } from './move-types.js'
13
12
  import { SPLITTER, TypeDescriptor } from '../move/index.js'
@@ -15,7 +14,7 @@ import { dynamic_field } from './builtin/0x2.js'
15
14
  import { SuiNetwork } from './network.js'
16
15
  import { SuiChainAdapter } from './sui-chain-adapter.js'
17
16
 
18
- export class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedModules, SuiEvent | SuiMoveObject> {
17
+ export class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedModule, SuiEvent | SuiMoveObject> {
19
18
  constructor(network: SuiNetwork) {
20
19
  super(network)
21
20
  this.adapter = new SuiChainAdapter()
@@ -104,8 +103,12 @@ export class MoveCoder extends AbstractMoveCoder<SuiNetwork, SuiMoveNormalizedMo
104
103
  }
105
104
  }
106
105
 
107
- export const MOVE_CODER = new MoveCoder(SuiNetwork.MAIN_NET)
106
+ const MOVE_CODER = new MoveCoder(SuiNetwork.MAIN_NET)
107
+ const TESTNET_MOVE_CODER = new MoveCoder(SuiNetwork.TEST_NET)
108
108
 
109
- export function defaultMoveCoder(): MoveCoder {
110
- return MOVE_CODER
109
+ export function defaultMoveCoder(network: SuiNetwork = SuiNetwork.MAIN_NET): MoveCoder {
110
+ if (network == SuiNetwork.MAIN_NET) {
111
+ return MOVE_CODER
112
+ }
113
+ return TESTNET_MOVE_CODER
111
114
  }
@@ -2,14 +2,20 @@ import { ChainAdapter, moduleQname, SPLITTER, TypeDescriptor } from '../move/ind
2
2
  import { toInternalModule } from './move-types.js'
3
3
  import { SuiNetwork } from './network.js'
4
4
  import { InternalMoveModule, InternalMoveStruct } from '../move/internal-models.js'
5
- import { Connection, JsonRpcProvider, SuiMoveNormalizedModules } from '@mysten/sui.js'
5
+ import { Connection, JsonRpcProvider, SuiMoveNormalizedModule } from '@mysten/sui.js'
6
6
 
7
- export class SuiChainAdapter extends ChainAdapter<SuiNetwork, SuiMoveNormalizedModules> {
7
+ export class SuiChainAdapter extends ChainAdapter<SuiNetwork, SuiMoveNormalizedModule> {
8
8
  static INSTANCE = new SuiChainAdapter()
9
9
 
10
- async fetchModules(account: string, network: SuiNetwork): Promise<SuiMoveNormalizedModules> {
10
+ async fetchModule(account: string, module: string, network: SuiNetwork): Promise<SuiMoveNormalizedModule> {
11
11
  const client = getRpcClient(network)
12
- return await client.getNormalizedMoveModulesByPackage({ package: account })
12
+ return await client.getNormalizedMoveModule({ package: account, module })
13
+ }
14
+
15
+ async fetchModules(account: string, network: SuiNetwork): Promise<SuiMoveNormalizedModule[]> {
16
+ const client = getRpcClient(network)
17
+ const modules = await client.getNormalizedMoveModulesByPackage({ package: account })
18
+ return Object.values(modules)
13
19
  }
14
20
 
15
21
  getMeaningfulFunctionParams(params: TypeDescriptor[]): TypeDescriptor[] {
@@ -19,7 +25,7 @@ export class SuiChainAdapter extends ChainAdapter<SuiNetwork, SuiMoveNormalizedM
19
25
  return params.slice(0, params.length - 1)
20
26
  }
21
27
 
22
- toInternalModules(modules: SuiMoveNormalizedModules): InternalMoveModule[] {
28
+ toInternalModules(modules: SuiMoveNormalizedModule[]): InternalMoveModule[] {
23
29
  return Object.values(modules).map(toInternalModule)
24
30
  }
25
31
 
@@ -21,7 +21,7 @@ import {
21
21
  } from '@mysten/sui.js'
22
22
  import { CallHandler, EventFilter, EventHandler, FunctionNameAndCallFilter, parseMoveType } from '../move/index.js'
23
23
  import { getMoveCalls } from './utils.js'
24
- import { defaultMoveCoder } from './move-coder.js'
24
+ import { defaultMoveCoder, MoveCoder } from './move-coder.js'
25
25
  // import { dynamic_field } from './builtin/0x2.js'
26
26
 
27
27
  class IndexConfigure {
@@ -52,11 +52,13 @@ export class SuiBaseProcessor {
52
52
 
53
53
  eventHandlers: EventHandler<Data_SuiEvent>[] = []
54
54
  callHandlers: CallHandler<Data_SuiCall>[] = []
55
+ coder: MoveCoder
55
56
 
56
57
  constructor(name: string, options: SuiBindOptions) {
57
58
  this.moduleName = name
58
59
  this.config = configure(options)
59
60
  SuiProcessorState.INSTANCE.addValue(this)
61
+ this.coder = defaultMoveCoder(this.config.network)
60
62
  }
61
63
 
62
64
  getChainId(): string {
@@ -110,7 +112,7 @@ export class SuiBaseProcessor {
110
112
  idx
111
113
  )
112
114
 
113
- const decoded = defaultMoveCoder().decodeEvent<any>(evt)
115
+ const decoded = processor.coder.decodeEvent<any>(evt)
114
116
  await handler(decoded || evt, ctx)
115
117
  processResults.push(ctx.getProcessResult())
116
118
  }
@@ -169,7 +171,7 @@ export class SuiBaseProcessor {
169
171
  const programmableTx = getProgrammableTransaction(txKind)
170
172
 
171
173
  const payload = calls[0]
172
- const decoded = defaultMoveCoder().decodeFunctionPayload(payload, programmableTx?.inputs || [])
174
+ const decoded = processor.coder.decodeFunctionPayload(payload, programmableTx?.inputs || [])
173
175
  await handler(decoded, ctx)
174
176
  }
175
177
  return ctx.getProcessResult()