@typemove/sui 1.6.3 → 1.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/builtin/0x1.d.ts +187 -131
- package/dist/cjs/builtin/0x1.d.ts.map +1 -1
- package/dist/cjs/builtin/0x1.js +696 -131
- package/dist/cjs/builtin/0x1.js.map +1 -1
- package/dist/cjs/builtin/0x2.d.ts +572 -572
- package/dist/cjs/builtin/0x2.d.ts.map +1 -1
- package/dist/cjs/builtin/0x2.js +569 -569
- package/dist/cjs/builtin/0x2.js.map +1 -1
- package/dist/cjs/builtin/0x3.d.ts +422 -242
- package/dist/cjs/builtin/0x3.d.ts.map +1 -1
- package/dist/cjs/builtin/0x3.js +639 -239
- package/dist/cjs/builtin/0x3.js.map +1 -1
- package/dist/cjs/codegen/codegen.d.ts +1 -1
- package/dist/cjs/codegen/codegen.d.ts.map +1 -1
- package/dist/cjs/codegen/codegen.js +7 -7
- package/dist/cjs/codegen/codegen.js.map +1 -1
- package/dist/cjs/models.d.ts +1 -1
- package/dist/cjs/models.d.ts.map +1 -1
- package/dist/cjs/move-coder.d.ts +5 -4
- package/dist/cjs/move-coder.d.ts.map +1 -1
- package/dist/cjs/move-coder.js +62 -23
- package/dist/cjs/move-coder.js.map +1 -1
- package/dist/cjs/move-coder.test.js.map +1 -1
- package/dist/cjs/sui-chain-adapter.d.ts +1 -1
- package/dist/cjs/sui-chain-adapter.d.ts.map +1 -1
- package/dist/cjs/sui-chain-adapter.js +1 -1
- package/dist/cjs/sui-chain-adapter.js.map +1 -1
- package/dist/cjs/to-internal.d.ts +1 -1
- package/dist/cjs/to-internal.d.ts.map +1 -1
- package/dist/cjs/to-internal.js +4 -4
- package/dist/cjs/transaction.d.ts +4 -4
- package/dist/cjs/transaction.d.ts.map +1 -1
- package/dist/cjs/transaction.js +2 -2
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/esm/builtin/0x1.d.ts +187 -131
- package/dist/esm/builtin/0x1.d.ts.map +1 -1
- package/dist/esm/builtin/0x1.js +696 -131
- package/dist/esm/builtin/0x1.js.map +1 -1
- package/dist/esm/builtin/0x2.d.ts +572 -572
- package/dist/esm/builtin/0x2.d.ts.map +1 -1
- package/dist/esm/builtin/0x2.js +569 -569
- package/dist/esm/builtin/0x2.js.map +1 -1
- package/dist/esm/builtin/0x3.d.ts +422 -242
- package/dist/esm/builtin/0x3.d.ts.map +1 -1
- package/dist/esm/builtin/0x3.js +639 -239
- package/dist/esm/builtin/0x3.js.map +1 -1
- package/dist/esm/codegen/codegen.d.ts +1 -1
- package/dist/esm/codegen/codegen.d.ts.map +1 -1
- package/dist/esm/codegen/codegen.js +7 -7
- package/dist/esm/codegen/codegen.js.map +1 -1
- package/dist/esm/codegen/run.js +1 -1
- package/dist/esm/codegen/run.js.map +1 -1
- package/dist/esm/models.d.ts +1 -1
- package/dist/esm/models.d.ts.map +1 -1
- package/dist/esm/move-coder.d.ts +5 -4
- package/dist/esm/move-coder.d.ts.map +1 -1
- package/dist/esm/move-coder.js +62 -23
- package/dist/esm/move-coder.js.map +1 -1
- package/dist/esm/move-coder.test.js.map +1 -1
- package/dist/esm/sui-chain-adapter.d.ts +1 -1
- package/dist/esm/sui-chain-adapter.d.ts.map +1 -1
- package/dist/esm/sui-chain-adapter.js +1 -1
- package/dist/esm/sui-chain-adapter.js.map +1 -1
- package/dist/esm/to-internal.d.ts +1 -1
- package/dist/esm/to-internal.d.ts.map +1 -1
- package/dist/esm/to-internal.js +5 -5
- package/dist/esm/to-internal.js.map +1 -1
- package/dist/esm/transaction.d.ts +4 -4
- package/dist/esm/transaction.d.ts.map +1 -1
- package/dist/esm/transaction.js +2 -2
- package/dist/esm/transaction.js.map +1 -1
- package/package.json +3 -4
- package/src/abis/0x1.json +499 -0
- package/src/abis/0x3.json +900 -41
- package/src/builtin/0x1.ts +1058 -267
- package/src/builtin/0x2.ts +1141 -1165
- package/src/builtin/0x3.ts +1171 -485
- package/src/codegen/codegen.ts +7 -7
- package/src/codegen/run.ts +1 -1
- package/src/models.ts +1 -1
- package/src/move-coder.ts +60 -28
- package/src/sui-chain-adapter.ts +1 -1
- package/src/tests/types/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.ts +11 -11
- package/src/tests/types/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.ts +99 -99
- package/src/tests/types/testnet/0xdee9.ts +183 -183
- package/src/tests/types/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.ts +313 -316
- package/src/to-internal.ts +7 -7
- package/src/transaction.ts +6 -6
package/src/codegen/codegen.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject, SuiClient } from '@mysten/sui
|
|
1
|
+
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject, SuiClient } from '@mysten/sui/client'
|
|
2
2
|
|
|
3
3
|
import * as fs from 'fs'
|
|
4
4
|
import chalk from 'chalk'
|
|
@@ -168,13 +168,13 @@ export class SuiCodegen extends AbstractCodegen<
|
|
|
168
168
|
${
|
|
169
169
|
typeParamArg.length > 0 ? `typeArguments: [${typeParamArg}]` : ``
|
|
170
170
|
} ): Promise<TypedDevInspectResults<${returnType}>> {
|
|
171
|
-
const tx = new
|
|
171
|
+
const tx = new Transaction()
|
|
172
172
|
builder.${camel(normalizeToJSName(func.name))}(tx, args ${typeParamArg.length > 0 ? `, typeArguments` : ''})
|
|
173
173
|
const inspectRes = await client.devInspectTransactionBlock({
|
|
174
174
|
transactionBlock: tx,
|
|
175
175
|
sender: ZERO_ADDRESS
|
|
176
176
|
})
|
|
177
|
-
|
|
177
|
+
|
|
178
178
|
return (await getMoveCoder(client)).decodeDevInspectResult<${returnType}>(inspectRes)
|
|
179
179
|
}`
|
|
180
180
|
}
|
|
@@ -203,13 +203,13 @@ export class SuiCodegen extends AbstractCodegen<
|
|
|
203
203
|
})
|
|
204
204
|
.join(',')
|
|
205
205
|
|
|
206
|
-
return `export function ${camel(normalizeToJSName(func.name))}${genericString}(tx:
|
|
206
|
+
return `export function ${camel(normalizeToJSName(func.name))}${genericString}(tx: Transaction,
|
|
207
207
|
args: [${args.map((a) => a.paramType).join(',')}],
|
|
208
208
|
${typeParamArg.length > 0 ? `typeArguments: [${typeParamArg}]` : ``} ):
|
|
209
209
|
TransactionArgument & [ ${'TransactionArgument,'.repeat(args.length)} ] {
|
|
210
210
|
const _args: any[] = []
|
|
211
211
|
${args.map((a) => a.callValue).join('\n')}
|
|
212
|
-
|
|
212
|
+
|
|
213
213
|
// @ts-ignore
|
|
214
214
|
return tx.moveCall({
|
|
215
215
|
target: "${address}::${module.name}::${func.name}",
|
|
@@ -223,8 +223,8 @@ export class SuiCodegen extends AbstractCodegen<
|
|
|
223
223
|
return `
|
|
224
224
|
${super.generateImports()}
|
|
225
225
|
import { ZERO_ADDRESS, TypedDevInspectResults, getMoveCoder } from '@typemove/sui'
|
|
226
|
-
import {
|
|
227
|
-
import { SuiClient } from '@mysten/sui
|
|
226
|
+
import { Transaction, TransactionArgument, TransactionObjectArgument } from '@mysten/sui/transactions'
|
|
227
|
+
import { SuiClient } from '@mysten/sui/client'
|
|
228
228
|
import { transactionArgumentOrObject, transactionArgumentOrPure, transactionArgumentOrVec } from '@typemove/sui'
|
|
229
229
|
`
|
|
230
230
|
}
|
package/src/codegen/run.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { Command } from 'commander'
|
|
|
5
5
|
import { createRequire } from 'module'
|
|
6
6
|
import fs from 'fs'
|
|
7
7
|
import path from 'path'
|
|
8
|
-
import { SuiClient } from '@mysten/sui
|
|
8
|
+
import { SuiClient } from '@mysten/sui/client'
|
|
9
9
|
const require = createRequire(import.meta.url)
|
|
10
10
|
let pkg = undefined
|
|
11
11
|
try {
|
package/src/models.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SuiEvent, MoveCallSuiTransaction, SuiMoveObject, DevInspectResults } from '@mysten/sui
|
|
1
|
+
import type { SuiEvent, MoveCallSuiTransaction, SuiMoveObject, DevInspectResults } from '@mysten/sui/client'
|
|
2
2
|
import { DecodedStruct } from '@typemove/move'
|
|
3
3
|
|
|
4
4
|
export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000000000000000000000000000'
|
package/src/move-coder.ts
CHANGED
|
@@ -16,24 +16,22 @@ import {
|
|
|
16
16
|
SuiMoveObject,
|
|
17
17
|
DevInspectResults,
|
|
18
18
|
SuiClient
|
|
19
|
-
} from '@mysten/sui
|
|
19
|
+
} from '@mysten/sui/client'
|
|
20
20
|
import { toInternalModule } from './to-internal.js'
|
|
21
21
|
import { SuiChainAdapter } from './sui-chain-adapter.js'
|
|
22
22
|
import { dynamic_field } from './builtin/0x2.js'
|
|
23
|
-
import {
|
|
23
|
+
import { BcsType, bcs } from '@mysten/sui/bcs'
|
|
24
24
|
|
|
25
25
|
// import { Encoding } from '@mysten/bcs/types', this doesn't get exported correctly
|
|
26
26
|
export type Encoding = 'base58' | 'base64' | 'hex'
|
|
27
27
|
|
|
28
|
-
import { normalizeSuiObjectId, normalizeSuiAddress } from '@mysten/sui
|
|
28
|
+
import { normalizeSuiObjectId, normalizeSuiAddress } from '@mysten/sui/utils'
|
|
29
29
|
|
|
30
30
|
export class MoveCoder extends AbstractMoveCoder<
|
|
31
31
|
// SuiNetwork,
|
|
32
32
|
SuiMoveNormalizedModule,
|
|
33
33
|
SuiEvent | SuiMoveObject
|
|
34
34
|
> {
|
|
35
|
-
bcs = new BCS(getSuiMoveConfig())
|
|
36
|
-
|
|
37
35
|
constructor(client: SuiClient) {
|
|
38
36
|
super(new SuiChainAdapter(client))
|
|
39
37
|
}
|
|
@@ -177,30 +175,62 @@ export class MoveCoder extends AbstractMoveCoder<
|
|
|
177
175
|
} as TypedFunctionPayload<any>
|
|
178
176
|
}
|
|
179
177
|
|
|
180
|
-
private
|
|
181
|
-
|
|
182
|
-
return
|
|
183
|
-
}
|
|
184
|
-
const moveStruct = await this.getMoveStruct(qname)
|
|
185
|
-
const structDef: StructTypeDefinition = {}
|
|
178
|
+
private bcsRegistered = new Set<string>()
|
|
179
|
+
private bcsRegistry = new Map<string, BcsType<any>>()
|
|
186
180
|
|
|
187
|
-
|
|
188
|
-
|
|
181
|
+
private async getBCSTypeWithArgs(type: TypeDescriptor, args: BcsType<any>[] = []): Promise<BcsType<any>> {
|
|
182
|
+
const qname = type.qname
|
|
183
|
+
const sig = type.getNormalizedSignature()
|
|
184
|
+
const cached = this.bcsRegistry.get(sig)
|
|
185
|
+
if (cached) {
|
|
186
|
+
return cached
|
|
189
187
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
188
|
+
const lowerQname = qname.toLowerCase()
|
|
189
|
+
switch (lowerQname) {
|
|
190
|
+
case 'u8':
|
|
191
|
+
case 'u16':
|
|
192
|
+
case 'u32':
|
|
193
|
+
case 'u64':
|
|
194
|
+
case 'u128':
|
|
195
|
+
case 'u256':
|
|
196
|
+
case 'bool':
|
|
197
|
+
return bcs[lowerQname]()
|
|
198
|
+
case 'address':
|
|
199
|
+
return bcs.Address
|
|
200
|
+
case 'vector':
|
|
201
|
+
return bcs.vector(args[0])
|
|
202
|
+
default:
|
|
203
|
+
if (!qname.includes('::')) {
|
|
204
|
+
throw `Unimplemented builtin type ${qname}`
|
|
205
|
+
}
|
|
194
206
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
207
|
+
let moveStruct
|
|
208
|
+
try {
|
|
209
|
+
moveStruct = await this.getMoveStruct(qname)
|
|
210
|
+
} catch (e) {
|
|
211
|
+
console.error('Invalid move address', qname)
|
|
212
|
+
throw e
|
|
213
|
+
}
|
|
214
|
+
const structDef: Record<string, any> = {}
|
|
198
215
|
for (const field of moveStruct.fields) {
|
|
199
|
-
|
|
216
|
+
if (field.type.qname.startsWith('T') && args.length) {
|
|
217
|
+
const index = +field.type.qname.slice(1)
|
|
218
|
+
structDef[field.name] = args[index]
|
|
219
|
+
} else if (field.type.typeArgs.length && args.length) {
|
|
220
|
+
structDef[field.name] = await this.getBCSTypeWithArgs(field.type, args)
|
|
221
|
+
} else {
|
|
222
|
+
structDef[field.name] = await this.getBCSType(field.type)
|
|
223
|
+
}
|
|
200
224
|
}
|
|
225
|
+
return bcs.struct(qname, structDef)
|
|
201
226
|
}
|
|
202
227
|
|
|
203
|
-
|
|
228
|
+
async getBCSType(type: TypeDescriptor): Promise<BcsType<any>> {
|
|
229
|
+
const args = await Promise.all(type.typeArgs.map((x) => this.getBCSType(x)))
|
|
230
|
+
const bcsType = await this.getBCSTypeWithArgs(type, args)
|
|
231
|
+
this.bcsRegistry.set(type.getNormalizedSignature(), bcsType)
|
|
232
|
+
return bcsType
|
|
233
|
+
}
|
|
204
234
|
|
|
205
235
|
async registerBCSTypes(type: TypeDescriptor): Promise<void> {
|
|
206
236
|
const sig = type.getNormalizedSignature()
|
|
@@ -209,16 +239,18 @@ export class MoveCoder extends AbstractMoveCoder<
|
|
|
209
239
|
}
|
|
210
240
|
this.bcsRegistered.add(sig)
|
|
211
241
|
|
|
212
|
-
await this.
|
|
213
|
-
|
|
214
|
-
for (const typeArg of type.dependedTypes()) {
|
|
215
|
-
await this._registerBCSType(typeArg)
|
|
216
|
-
}
|
|
242
|
+
const bcsType = await this.getBCSType(type)
|
|
243
|
+
this.bcsRegistry.set(type.getNormalizedSignature(), bcsType)
|
|
217
244
|
}
|
|
218
245
|
|
|
219
246
|
async decodeBCS(type: TypeDescriptor, data: Uint8Array | string, encoding?: Encoding): Promise<any> {
|
|
220
247
|
await this.registerBCSTypes(type)
|
|
221
|
-
|
|
248
|
+
if (typeof data == 'string') {
|
|
249
|
+
const buf = Buffer.from(data, encoding as any)
|
|
250
|
+
data = new Uint8Array(buf, buf.byteOffset, buf.byteLength)
|
|
251
|
+
}
|
|
252
|
+
const bcsType = this.bcsRegistry.get(type.getNormalizedSignature())
|
|
253
|
+
return bcsType?.parse(data)
|
|
222
254
|
}
|
|
223
255
|
|
|
224
256
|
async decodeDevInspectResult<T extends any[]>(inspectRes: DevInspectResults): Promise<TypedDevInspectResults<T>> {
|
package/src/sui-chain-adapter.ts
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
TypeDescriptor
|
|
9
9
|
} from '@typemove/move'
|
|
10
10
|
|
|
11
|
-
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject, SuiClient } from '@mysten/sui
|
|
11
|
+
import { SuiMoveNormalizedModule, SuiEvent, SuiMoveObject, SuiClient } from '@mysten/sui/client'
|
|
12
12
|
|
|
13
13
|
export class SuiChainAdapter extends ChainAdapter<
|
|
14
14
|
// SuiNetwork,
|
|
@@ -15,11 +15,11 @@ import {
|
|
|
15
15
|
getMoveCoder,
|
|
16
16
|
} from "@typemove/sui";
|
|
17
17
|
import {
|
|
18
|
-
|
|
18
|
+
Transaction,
|
|
19
19
|
TransactionArgument,
|
|
20
20
|
TransactionObjectArgument,
|
|
21
|
-
} from "@mysten/sui
|
|
22
|
-
import { SuiClient } from "@mysten/sui
|
|
21
|
+
} from "@mysten/sui/transactions";
|
|
22
|
+
import { SuiClient } from "@mysten/sui/client";
|
|
23
23
|
import {
|
|
24
24
|
transactionArgumentOrObject,
|
|
25
25
|
transactionArgumentOrPure,
|
|
@@ -95,7 +95,7 @@ export namespace oracle {
|
|
|
95
95
|
|
|
96
96
|
export namespace builder {
|
|
97
97
|
export function copyKey<T0 = any>(
|
|
98
|
-
tx:
|
|
98
|
+
tx: Transaction,
|
|
99
99
|
args: [
|
|
100
100
|
string | TransactionObjectArgument | TransactionArgument,
|
|
101
101
|
string | TransactionArgument,
|
|
@@ -119,7 +119,7 @@ export namespace oracle {
|
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
export function getOracle<T0 = any>(
|
|
122
|
-
tx:
|
|
122
|
+
tx: Transaction,
|
|
123
123
|
args: [string | TransactionObjectArgument | TransactionArgument],
|
|
124
124
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
125
125
|
): TransactionArgument & [TransactionArgument] {
|
|
@@ -139,7 +139,7 @@ export namespace oracle {
|
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
141
|
export function newOracle<T0 = any>(
|
|
142
|
-
tx:
|
|
142
|
+
tx: Transaction,
|
|
143
143
|
args: [bigint | TransactionArgument],
|
|
144
144
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
145
145
|
): TransactionArgument & [TransactionArgument] {
|
|
@@ -159,7 +159,7 @@ export namespace oracle {
|
|
|
159
159
|
});
|
|
160
160
|
}
|
|
161
161
|
export function update<T0 = any>(
|
|
162
|
-
tx:
|
|
162
|
+
tx: Transaction,
|
|
163
163
|
args: [
|
|
164
164
|
string | TransactionObjectArgument | TransactionArgument,
|
|
165
165
|
string | TransactionObjectArgument | TransactionArgument,
|
|
@@ -205,7 +205,7 @@ export namespace oracle {
|
|
|
205
205
|
],
|
|
206
206
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
207
207
|
): Promise<TypedDevInspectResults<[]>> {
|
|
208
|
-
const tx = new
|
|
208
|
+
const tx = new Transaction();
|
|
209
209
|
builder.copyKey(tx, args, typeArguments);
|
|
210
210
|
const inspectRes = await client.devInspectTransactionBlock({
|
|
211
211
|
transactionBlock: tx,
|
|
@@ -221,7 +221,7 @@ export namespace oracle {
|
|
|
221
221
|
args: [string | TransactionObjectArgument | TransactionArgument],
|
|
222
222
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
223
223
|
): Promise<TypedDevInspectResults<[bigint, bigint, bigint, bigint]>> {
|
|
224
|
-
const tx = new
|
|
224
|
+
const tx = new Transaction();
|
|
225
225
|
builder.getOracle(tx, args, typeArguments);
|
|
226
226
|
const inspectRes = await client.devInspectTransactionBlock({
|
|
227
227
|
transactionBlock: tx,
|
|
@@ -237,7 +237,7 @@ export namespace oracle {
|
|
|
237
237
|
args: [bigint | TransactionArgument],
|
|
238
238
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
239
239
|
): Promise<TypedDevInspectResults<[]>> {
|
|
240
|
-
const tx = new
|
|
240
|
+
const tx = new Transaction();
|
|
241
241
|
builder.newOracle(tx, args, typeArguments);
|
|
242
242
|
const inspectRes = await client.devInspectTransactionBlock({
|
|
243
243
|
transactionBlock: tx,
|
|
@@ -259,7 +259,7 @@ export namespace oracle {
|
|
|
259
259
|
],
|
|
260
260
|
typeArguments: [TypeDescriptor<T0> | string],
|
|
261
261
|
): Promise<TypedDevInspectResults<[]>> {
|
|
262
|
-
const tx = new
|
|
262
|
+
const tx = new Transaction();
|
|
263
263
|
builder.update(tx, args, typeArguments);
|
|
264
264
|
const inspectRes = await client.devInspectTransactionBlock({
|
|
265
265
|
transactionBlock: tx,
|