@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.
- package/lib/aptos/aptos-chain-adapter.d.ts +2 -1
- package/lib/aptos/aptos-chain-adapter.js +4 -0
- package/lib/aptos/aptos-chain-adapter.js.map +1 -1
- package/lib/aptos/aptos-processor.d.ts +1 -2
- package/lib/aptos/aptos-processor.js +6 -14
- package/lib/aptos/aptos-processor.js.map +1 -1
- package/lib/aptos/builtin/0x1.js +2 -1
- package/lib/aptos/builtin/0x1.js.map +1 -1
- package/lib/aptos/builtin/0x3.js +2 -1
- package/lib/aptos/builtin/0x3.js.map +1 -1
- package/lib/aptos/codegen/codegen.js.map +1 -1
- package/lib/aptos/context.d.ts +3 -0
- package/lib/aptos/context.js +5 -0
- package/lib/aptos/context.js.map +1 -1
- package/lib/aptos/ext/aptos-dex.js +1 -2
- package/lib/aptos/ext/aptos-dex.js.map +1 -1
- package/lib/aptos/move-coder.d.ts +2 -3
- package/lib/aptos/move-coder.js +7 -3
- package/lib/aptos/move-coder.js.map +1 -1
- package/lib/move/abstract-codegen.d.ts +3 -2
- package/lib/move/abstract-codegen.js +12 -4
- package/lib/move/abstract-codegen.js.map +1 -1
- package/lib/move/abstract-move-coder.d.ts +2 -2
- package/lib/move/abstract-move-coder.js.map +1 -1
- package/lib/move/chain-adapter.d.ts +4 -4
- package/lib/move/chain-adapter.js.map +1 -1
- package/lib/sui/builtin/0x1.js +2 -1
- package/lib/sui/builtin/0x1.js.map +1 -1
- package/lib/sui/builtin/0x2.js +2 -1
- package/lib/sui/builtin/0x2.js.map +1 -1
- package/lib/sui/builtin/0x3.js +2 -1
- package/lib/sui/builtin/0x3.js.map +1 -1
- package/lib/sui/codegen/codegen.js.map +1 -1
- package/lib/sui/context.d.ts +2 -0
- package/lib/sui/context.js +3 -0
- package/lib/sui/context.js.map +1 -1
- package/lib/sui/move-coder.d.ts +3 -4
- package/lib/sui/move-coder.js +7 -3
- package/lib/sui/move-coder.js.map +1 -1
- package/lib/sui/sui-chain-adapter.d.ts +5 -4
- package/lib/sui/sui-chain-adapter.js +6 -1
- package/lib/sui/sui-chain-adapter.js.map +1 -1
- package/lib/sui/sui-processor.d.ts +2 -0
- package/lib/sui/sui-processor.js +4 -2
- package/lib/sui/sui-processor.js.map +1 -1
- package/package.json +4 -4
- package/src/aptos/aptos-chain-adapter.ts +6 -1
- package/src/aptos/aptos-processor.ts +17 -15
- package/src/aptos/builtin/0x1.ts +2 -1
- package/src/aptos/builtin/0x3.ts +2 -1
- package/src/aptos/codegen/codegen.ts +1 -1
- package/src/aptos/context.ts +5 -0
- package/src/aptos/ext/aptos-dex.ts +2 -11
- package/src/aptos/move-coder.ts +8 -4
- package/src/move/abstract-codegen.ts +18 -6
- package/src/move/abstract-move-coder.ts +2 -2
- package/src/move/chain-adapter.ts +4 -4
- package/src/sui/builtin/0x1.ts +2 -1
- package/src/sui/builtin/0x2.ts +2 -1
- package/src/sui/builtin/0x3.ts +2 -1
- package/src/sui/codegen/codegen.ts +2 -2
- package/src/sui/context.ts +3 -0
- package/src/sui/move-coder.ts +8 -5
- package/src/sui/sui-chain-adapter.ts +11 -5
- 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
|
-
|
73
|
-
|
74
|
-
|
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
|
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,
|
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,
|
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,
|
5
|
-
abstract
|
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<
|
8
|
-
abstract toInternalModules(modules:
|
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
|
package/src/sui/builtin/0x1.ts
CHANGED
package/src/sui/builtin/0x2.ts
CHANGED
package/src/sui/builtin/0x3.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
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<
|
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
|
package/src/sui/context.ts
CHANGED
@@ -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
|
}
|
package/src/sui/move-coder.ts
CHANGED
@@ -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,
|
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
|
-
|
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
|
-
|
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,
|
5
|
+
import { Connection, JsonRpcProvider, SuiMoveNormalizedModule } from '@mysten/sui.js'
|
6
6
|
|
7
|
-
export class SuiChainAdapter extends ChainAdapter<SuiNetwork,
|
7
|
+
export class SuiChainAdapter extends ChainAdapter<SuiNetwork, SuiMoveNormalizedModule> {
|
8
8
|
static INSTANCE = new SuiChainAdapter()
|
9
9
|
|
10
|
-
async
|
10
|
+
async fetchModule(account: string, module: string, network: SuiNetwork): Promise<SuiMoveNormalizedModule> {
|
11
11
|
const client = getRpcClient(network)
|
12
|
-
return await client.
|
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:
|
28
|
+
toInternalModules(modules: SuiMoveNormalizedModule[]): InternalMoveModule[] {
|
23
29
|
return Object.values(modules).map(toInternalModule)
|
24
30
|
}
|
25
31
|
|
package/src/sui/sui-processor.ts
CHANGED
@@ -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 =
|
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 =
|
174
|
+
const decoded = processor.coder.decodeFunctionPayload(payload, programmableTx?.inputs || [])
|
173
175
|
await handler(decoded, ctx)
|
174
176
|
}
|
175
177
|
return ctx.getProcessResult()
|