@suilend/springsui-cli 1.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/cli/src/index.d.ts +1 -0
- package/cli/src/index.js +304 -0
- package/package.json +1 -0
- package/sdk/src/_generated/_dependencies/source/0x1/ascii/structs.d.ts +92 -0
- package/sdk/src/_generated/_dependencies/source/0x1/ascii/structs.js +289 -0
- package/sdk/src/_generated/_dependencies/source/0x1/index.d.ts +3 -0
- package/sdk/src/_generated/_dependencies/source/0x1/index.js +6 -0
- package/sdk/src/_generated/_dependencies/source/0x1/option/structs.d.ts +52 -0
- package/sdk/src/_generated/_dependencies/source/0x1/option/structs.js +180 -0
- package/sdk/src/_generated/_dependencies/source/0x1/string/structs.d.ts +50 -0
- package/sdk/src/_generated/_dependencies/source/0x1/string/structs.js +167 -0
- package/sdk/src/_generated/_dependencies/source/0x1/type-name/structs.d.ts +53 -0
- package/sdk/src/_generated/_dependencies/source/0x1/type-name/structs.js +144 -0
- package/sdk/src/_generated/_dependencies/source/0x2/bag/structs.d.ts +61 -0
- package/sdk/src/_generated/_dependencies/source/0x2/bag/structs.js +149 -0
- package/sdk/src/_generated/_dependencies/source/0x2/balance/structs.d.ts +88 -0
- package/sdk/src/_generated/_dependencies/source/0x2/balance/structs.js +291 -0
- package/sdk/src/_generated/_dependencies/source/0x2/coin/structs.d.ts +460 -0
- package/sdk/src/_generated/_dependencies/source/0x2/coin/structs.js +1045 -0
- package/sdk/src/_generated/_dependencies/source/0x2/index.d.ts +3 -0
- package/sdk/src/_generated/_dependencies/source/0x2/index.js +6 -0
- package/sdk/src/_generated/_dependencies/source/0x2/object/structs.d.ts +92 -0
- package/sdk/src/_generated/_dependencies/source/0x2/object/structs.js +270 -0
- package/sdk/src/_generated/_dependencies/source/0x2/sui/structs.d.ts +46 -0
- package/sdk/src/_generated/_dependencies/source/0x2/sui/structs.js +142 -0
- package/sdk/src/_generated/_dependencies/source/0x2/table/structs.d.ts +61 -0
- package/sdk/src/_generated/_dependencies/source/0x2/table/structs.js +163 -0
- package/sdk/src/_generated/_dependencies/source/0x2/url/structs.d.ts +53 -0
- package/sdk/src/_generated/_dependencies/source/0x2/url/structs.js +143 -0
- package/sdk/src/_generated/_dependencies/source/0x2/vec-map/structs.d.ts +111 -0
- package/sdk/src/_generated/_dependencies/source/0x2/vec-map/structs.js +325 -0
- package/sdk/src/_generated/_dependencies/source/0x3/index.d.ts +3 -0
- package/sdk/src/_generated/_dependencies/source/0x3/index.js +6 -0
- package/sdk/src/_generated/_dependencies/source/0x3/staking-pool/structs.d.ts +487 -0
- package/sdk/src/_generated/_dependencies/source/0x3/staking-pool/structs.js +915 -0
- package/sdk/src/_generated/_framework/reified.d.ts +108 -0
- package/sdk/src/_generated/_framework/reified.js +240 -0
- package/sdk/src/_generated/_framework/util.d.ts +35 -0
- package/sdk/src/_generated/_framework/util.js +334 -0
- package/sdk/src/_generated/_framework/vector.d.ts +35 -0
- package/sdk/src/_generated/_framework/vector.js +77 -0
- package/sdk/src/_generated/liquid_staking/cell/structs.d.ts +54 -0
- package/sdk/src/_generated/liquid_staking/cell/structs.js +156 -0
- package/sdk/src/_generated/liquid_staking/fees/functions.d.ts +51 -0
- package/sdk/src/_generated/liquid_staking/fees/functions.js +130 -0
- package/sdk/src/_generated/liquid_staking/fees/structs.d.ts +165 -0
- package/sdk/src/_generated/liquid_staking/fees/structs.js +307 -0
- package/sdk/src/_generated/liquid_staking/index.d.ts +4 -0
- package/sdk/src/_generated/liquid_staking/index.js +10 -0
- package/sdk/src/_generated/liquid_staking/liquid-staking/functions.d.ts +88 -0
- package/sdk/src/_generated/liquid_staking/liquid-staking/functions.js +199 -0
- package/sdk/src/_generated/liquid_staking/liquid-staking/structs.d.ts +955 -0
- package/sdk/src/_generated/liquid_staking/liquid-staking/structs.js +1477 -0
- package/sdk/src/_generated/liquid_staking/storage/structs.d.ts +358 -0
- package/sdk/src/_generated/liquid_staking/storage/structs.js +365 -0
- package/sdk/src/_generated/liquid_staking/version/structs.d.ts +46 -0
- package/sdk/src/_generated/liquid_staking/version/structs.js +143 -0
- package/sdk/src/_generated/liquid_staking/weight/functions.d.ts +19 -0
- package/sdk/src/_generated/liquid_staking/weight/functions.js +44 -0
- package/sdk/src/_generated/liquid_staking/weight/structs.d.ts +205 -0
- package/sdk/src/_generated/liquid_staking/weight/structs.js +332 -0
- package/sdk/src/index.d.ts +44 -0
- package/sdk/src/index.js +234 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { BcsType } from "@mysten/sui/bcs";
|
|
2
|
+
import { FieldsWithTypes } from "./util";
|
|
3
|
+
import { SuiClient, SuiParsedData, SuiObjectData } from "@mysten/sui/client";
|
|
4
|
+
export { vector } from "./vector";
|
|
5
|
+
export interface StructClass {
|
|
6
|
+
readonly $typeName: string;
|
|
7
|
+
readonly $fullTypeName: string;
|
|
8
|
+
readonly $typeArgs: string[];
|
|
9
|
+
readonly $isPhantom: readonly boolean[];
|
|
10
|
+
toJSONField(): Record<string, any>;
|
|
11
|
+
toJSON(): Record<string, any>;
|
|
12
|
+
__StructClass: true;
|
|
13
|
+
}
|
|
14
|
+
export interface VectorClass {
|
|
15
|
+
readonly $typeName: "vector";
|
|
16
|
+
readonly $fullTypeName: string;
|
|
17
|
+
readonly $typeArgs: [string];
|
|
18
|
+
readonly $isPhantom: readonly [false];
|
|
19
|
+
toJSONField(): any[];
|
|
20
|
+
toJSON(): Record<string, any>;
|
|
21
|
+
readonly elements: any;
|
|
22
|
+
__VectorClass: true;
|
|
23
|
+
}
|
|
24
|
+
export type Primitive = "bool" | "u8" | "u16" | "u32" | "u64" | "u128" | "u256" | "address";
|
|
25
|
+
export type TypeArgument = StructClass | Primitive | VectorClass;
|
|
26
|
+
export interface StructClassReified<T extends StructClass, Fields> {
|
|
27
|
+
typeName: T["$typeName"];
|
|
28
|
+
fullTypeName: ToTypeStr<T>;
|
|
29
|
+
typeArgs: T["$typeArgs"];
|
|
30
|
+
isPhantom: T["$isPhantom"];
|
|
31
|
+
reifiedTypeArgs: Array<Reified<TypeArgument, any> | PhantomReified<PhantomTypeArgument>>;
|
|
32
|
+
bcs: BcsType<any>;
|
|
33
|
+
fromFields(fields: Record<string, any>): T;
|
|
34
|
+
fromFieldsWithTypes(item: FieldsWithTypes): T;
|
|
35
|
+
fromBcs(data: Uint8Array): T;
|
|
36
|
+
fromJSONField: (field: any) => T;
|
|
37
|
+
fromJSON: (json: Record<string, any>) => T;
|
|
38
|
+
fromSuiParsedData: (content: SuiParsedData) => T;
|
|
39
|
+
fromSuiObjectData: (data: SuiObjectData) => T;
|
|
40
|
+
fetch: (client: SuiClient, id: string) => Promise<T>;
|
|
41
|
+
new: (fields: Fields) => T;
|
|
42
|
+
kind: "StructClassReified";
|
|
43
|
+
}
|
|
44
|
+
export interface VectorClassReified<T extends VectorClass, Elements> {
|
|
45
|
+
typeName: T["$typeName"];
|
|
46
|
+
fullTypeName: ToTypeStr<T>;
|
|
47
|
+
typeArgs: T["$typeArgs"];
|
|
48
|
+
isPhantom: readonly [false];
|
|
49
|
+
reifiedTypeArgs: Array<Reified<TypeArgument, any>>;
|
|
50
|
+
bcs: BcsType<any>;
|
|
51
|
+
fromFields(fields: any[]): T;
|
|
52
|
+
fromFieldsWithTypes(item: FieldsWithTypes): T;
|
|
53
|
+
fromBcs(data: Uint8Array): T;
|
|
54
|
+
fromJSONField: (field: any) => T;
|
|
55
|
+
fromJSON: (json: Record<string, any>) => T;
|
|
56
|
+
new: (elements: Elements) => T;
|
|
57
|
+
kind: "VectorClassReified";
|
|
58
|
+
}
|
|
59
|
+
export type Reified<T extends TypeArgument, Fields> = T extends Primitive ? Primitive : T extends StructClass ? StructClassReified<T, Fields> : T extends VectorClass ? VectorClassReified<T, Fields> : never;
|
|
60
|
+
export type ToTypeArgument<T extends Primitive | StructClassReified<StructClass, any> | VectorClassReified<VectorClass, any>> = T extends Primitive ? T : T extends StructClassReified<infer U, any> ? U : T extends VectorClassReified<infer U, any> ? U : never;
|
|
61
|
+
export type ToPhantomTypeArgument<T extends PhantomReified<PhantomTypeArgument>> = T extends PhantomReified<infer U> ? U : never;
|
|
62
|
+
export type PhantomTypeArgument = string;
|
|
63
|
+
export interface PhantomReified<P> {
|
|
64
|
+
phantomType: P;
|
|
65
|
+
kind: "PhantomReified";
|
|
66
|
+
}
|
|
67
|
+
export declare function phantom<T extends Reified<TypeArgument, any>>(reified: T): PhantomReified<ToTypeStr<ToTypeArgument<T>>>;
|
|
68
|
+
export declare function phantom<P extends PhantomTypeArgument>(phantomType: P): PhantomReified<P>;
|
|
69
|
+
export type ToTypeStr<T extends TypeArgument> = T extends Primitive ? T : T extends StructClass ? T["$fullTypeName"] : T extends VectorClass ? T["$fullTypeName"] : never;
|
|
70
|
+
export type PhantomToTypeStr<T extends PhantomTypeArgument> = T extends PhantomTypeArgument ? T : never;
|
|
71
|
+
export type ToJSON<T extends TypeArgument> = T extends "bool" ? boolean : T extends "u8" ? number : T extends "u16" ? number : T extends "u32" ? number : T extends "u64" ? string : T extends "u128" ? string : T extends "u256" ? string : T extends "address" ? string : T extends {
|
|
72
|
+
$typeName: "0x1::string::String";
|
|
73
|
+
} ? string : T extends {
|
|
74
|
+
$typeName: "0x1::ascii::String";
|
|
75
|
+
} ? string : T extends {
|
|
76
|
+
$typeName: "0x2::object::UID";
|
|
77
|
+
} ? string : T extends {
|
|
78
|
+
$typeName: "0x2::object::ID";
|
|
79
|
+
} ? string : T extends {
|
|
80
|
+
$typeName: "0x2::url::Url";
|
|
81
|
+
} ? string : T extends {
|
|
82
|
+
$typeName: "0x1::option::Option";
|
|
83
|
+
__inner: infer U extends TypeArgument;
|
|
84
|
+
} ? ToJSON<U> | null : T extends VectorClass ? ReturnType<T["toJSONField"]> : T extends StructClass ? ReturnType<T["toJSONField"]> : never;
|
|
85
|
+
export type ToField<T extends TypeArgument> = T extends "bool" ? boolean : T extends "u8" ? number : T extends "u16" ? number : T extends "u32" ? number : T extends "u64" ? bigint : T extends "u128" ? bigint : T extends "u256" ? bigint : T extends "address" ? string : T extends {
|
|
86
|
+
$typeName: "0x1::string::String";
|
|
87
|
+
} ? string : T extends {
|
|
88
|
+
$typeName: "0x1::ascii::String";
|
|
89
|
+
} ? string : T extends {
|
|
90
|
+
$typeName: "0x2::object::UID";
|
|
91
|
+
} ? string : T extends {
|
|
92
|
+
$typeName: "0x2::object::ID";
|
|
93
|
+
} ? string : T extends {
|
|
94
|
+
$typeName: "0x2::url::Url";
|
|
95
|
+
} ? string : T extends {
|
|
96
|
+
$typeName: "0x1::option::Option";
|
|
97
|
+
__inner: infer U extends TypeArgument;
|
|
98
|
+
} ? ToField<U> | null : T extends VectorClass ? T["elements"] : T extends StructClass ? T : never;
|
|
99
|
+
export declare function toBcs<T extends Reified<TypeArgument, any>>(arg: T): BcsType<any>;
|
|
100
|
+
export declare function extractType<T extends Reified<TypeArgument, any>>(reified: T): ToTypeStr<ToTypeArgument<T>>;
|
|
101
|
+
export declare function extractType<T extends PhantomReified<PhantomTypeArgument>>(reified: T): PhantomToTypeStr<ToPhantomTypeArgument<T>>;
|
|
102
|
+
export declare function extractType<T extends Reified<TypeArgument, any> | PhantomReified<PhantomTypeArgument>>(reified: T): string;
|
|
103
|
+
export declare function decodeFromFields(reified: Reified<TypeArgument, any>, field: any): any;
|
|
104
|
+
export declare function decodeFromFieldsWithTypes(reified: Reified<TypeArgument, any>, item: any): any;
|
|
105
|
+
export declare function assertReifiedTypeArgsMatch(fullType: string, typeArgs: string[], reifiedTypeArgs: Array<Reified<TypeArgument, any> | PhantomReified<string>>): void;
|
|
106
|
+
export declare function assertFieldsWithTypesArgsMatch(item: FieldsWithTypes, reifiedTypeArgs: Array<Reified<TypeArgument, any> | PhantomReified<string>>): void;
|
|
107
|
+
export declare function fieldToJSON<T extends TypeArgument>(type: string, field: ToField<T>): ToJSON<T>;
|
|
108
|
+
export declare function decodeFromJSONField(typeArg: Reified<TypeArgument, any>, field: any): any;
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.vector = void 0;
|
|
4
|
+
exports.phantom = phantom;
|
|
5
|
+
exports.toBcs = toBcs;
|
|
6
|
+
exports.extractType = extractType;
|
|
7
|
+
exports.decodeFromFields = decodeFromFields;
|
|
8
|
+
exports.decodeFromFieldsWithTypes = decodeFromFieldsWithTypes;
|
|
9
|
+
exports.assertReifiedTypeArgsMatch = assertReifiedTypeArgsMatch;
|
|
10
|
+
exports.assertFieldsWithTypesArgsMatch = assertFieldsWithTypesArgsMatch;
|
|
11
|
+
exports.fieldToJSON = fieldToJSON;
|
|
12
|
+
exports.decodeFromJSONField = decodeFromJSONField;
|
|
13
|
+
const bcs_1 = require("@mysten/sui/bcs");
|
|
14
|
+
const utils_1 = require("@mysten/sui/utils");
|
|
15
|
+
const util_1 = require("./util");
|
|
16
|
+
// for backwards compatibility
|
|
17
|
+
var vector_1 = require("./vector");
|
|
18
|
+
Object.defineProperty(exports, "vector", { enumerable: true, get: function () { return vector_1.vector; } });
|
|
19
|
+
function phantom(type) {
|
|
20
|
+
if (typeof type === "string") {
|
|
21
|
+
return {
|
|
22
|
+
phantomType: type,
|
|
23
|
+
kind: "PhantomReified",
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return {
|
|
28
|
+
phantomType: type.fullTypeName,
|
|
29
|
+
kind: "PhantomReified",
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const Address = bcs_1.bcs.bytes(32).transform({
|
|
34
|
+
input: (val) => (0, utils_1.fromHEX)(val),
|
|
35
|
+
output: (val) => (0, utils_1.toHEX)(val),
|
|
36
|
+
});
|
|
37
|
+
function toBcs(arg) {
|
|
38
|
+
switch (arg) {
|
|
39
|
+
case "bool":
|
|
40
|
+
return bcs_1.bcs.bool();
|
|
41
|
+
case "u8":
|
|
42
|
+
return bcs_1.bcs.u8();
|
|
43
|
+
case "u16":
|
|
44
|
+
return bcs_1.bcs.u16();
|
|
45
|
+
case "u32":
|
|
46
|
+
return bcs_1.bcs.u32();
|
|
47
|
+
case "u64":
|
|
48
|
+
return bcs_1.bcs.u64();
|
|
49
|
+
case "u128":
|
|
50
|
+
return bcs_1.bcs.u128();
|
|
51
|
+
case "u256":
|
|
52
|
+
return bcs_1.bcs.u256();
|
|
53
|
+
case "address":
|
|
54
|
+
return Address;
|
|
55
|
+
default:
|
|
56
|
+
return arg.bcs;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function extractType(reified) {
|
|
60
|
+
switch (reified) {
|
|
61
|
+
case "u8":
|
|
62
|
+
case "u16":
|
|
63
|
+
case "u32":
|
|
64
|
+
case "u64":
|
|
65
|
+
case "u128":
|
|
66
|
+
case "u256":
|
|
67
|
+
case "bool":
|
|
68
|
+
case "address":
|
|
69
|
+
return reified;
|
|
70
|
+
}
|
|
71
|
+
switch (reified.kind) {
|
|
72
|
+
case "PhantomReified":
|
|
73
|
+
return reified.phantomType;
|
|
74
|
+
case "StructClassReified":
|
|
75
|
+
return reified.fullTypeName;
|
|
76
|
+
case "VectorClassReified":
|
|
77
|
+
return reified.fullTypeName;
|
|
78
|
+
}
|
|
79
|
+
throw new Error("unreachable");
|
|
80
|
+
}
|
|
81
|
+
function decodeFromFields(reified, field) {
|
|
82
|
+
switch (reified) {
|
|
83
|
+
case "bool":
|
|
84
|
+
case "u8":
|
|
85
|
+
case "u16":
|
|
86
|
+
case "u32":
|
|
87
|
+
return field;
|
|
88
|
+
case "u64":
|
|
89
|
+
case "u128":
|
|
90
|
+
case "u256":
|
|
91
|
+
return BigInt(field);
|
|
92
|
+
case "address":
|
|
93
|
+
return `0x${field}`;
|
|
94
|
+
}
|
|
95
|
+
if (reified.kind === "VectorClassReified") {
|
|
96
|
+
return reified.fromFields(field).elements;
|
|
97
|
+
}
|
|
98
|
+
switch (reified.typeName) {
|
|
99
|
+
case "0x1::string::String":
|
|
100
|
+
case "0x1::ascii::String":
|
|
101
|
+
return new TextDecoder().decode(Uint8Array.from(field.bytes)).toString();
|
|
102
|
+
case "0x2::url::Url":
|
|
103
|
+
return new TextDecoder()
|
|
104
|
+
.decode(Uint8Array.from(field.url.bytes))
|
|
105
|
+
.toString();
|
|
106
|
+
case "0x2::object::ID":
|
|
107
|
+
return `0x${field.bytes}`;
|
|
108
|
+
case "0x2::object::UID":
|
|
109
|
+
return `0x${field.id.bytes}`;
|
|
110
|
+
case "0x1::option::Option": {
|
|
111
|
+
if (field.vec.length === 0) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
return reified.fromFields(field).vec[0];
|
|
115
|
+
}
|
|
116
|
+
default:
|
|
117
|
+
return reified.fromFields(field);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function decodeFromFieldsWithTypes(reified, item) {
|
|
121
|
+
switch (reified) {
|
|
122
|
+
case "bool":
|
|
123
|
+
case "u8":
|
|
124
|
+
case "u16":
|
|
125
|
+
case "u32":
|
|
126
|
+
return item;
|
|
127
|
+
case "u64":
|
|
128
|
+
case "u128":
|
|
129
|
+
case "u256":
|
|
130
|
+
return BigInt(item);
|
|
131
|
+
case "address":
|
|
132
|
+
return item;
|
|
133
|
+
}
|
|
134
|
+
if (reified.kind === "VectorClassReified") {
|
|
135
|
+
return reified.fromFieldsWithTypes(item).elements;
|
|
136
|
+
}
|
|
137
|
+
switch (reified.typeName) {
|
|
138
|
+
case "0x1::string::String":
|
|
139
|
+
case "0x1::ascii::String":
|
|
140
|
+
case "0x2::url::Url":
|
|
141
|
+
case "0x2::object::ID":
|
|
142
|
+
return item;
|
|
143
|
+
case "0x2::object::UID":
|
|
144
|
+
return item.id;
|
|
145
|
+
case "0x2::balance::Balance":
|
|
146
|
+
return reified.fromFields({ value: BigInt(item) });
|
|
147
|
+
case "0x1::option::Option": {
|
|
148
|
+
if (item === null) {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
return decodeFromFieldsWithTypes(reified.reifiedTypeArgs[0], item);
|
|
152
|
+
}
|
|
153
|
+
default:
|
|
154
|
+
return reified.fromFieldsWithTypes(item);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function assertReifiedTypeArgsMatch(fullType, typeArgs, reifiedTypeArgs) {
|
|
158
|
+
if (reifiedTypeArgs.length !== typeArgs.length) {
|
|
159
|
+
throw new Error(`provided item has mismatching number of type argments ${fullType} (expected ${reifiedTypeArgs.length}, got ${typeArgs.length}))`);
|
|
160
|
+
}
|
|
161
|
+
for (let i = 0; i < typeArgs.length; i++) {
|
|
162
|
+
if ((0, util_1.compressSuiType)(typeArgs[i]) !==
|
|
163
|
+
(0, util_1.compressSuiType)(extractType(reifiedTypeArgs[i]))) {
|
|
164
|
+
throw new Error(`provided item has mismatching type argments ${fullType} (expected ${extractType(reifiedTypeArgs[i])}, got ${typeArgs[i]}))`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function assertFieldsWithTypesArgsMatch(item, reifiedTypeArgs) {
|
|
169
|
+
const { typeArgs: itemTypeArgs } = (0, util_1.parseTypeName)(item.type);
|
|
170
|
+
assertReifiedTypeArgsMatch(item.type, itemTypeArgs, reifiedTypeArgs);
|
|
171
|
+
}
|
|
172
|
+
function fieldToJSON(type, field) {
|
|
173
|
+
const { typeName, typeArgs } = (0, util_1.parseTypeName)(type);
|
|
174
|
+
switch (typeName) {
|
|
175
|
+
case "bool":
|
|
176
|
+
return field;
|
|
177
|
+
case "u8":
|
|
178
|
+
case "u16":
|
|
179
|
+
case "u32":
|
|
180
|
+
return field;
|
|
181
|
+
case "u64":
|
|
182
|
+
case "u128":
|
|
183
|
+
case "u256":
|
|
184
|
+
return field.toString();
|
|
185
|
+
case "address":
|
|
186
|
+
case "signer":
|
|
187
|
+
return field;
|
|
188
|
+
case "vector":
|
|
189
|
+
return field.map((item) => fieldToJSON(typeArgs[0], item));
|
|
190
|
+
// handle special types
|
|
191
|
+
case "0x1::string::String":
|
|
192
|
+
case "0x1::ascii::String":
|
|
193
|
+
case "0x2::url::Url":
|
|
194
|
+
case "0x2::object::ID":
|
|
195
|
+
case "0x2::object::UID":
|
|
196
|
+
return field;
|
|
197
|
+
case "0x1::option::Option": {
|
|
198
|
+
if (field === null) {
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
return fieldToJSON(typeArgs[0], field);
|
|
202
|
+
}
|
|
203
|
+
default:
|
|
204
|
+
return field.toJSONField();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
function decodeFromJSONField(typeArg, field) {
|
|
208
|
+
switch (typeArg) {
|
|
209
|
+
case "bool":
|
|
210
|
+
case "u8":
|
|
211
|
+
case "u16":
|
|
212
|
+
case "u32":
|
|
213
|
+
return field;
|
|
214
|
+
case "u64":
|
|
215
|
+
case "u128":
|
|
216
|
+
case "u256":
|
|
217
|
+
return BigInt(field);
|
|
218
|
+
case "address":
|
|
219
|
+
return field;
|
|
220
|
+
}
|
|
221
|
+
if (typeArg.kind === "VectorClassReified") {
|
|
222
|
+
return typeArg.fromJSONField(field).elements;
|
|
223
|
+
}
|
|
224
|
+
switch (typeArg.typeName) {
|
|
225
|
+
case "0x1::string::String":
|
|
226
|
+
case "0x1::ascii::String":
|
|
227
|
+
case "0x2::url::Url":
|
|
228
|
+
case "0x2::object::ID":
|
|
229
|
+
case "0x2::object::UID":
|
|
230
|
+
return field;
|
|
231
|
+
case "0x1::option::Option": {
|
|
232
|
+
if (field === null) {
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
return decodeFromJSONField(typeArg.reifiedTypeArgs[0], field);
|
|
236
|
+
}
|
|
237
|
+
default:
|
|
238
|
+
return typeArg.fromJSONField(field);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Transaction, TransactionArgument, TransactionObjectInput } from "@mysten/sui/transactions";
|
|
2
|
+
export interface FieldsWithTypes {
|
|
3
|
+
fields: Record<string, any>;
|
|
4
|
+
type: string;
|
|
5
|
+
}
|
|
6
|
+
export type ObjectId = string;
|
|
7
|
+
export type PureArg = bigint | string | number | boolean | null | TransactionArgument | Array<PureArg>;
|
|
8
|
+
export type GenericArg = TransactionObjectInput | PureArg | Array<TransactionObjectInput> | Array<PureArg> | Array<GenericArg>;
|
|
9
|
+
export declare function splitGenericParameters(str: string, genericSeparators?: [string, string]): string[];
|
|
10
|
+
export declare function parseTypeName(name: string): {
|
|
11
|
+
typeName: string;
|
|
12
|
+
typeArgs: string[];
|
|
13
|
+
};
|
|
14
|
+
export declare function isTransactionArgument(arg: GenericArg): arg is TransactionArgument;
|
|
15
|
+
export declare function obj(tx: Transaction, arg: TransactionObjectInput): {
|
|
16
|
+
GasCoin: true;
|
|
17
|
+
} | {
|
|
18
|
+
Input: number;
|
|
19
|
+
type?: "pure" | "object";
|
|
20
|
+
} | {
|
|
21
|
+
Result: number;
|
|
22
|
+
} | {
|
|
23
|
+
NestedResult: [number, number];
|
|
24
|
+
} | ((tx: Transaction) => Exclude<import("valibot").InferInput<typeof import("@mysten/sui/transactions").Argument>, {
|
|
25
|
+
Input: unknown;
|
|
26
|
+
type?: "pure";
|
|
27
|
+
}>);
|
|
28
|
+
export declare function pure(tx: Transaction, arg: PureArg, type: string): TransactionArgument;
|
|
29
|
+
export declare function option(tx: Transaction, type: string, arg: GenericArg | null): TransactionArgument;
|
|
30
|
+
export declare function generic(tx: Transaction, type: string, arg: GenericArg): TransactionArgument;
|
|
31
|
+
export declare function vector(tx: Transaction, itemType: string, items: Array<GenericArg> | TransactionArgument): TransactionArgument;
|
|
32
|
+
export declare function typeArgIsPure(type: string): boolean;
|
|
33
|
+
export declare function compressSuiAddress(addr: string): string;
|
|
34
|
+
export declare function compressSuiType(type: string): string;
|
|
35
|
+
export declare function composeSuiType(typeName: string, ...typeArgs: string[]): string;
|