@typemove/sui 1.14.0-rc.1 → 2.0.0
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/Readme.md +19 -17
- package/package.json +3 -3
- package/dist/esm/builtin/0x1.d.ts +0 -1030
- package/dist/esm/builtin/0x1.d.ts.map +0 -1
- package/dist/esm/builtin/0x1.js +0 -7799
- package/dist/esm/builtin/0x1.js.map +0 -1
- package/dist/esm/builtin/0x2.d.ts +0 -4766
- package/dist/esm/builtin/0x2.d.ts.map +0 -1
- package/dist/esm/builtin/0x2.js +0 -23180
- package/dist/esm/builtin/0x2.js.map +0 -1
- package/dist/esm/builtin/0x3.d.ts +0 -1964
- package/dist/esm/builtin/0x3.d.ts.map +0 -1
- package/dist/esm/builtin/0x3.js +0 -7606
- package/dist/esm/builtin/0x3.js.map +0 -1
- package/dist/esm/builtin/index.d.ts +0 -4
- package/dist/esm/builtin/index.d.ts.map +0 -1
- package/dist/esm/builtin/index.js +0 -7
- package/dist/esm/builtin/index.js.map +0 -1
- package/dist/esm/codegen/codegen.d.ts +0 -20
- package/dist/esm/codegen/codegen.d.ts.map +0 -1
- package/dist/esm/codegen/codegen.js +0 -247
- package/dist/esm/codegen/codegen.js.map +0 -1
- package/dist/esm/codegen/index.d.ts +0 -2
- package/dist/esm/codegen/index.d.ts.map +0 -1
- package/dist/esm/codegen/index.js +0 -2
- package/dist/esm/codegen/index.js.map +0 -1
- package/dist/esm/codegen/run.d.ts +0 -3
- package/dist/esm/codegen/run.d.ts.map +0 -1
- package/dist/esm/codegen/run.js.map +0 -1
- package/dist/esm/index.d.ts +0 -5
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -5
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/models.d.ts +0 -21
- package/dist/esm/models.d.ts.map +0 -1
- package/dist/esm/models.js +0 -2
- package/dist/esm/models.js.map +0 -1
- package/dist/esm/move-coder.d.ts +0 -28
- package/dist/esm/move-coder.d.ts.map +0 -1
- package/dist/esm/move-coder.js +0 -311
- package/dist/esm/move-coder.js.map +0 -1
- package/dist/esm/move-coder.test.d.ts +0 -2
- package/dist/esm/move-coder.test.d.ts.map +0 -1
- package/dist/esm/move-coder.test.js.map +0 -1
- package/dist/esm/sui-chain-adapter.d.ts +0 -28
- package/dist/esm/sui-chain-adapter.d.ts.map +0 -1
- package/dist/esm/sui-chain-adapter.js +0 -109
- package/dist/esm/sui-chain-adapter.js.map +0 -1
- package/dist/esm/to-internal.d.ts +0 -6
- package/dist/esm/to-internal.d.ts.map +0 -1
- package/dist/esm/to-internal.js +0 -170
- package/dist/esm/to-internal.js.map +0 -1
- package/dist/esm/transaction.d.ts +0 -15
- package/dist/esm/transaction.d.ts.map +0 -1
- package/dist/esm/transaction.js +0 -83
- package/dist/esm/transaction.js.map +0 -1
- package/src/abis/0x1.json +0 -9096
- package/src/abis/0x2.json +0 -38512
- package/src/abis/0x3.json +0 -14755
- package/src/builtin/0x1.ts +0 -10657
- package/src/builtin/0x2.ts +0 -33567
- package/src/builtin/0x3.ts +0 -11437
- package/src/builtin/index.ts +0 -6
- package/src/codegen/codegen.ts +0 -292
- package/src/codegen/index.ts +0 -1
- package/src/codegen/run.ts +0 -57
- package/src/index.ts +0 -13
- package/src/models.ts +0 -32
- package/src/move-coder.ts +0 -364
- package/src/sui-chain-adapter.ts +0 -142
- package/src/tests/abis/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.json +0 -341
- package/src/tests/abis/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.json +0 -3375
- package/src/tests/abis/testnet/0x7f7a37c826c88bcfe9aecc042453395ddfa9df6f29cb7c97590bf86cf2b0a75e.json +0 -1535
- package/src/tests/abis/testnet/0xdee9.json +0 -10176
- package/src/tests/abis/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.json +0 -12904
- package/src/tests/abis/testnet/enum.json +0 -6859
- package/src/tests/types/testnet/0x1e2b124f746a339b3cf99b9f969393a96594519aafb1d06517aacfeeae20e7a5.ts +0 -314
- package/src/tests/types/testnet/0x6c4a21e3e7e6b6d51c4604021633e1d97e24e37a696f8c082cd48f37503e602a.ts +0 -2819
- package/src/tests/types/testnet/0x7f7a37c826c88bcfe9aecc042453395ddfa9df6f29cb7c97590bf86cf2b0a75e.ts +0 -1594
- package/src/tests/types/testnet/0xdee9.ts +0 -7049
- package/src/tests/types/testnet/0xebaa2ad3eacc230f309cd933958cc52684df0a41ae7ac214d186b80f830867d2.ts +0 -10609
- package/src/tests/types/testnet/enum.ts +0 -6297
- package/src/tests/types/testnet/index.ts +0 -9
- package/src/to-internal.ts +0 -201
- package/src/transaction.ts +0 -127
package/dist/esm/move-coder.js
DELETED
|
@@ -1,311 +0,0 @@
|
|
|
1
|
-
import { AbstractMoveCoder, ANY_TYPE, accountTypeString, parseMoveType, SPLITTER, TypeDescriptor } from '@typemove/move';
|
|
2
|
-
import { SuiChainAdapter, getGrpcClient, getGrpcFullnodeUrl } from './sui-chain-adapter.js';
|
|
3
|
-
import { toInternalModule } from './to-internal.js';
|
|
4
|
-
import { bcs } from '@mysten/sui/bcs';
|
|
5
|
-
import { normalizeSuiObjectId, normalizeSuiAddress } from '@mysten/sui/utils';
|
|
6
|
-
export class MoveCoder extends AbstractMoveCoder {
|
|
7
|
-
constructor(client) {
|
|
8
|
-
super(new SuiChainAdapter(client));
|
|
9
|
-
}
|
|
10
|
-
load(entry, address) {
|
|
11
|
-
address = accountTypeString(address);
|
|
12
|
-
const { address: moduleAddress, module } = entry;
|
|
13
|
-
let m = this.moduleMapping.get(moduleAddress + '::' + module.name);
|
|
14
|
-
const mDeclared = this.moduleMapping.get(address + '::' + module.name);
|
|
15
|
-
if (m && mDeclared) {
|
|
16
|
-
return m;
|
|
17
|
-
}
|
|
18
|
-
this.accounts.add(moduleAddress);
|
|
19
|
-
m = toInternalModule(module, moduleAddress);
|
|
20
|
-
this.loadInternal(m, address);
|
|
21
|
-
return m;
|
|
22
|
-
}
|
|
23
|
-
async decode(data, type) {
|
|
24
|
-
// UID handled before the switch to avoid the existing fall-through chain
|
|
25
|
-
// (case '0x2::url::Url' / '0x2::coin::Coin' bodies fire on non-string
|
|
26
|
-
// inputs and corrupt UID output). gRPC's unified Object.json flattens UID
|
|
27
|
-
// to a bare address string — re-wrap to `{ id: '0x<32-byte>' }` so
|
|
28
|
-
// downstream `.id.id`-style accessors keep working. The BCS-shaped path
|
|
29
|
-
// (`{ id: { bytes: Uint8Array(32) } }`) is delegated to super.decode,
|
|
30
|
-
// which then hits the inner ID case.
|
|
31
|
-
if (type.qname === '0x2::object::UID') {
|
|
32
|
-
if (typeof data === 'string') {
|
|
33
|
-
return { id: normalizeSuiObjectId(data) };
|
|
34
|
-
}
|
|
35
|
-
return super.decode(data, type);
|
|
36
|
-
}
|
|
37
|
-
switch (type.qname) {
|
|
38
|
-
case '0x1::ascii::Char':
|
|
39
|
-
if (data !== undefined && typeof data !== 'string') {
|
|
40
|
-
// bcs
|
|
41
|
-
const byte = (await super.decode(data, type)).byte;
|
|
42
|
-
return String.fromCharCode(byte);
|
|
43
|
-
}
|
|
44
|
-
case '0x1::ascii::String':
|
|
45
|
-
if (data !== undefined && typeof data !== 'string') {
|
|
46
|
-
// bcs verified
|
|
47
|
-
const bytes = (await super.decode(data, type)).bytes;
|
|
48
|
-
return new TextDecoder().decode(new Uint8Array(bytes));
|
|
49
|
-
}
|
|
50
|
-
case '0x2::object::ID':
|
|
51
|
-
if (data !== undefined && typeof data !== 'string') {
|
|
52
|
-
// bcs verified
|
|
53
|
-
const bytes = (await super.decode(data, type)).bytes;
|
|
54
|
-
return normalizeSuiObjectId(bytes);
|
|
55
|
-
}
|
|
56
|
-
case '0x2::url::Url':
|
|
57
|
-
if (data !== undefined && typeof data !== 'string') {
|
|
58
|
-
// bcs
|
|
59
|
-
return (await super.decode(data, type)).url;
|
|
60
|
-
}
|
|
61
|
-
case '0x2::coin::Coin':
|
|
62
|
-
if (data !== undefined && typeof data !== 'string') {
|
|
63
|
-
// bcs
|
|
64
|
-
const bytes = (await super.decode(data, type)).id.id.bytes;
|
|
65
|
-
return new TextDecoder().decode(new Uint8Array(bytes));
|
|
66
|
-
}
|
|
67
|
-
return data;
|
|
68
|
-
case '0x2::balance::Balance':
|
|
69
|
-
if (data.value) {
|
|
70
|
-
// bcs verfied
|
|
71
|
-
const balance = await super.decode(data, type);
|
|
72
|
-
return balance.value;
|
|
73
|
-
}
|
|
74
|
-
return BigInt(data);
|
|
75
|
-
case '0x1::option::Option':
|
|
76
|
-
if (data === null) {
|
|
77
|
-
return data;
|
|
78
|
-
}
|
|
79
|
-
if (data.vec) {
|
|
80
|
-
// bcs verifed
|
|
81
|
-
let vec = await super.decode(data, type);
|
|
82
|
-
vec = vec.vec;
|
|
83
|
-
if (vec.length === 0) {
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
return vec[0];
|
|
87
|
-
}
|
|
88
|
-
return this.decode(data, type.typeArgs[0]);
|
|
89
|
-
case 'Address':
|
|
90
|
-
const str = data;
|
|
91
|
-
return normalizeSuiAddress(str);
|
|
92
|
-
case '0x1::string::String':
|
|
93
|
-
if (typeof data !== 'string') {
|
|
94
|
-
// bcs
|
|
95
|
-
return new TextDecoder().decode(new Uint8Array(data.bytes));
|
|
96
|
-
}
|
|
97
|
-
default:
|
|
98
|
-
return super.decode(data, type);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
decodeEvent(event) {
|
|
102
|
-
return this.decodedStruct(event);
|
|
103
|
-
}
|
|
104
|
-
filterAndDecodeEvents(type, resources) {
|
|
105
|
-
if (typeof type === 'string') {
|
|
106
|
-
type = parseMoveType(type);
|
|
107
|
-
}
|
|
108
|
-
return this.filterAndDecodeStruct(type, resources);
|
|
109
|
-
}
|
|
110
|
-
async getDynamicFields(objects, keyType = ANY_TYPE, valueType = ANY_TYPE) {
|
|
111
|
-
const type = new TypeDescriptor('0x2::dynamic_field::Field');
|
|
112
|
-
type.typeArgs = [keyType, valueType];
|
|
113
|
-
const res = await this.filterAndDecodeObjects(type, objects);
|
|
114
|
-
return res.map((o) => o.data_decoded);
|
|
115
|
-
}
|
|
116
|
-
filterAndDecodeObjects(type, objects) {
|
|
117
|
-
return this.filterAndDecodeStruct(type, objects);
|
|
118
|
-
}
|
|
119
|
-
// Decodes a parsed Move call payload against the loaded module ABI.
|
|
120
|
-
// Inputs are gRPC `Input[]`: kind=PURE carries a Uint8Array of BCS bytes
|
|
121
|
-
// that we decode using the corresponding parameter's Move type;
|
|
122
|
-
// object inputs (IMMUTABLE_OR_OWNED / SHARED / receiving) are surfaced as
|
|
123
|
-
// undefined since their on-chain values aren't part of the payload.
|
|
124
|
-
async decodeFunctionPayload(payload, inputs) {
|
|
125
|
-
const functionType = [payload.package, payload.module, payload.function].join(SPLITTER);
|
|
126
|
-
const func = await this.getMoveFunction(functionType);
|
|
127
|
-
const params = this.adapter.getMeaningfulFunctionParams(func.params);
|
|
128
|
-
const args = [];
|
|
129
|
-
for (const value of payload.arguments ?? []) {
|
|
130
|
-
const av = value;
|
|
131
|
-
const idx = av?.input;
|
|
132
|
-
if (idx == null || idx < 0 || idx >= inputs.length) {
|
|
133
|
-
args.push(undefined);
|
|
134
|
-
continue;
|
|
135
|
-
}
|
|
136
|
-
const arg = inputs[idx];
|
|
137
|
-
if (arg?.pure) {
|
|
138
|
-
const paramType = params[args.length];
|
|
139
|
-
try {
|
|
140
|
-
const bytes = arg.pure instanceof Uint8Array ? arg.pure : new Uint8Array(arg.pure);
|
|
141
|
-
const decoded = paramType ? await this.decodeBCS(paramType, bytes) : bytes;
|
|
142
|
-
args.push(decoded);
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
args.push(undefined);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
// Object inputs (and unknown kinds) — value isn't carried in the payload.
|
|
150
|
-
args.push(undefined);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
const argumentsTyped = await this.decodeArray(args, params, false);
|
|
154
|
-
return {
|
|
155
|
-
...payload,
|
|
156
|
-
arguments_decoded: argumentsTyped
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
bcsRegistered = new Set();
|
|
160
|
-
bcsRegistry = new Map();
|
|
161
|
-
async getBCSTypeWithArgs(type, args = []) {
|
|
162
|
-
const qname = type.qname;
|
|
163
|
-
const sig = type.getNormalizedSignature();
|
|
164
|
-
const cached = this.bcsRegistry.get(sig);
|
|
165
|
-
if (cached) {
|
|
166
|
-
return cached;
|
|
167
|
-
}
|
|
168
|
-
const lowerQname = qname.toLowerCase();
|
|
169
|
-
switch (lowerQname) {
|
|
170
|
-
case 'u8':
|
|
171
|
-
case 'u16':
|
|
172
|
-
case 'u32':
|
|
173
|
-
case 'u64':
|
|
174
|
-
case 'u128':
|
|
175
|
-
case 'u256':
|
|
176
|
-
case 'bool':
|
|
177
|
-
return bcs[lowerQname]();
|
|
178
|
-
case 'address':
|
|
179
|
-
return bcs.Address;
|
|
180
|
-
case 'vector':
|
|
181
|
-
return bcs.vector(args[0]);
|
|
182
|
-
default:
|
|
183
|
-
if (!qname.includes('::')) {
|
|
184
|
-
throw `Unimplemented builtin type ${qname}`;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
let moveStruct;
|
|
188
|
-
try {
|
|
189
|
-
moveStruct = await this.getMoveStruct(qname);
|
|
190
|
-
}
|
|
191
|
-
catch (e) {
|
|
192
|
-
console.error('Invalid move address', qname);
|
|
193
|
-
throw e;
|
|
194
|
-
}
|
|
195
|
-
const structDef = {};
|
|
196
|
-
for (const field of moveStruct.fields) {
|
|
197
|
-
if (field.type.qname.startsWith('T') && args.length) {
|
|
198
|
-
const index = +field.type.qname.slice(1);
|
|
199
|
-
structDef[field.name] = args[index];
|
|
200
|
-
}
|
|
201
|
-
else if (field.type.typeArgs.length && args.length) {
|
|
202
|
-
structDef[field.name] = await this.getBCSTypeWithArgs(field.type, args);
|
|
203
|
-
}
|
|
204
|
-
else {
|
|
205
|
-
structDef[field.name] = await this.getBCSType(field.type);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return bcs.struct(qname, structDef);
|
|
209
|
-
}
|
|
210
|
-
async getBCSType(type) {
|
|
211
|
-
const args = await Promise.all(type.typeArgs.map((x) => this.getBCSType(x)));
|
|
212
|
-
const bcsType = await this.getBCSTypeWithArgs(type, args);
|
|
213
|
-
this.bcsRegistry.set(type.getNormalizedSignature(), bcsType);
|
|
214
|
-
return bcsType;
|
|
215
|
-
}
|
|
216
|
-
async registerBCSTypes(type) {
|
|
217
|
-
const sig = type.getNormalizedSignature();
|
|
218
|
-
if (this.bcsRegistered.has(sig)) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
this.bcsRegistered.add(sig);
|
|
222
|
-
const bcsType = await this.getBCSType(type);
|
|
223
|
-
this.bcsRegistry.set(type.getNormalizedSignature(), bcsType);
|
|
224
|
-
}
|
|
225
|
-
async decodeBCS(type, data, encoding) {
|
|
226
|
-
await this.registerBCSTypes(type);
|
|
227
|
-
if (typeof data == 'string') {
|
|
228
|
-
const buf = Buffer.from(data, encoding);
|
|
229
|
-
data = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
230
|
-
}
|
|
231
|
-
const bcsType = this.bcsRegistry.get(type.getNormalizedSignature());
|
|
232
|
-
return bcsType?.parse(data);
|
|
233
|
-
}
|
|
234
|
-
// Replaces decodeDevInspectResult. gRPC simulateTransaction returns
|
|
235
|
-
// `commandResults: CommandResult[]` where each CommandResult.returnValues is
|
|
236
|
-
// `CommandOutput[]` of raw `{ bcs: Uint8Array }` — there is no per-return
|
|
237
|
-
// type string the way devInspect carried one. The caller must therefore pass
|
|
238
|
-
// the Move return-type signatures explicitly (codegen emits them next to
|
|
239
|
-
// each generated view helper).
|
|
240
|
-
async decodeSimulateResult(simulateRes, returnTypeSignatures, typeArguments) {
|
|
241
|
-
// Generic view helpers embed return signatures like "T0" / "vector<T1>"
|
|
242
|
-
// at codegen time, but the caller supplies concrete type arguments only
|
|
243
|
-
// at runtime. Substitute them in before BCS decoding — otherwise the BCS
|
|
244
|
-
// type registry sees the bare type-parameter qname and rejects it as an
|
|
245
|
-
// unimplemented builtin.
|
|
246
|
-
const ctx = new Map();
|
|
247
|
-
if (typeArguments && typeArguments.length > 0) {
|
|
248
|
-
typeArguments.forEach((t, i) => {
|
|
249
|
-
ctx.set('T' + i, typeof t === 'string' ? parseMoveType(t) : t);
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
const returnValues = [];
|
|
253
|
-
const commandResults = simulateRes?.commandResults;
|
|
254
|
-
if (Array.isArray(commandResults)) {
|
|
255
|
-
let typeIdx = 0;
|
|
256
|
-
for (const r of commandResults) {
|
|
257
|
-
const rvs = r?.returnValues;
|
|
258
|
-
if (Array.isArray(rvs) && rvs.length > 0) {
|
|
259
|
-
for (const rv of rvs) {
|
|
260
|
-
const sig = returnTypeSignatures[typeIdx++];
|
|
261
|
-
if (!sig) {
|
|
262
|
-
returnValues.push(null);
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
let type = parseMoveType(sig);
|
|
266
|
-
if (ctx.size > 0) {
|
|
267
|
-
type = type.applyTypeArgs(ctx);
|
|
268
|
-
}
|
|
269
|
-
const bcsBytes = rv?.bcs instanceof Uint8Array ? rv.bcs : new Uint8Array(rv?.bcs ?? []);
|
|
270
|
-
const bcsDecoded = await this.decodeBCS(type, bcsBytes);
|
|
271
|
-
const decoded = await this.decodeType(bcsDecoded, type);
|
|
272
|
-
returnValues.push(decoded);
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
else {
|
|
276
|
-
returnValues.push(null);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return { ...simulateRes, results_decoded: returnValues };
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
const DEFAULT_ENDPOINT = getGrpcFullnodeUrl('mainnet');
|
|
284
|
-
const CODER_MAP = new Map();
|
|
285
|
-
export function defaultMoveCoder(endpoint = DEFAULT_ENDPOINT) {
|
|
286
|
-
let coder = CODER_MAP.get(endpoint);
|
|
287
|
-
if (!coder) {
|
|
288
|
-
coder = new MoveCoder(getGrpcClient(endpoint));
|
|
289
|
-
CODER_MAP.set(endpoint, coder);
|
|
290
|
-
}
|
|
291
|
-
return coder;
|
|
292
|
-
}
|
|
293
|
-
const PROVIDER_CODER_MAP = new Map();
|
|
294
|
-
let DEFAULT_CHAIN_ID;
|
|
295
|
-
export async function getMoveCoder(client) {
|
|
296
|
-
let coder = PROVIDER_CODER_MAP.get(client);
|
|
297
|
-
if (!coder) {
|
|
298
|
-
coder = new MoveCoder(client);
|
|
299
|
-
const { chainIdentifier } = await client.core.getChainIdentifier();
|
|
300
|
-
const defaultCoder = defaultMoveCoder();
|
|
301
|
-
if (!DEFAULT_CHAIN_ID) {
|
|
302
|
-
DEFAULT_CHAIN_ID = await defaultCoder.adapter.getChainId();
|
|
303
|
-
}
|
|
304
|
-
if (chainIdentifier === DEFAULT_CHAIN_ID) {
|
|
305
|
-
coder = defaultCoder;
|
|
306
|
-
}
|
|
307
|
-
PROVIDER_CODER_MAP.set(client, coder);
|
|
308
|
-
}
|
|
309
|
-
return coder;
|
|
310
|
-
}
|
|
311
|
-
//# sourceMappingURL=move-coder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-coder.js","sourceRoot":"","sources":["../../src/move-coder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"move-coder.test.d.ts","sourceRoot":"","sources":["../../src/move-coder.test.ts"],"names":[],"mappings":""}
|