@interest-protocol/blast-admin-sdk 0.1.0 → 0.2.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/dist/aborts.d.ts +10 -0
- package/dist/aborts.d.ts.map +1 -0
- package/dist/aborts.js +40 -0
- package/dist/aborts.js.map +1 -0
- package/dist/events.d.ts +352 -27
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +307 -8
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/reducer.d.ts +40 -4
- package/dist/reducer.d.ts.map +1 -1
- package/dist/reducer.js +105 -11
- package/dist/reducer.js.map +1 -1
- package/dist/state.d.ts +208 -16
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +207 -19
- package/dist/state.js.map +1 -1
- package/dist/transactions.d.ts +45 -4
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js +97 -3
- package/dist/transactions.js.map +1 -1
- package/package.json +6 -2
- package/src/aborts.ts +43 -0
- package/src/events.ts +558 -11
- package/src/index.ts +1 -0
- package/src/reducer.ts +157 -15
- package/src/state.ts +347 -27
- package/src/transactions.ts +149 -4
package/dist/state.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { DelayedAction } from "@interest-protocol/blast-core/bcs";
|
|
1
2
|
import type { SharedObjectIdentity } from "@interest-protocol/blast-core/sui";
|
|
2
3
|
import type { ClientWithCoreApi } from "@mysten/sui/client";
|
|
4
|
+
import type { AdminDeployment } from "./transactions.ts";
|
|
3
5
|
/** BCS layout of `blast_admin::blast_acl::ACL`. */
|
|
4
6
|
export declare const aclBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
5
7
|
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
@@ -8,29 +10,39 @@ export declare const aclBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
|
8
10
|
}, string>;
|
|
9
11
|
}, string>;
|
|
10
12
|
super_admin_cap_id: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
11
|
-
admins: import("@mysten/sui/bcs").
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
admins: import("@mysten/sui/bcs").BcsStruct<{
|
|
14
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
15
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
16
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
17
|
+
}, string>;
|
|
18
|
+
}, string>;
|
|
19
|
+
size: import("@mysten/sui/bcs").BcsType<bigint, bigint, "u64">;
|
|
20
|
+
}, string>;
|
|
21
|
+
super_admin_transfer: import("@mysten/sui/bcs").BcsStruct<{
|
|
22
|
+
parent: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
23
|
+
key: import("@mysten/sui/bcs").BcsType<null, null, string>;
|
|
24
|
+
delay_ms: import("@mysten/sui/bcs").BcsType<bigint, bigint, "u64">;
|
|
25
|
+
pending: import("@mysten/sui/bcs").BcsType<{
|
|
26
|
+
value: import("@interest-protocol/blast-core/bcs").DelayedChange<string>;
|
|
27
|
+
delay_ms: bigint;
|
|
28
|
+
ready_at_ms: bigint;
|
|
29
|
+
} | null, {
|
|
30
|
+
value: import("@interest-protocol/blast-core/bcs").DelayedChange<string>;
|
|
31
|
+
delay_ms: bigint;
|
|
32
|
+
ready_at_ms: bigint;
|
|
33
|
+
} | null | undefined, `Option<${string}>`>;
|
|
21
34
|
}, string>;
|
|
22
|
-
pending_super_admin: import("@mysten/sui/bcs").BcsType<import("@interest-protocol/blast-core/timelock").Timelocked<string | null | undefined>, import("@interest-protocol/blast-core/timelock").Timelocked<string | null | undefined>, string>;
|
|
23
35
|
}, string>;
|
|
24
|
-
/** A nominated super admin, who may accept from `
|
|
36
|
+
/** A nominated super admin, who may accept from `readyAtMs`. */
|
|
25
37
|
export type PendingSuperAdmin = {
|
|
26
38
|
recipient: string;
|
|
27
|
-
|
|
39
|
+
readyAtMs: bigint;
|
|
28
40
|
};
|
|
29
41
|
export type AclState = SharedObjectIdentity & {
|
|
30
42
|
/** The one live `SuperAdminCap`. */
|
|
31
43
|
superAdminCapId: string;
|
|
32
|
-
|
|
33
|
-
|
|
44
|
+
adminsTableId: string;
|
|
45
|
+
adminCount: bigint;
|
|
34
46
|
pendingSuperAdmin: PendingSuperAdmin | null;
|
|
35
47
|
};
|
|
36
48
|
export type AclObject = SharedObjectIdentity & {
|
|
@@ -38,5 +50,185 @@ export type AclObject = SharedObjectIdentity & {
|
|
|
38
50
|
content: Uint8Array;
|
|
39
51
|
};
|
|
40
52
|
export declare function decodeAclObject(object: AclObject, adminPackageId: string): AclState;
|
|
41
|
-
export declare function getAcl(client: ClientWithCoreApi, objectId: string, adminPackageId: string): Promise<AclState
|
|
53
|
+
export declare function getAcl(client: ClientWithCoreApi, objectId: string, adminPackageId: string): Promise<AclState & {
|
|
54
|
+
admins: Readonly<Record<string, readonly string[]>>;
|
|
55
|
+
}>;
|
|
56
|
+
/** Reads one Table entry. Only an absent field means the cap has no roles. */
|
|
57
|
+
export declare function getAclAdminRoles(client: ClientWithCoreApi, adminsTableId: string, adminCapId: string, options?: {
|
|
58
|
+
signal?: AbortSignal;
|
|
59
|
+
}): Promise<readonly string[] | null>;
|
|
60
|
+
/** `0x2::package::Publisher`; `package` and `module_name` are ASCII strings. */
|
|
61
|
+
export declare const publisherBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
62
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
63
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
64
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
65
|
+
}, string>;
|
|
66
|
+
}, string>;
|
|
67
|
+
package: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
68
|
+
module_name: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
69
|
+
}, string>;
|
|
70
|
+
/** `0x2::package::UpgradeCap`. */
|
|
71
|
+
export declare const upgradeCapBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
72
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
73
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
74
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
75
|
+
}, string>;
|
|
76
|
+
}, string>;
|
|
77
|
+
package: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
78
|
+
version: import("@mysten/sui/bcs").BcsType<bigint, bigint, "u64">;
|
|
79
|
+
policy: import("@mysten/sui/bcs").BcsType<number, number, "u8">;
|
|
80
|
+
}, string>;
|
|
81
|
+
/** `blast_admin::package_admin::UpgradeAction`. */
|
|
82
|
+
export declare const upgradeActionBcs: import("@mysten/sui/bcs").BcsEnum<{
|
|
83
|
+
Upgrade: import("@mysten/sui/bcs").BcsType<number[], Iterable<number> & {
|
|
84
|
+
length: number;
|
|
85
|
+
}, string>;
|
|
86
|
+
MakeImmutable: null;
|
|
87
|
+
}, "UpgradeAction">;
|
|
88
|
+
export type UpgradeAction = ReturnType<typeof upgradeActionBcs.parse>;
|
|
89
|
+
/**
|
|
90
|
+
* `blast_admin::package_version::PackageVersion<OTW>`: one package's
|
|
91
|
+
* version and pause bits. The `OTW` is phantom: only the object type names it.
|
|
92
|
+
*/
|
|
93
|
+
export declare const packageVersionBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
94
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
95
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
96
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
97
|
+
}, string>;
|
|
98
|
+
}, string>;
|
|
99
|
+
valid_pause_bits: import("@mysten/sui/bcs").BcsType<number, number, "u8">;
|
|
100
|
+
paused: import("@mysten/sui/bcs").BcsType<number, number, "u8">;
|
|
101
|
+
package_witness: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
102
|
+
version: import("@mysten/sui/bcs").BcsType<bigint, bigint, "u64">;
|
|
103
|
+
}, string>;
|
|
104
|
+
/**
|
|
105
|
+
* `blast_admin::package_admin::PackageAdmin<OTW>`: the sealed Publisher and
|
|
106
|
+
* UpgradeCap and the delayed upgrade slot keyed by `UpgradeKey<OTW>`.
|
|
107
|
+
*/
|
|
108
|
+
export declare const packageAdminBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
109
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
110
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
111
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
112
|
+
}, string>;
|
|
113
|
+
}, string>;
|
|
114
|
+
publisher: import("@mysten/sui/bcs").BcsStruct<{
|
|
115
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
116
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
117
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
118
|
+
}, string>;
|
|
119
|
+
}, string>;
|
|
120
|
+
package: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
121
|
+
module_name: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
122
|
+
}, string>;
|
|
123
|
+
upgrade_cap: import("@mysten/sui/bcs").BcsType<{
|
|
124
|
+
id: {
|
|
125
|
+
id: {
|
|
126
|
+
bytes: string;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
package: string;
|
|
130
|
+
version: bigint;
|
|
131
|
+
policy: number;
|
|
132
|
+
} | null, {
|
|
133
|
+
id: {
|
|
134
|
+
id: {
|
|
135
|
+
bytes: string | Uint8Array<ArrayBufferLike>;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
package: string;
|
|
139
|
+
version: bigint;
|
|
140
|
+
policy: number;
|
|
141
|
+
} | null | undefined, `Option<${string}>`>;
|
|
142
|
+
upgrade: import("@mysten/sui/bcs").BcsStruct<{
|
|
143
|
+
parent: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
144
|
+
key: import("@mysten/sui/bcs").BcsType<null, null, string>;
|
|
145
|
+
delay_ms: import("@mysten/sui/bcs").BcsType<bigint, bigint, "u64">;
|
|
146
|
+
pending: import("@mysten/sui/bcs").BcsType<{
|
|
147
|
+
value: import("@interest-protocol/blast-core/bcs").DelayedChange<import("@mysten/bcs").EnumOutputShapeWithKeys<{
|
|
148
|
+
Upgrade: number[];
|
|
149
|
+
MakeImmutable: true;
|
|
150
|
+
}, "MakeImmutable" | "Upgrade">>;
|
|
151
|
+
delay_ms: bigint;
|
|
152
|
+
ready_at_ms: bigint;
|
|
153
|
+
} | null, {
|
|
154
|
+
value: import("@interest-protocol/blast-core/bcs").DelayedChange<import("@mysten/bcs").EnumInputShape<{
|
|
155
|
+
Upgrade: Iterable<number> & {
|
|
156
|
+
length: number;
|
|
157
|
+
};
|
|
158
|
+
MakeImmutable: boolean | object | null;
|
|
159
|
+
}>>;
|
|
160
|
+
delay_ms: bigint;
|
|
161
|
+
ready_at_ms: bigint;
|
|
162
|
+
} | null | undefined, `Option<${string}>`>;
|
|
163
|
+
}, string>;
|
|
164
|
+
}, string>;
|
|
165
|
+
/** `blast_admin::package_version::Publication<OTW>`: the deployer's owned proof before `wrap`. */
|
|
166
|
+
export declare const publicationBcs: import("@mysten/sui/bcs").BcsStruct<{
|
|
167
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
168
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
169
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
170
|
+
}, string>;
|
|
171
|
+
}, string>;
|
|
172
|
+
publisher: import("@mysten/sui/bcs").BcsStruct<{
|
|
173
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
174
|
+
id: import("@mysten/sui/bcs").BcsStruct<{
|
|
175
|
+
bytes: import("@mysten/sui/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
176
|
+
}, string>;
|
|
177
|
+
}, string>;
|
|
178
|
+
package: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
179
|
+
module_name: import("@mysten/sui/bcs").BcsType<string, string, "vector<u8>">;
|
|
180
|
+
}, string>;
|
|
181
|
+
valid_pause_bits: import("@mysten/sui/bcs").BcsType<number, number, "u8">;
|
|
182
|
+
package_witness: import("@mysten/sui/bcs").BcsType<string, string, string>;
|
|
183
|
+
}, string>;
|
|
184
|
+
/** The package an administration object belongs to, by its one-time witness type. */
|
|
185
|
+
export type PackageIdentity = {
|
|
186
|
+
admin: Pick<AdminDeployment, "packageId">;
|
|
187
|
+
/** The package's OTW type, original package ID form. */
|
|
188
|
+
otw: string;
|
|
189
|
+
};
|
|
190
|
+
export type PackageVersionState = SharedObjectIdentity & {
|
|
191
|
+
otw: string;
|
|
192
|
+
validPauseBits: number;
|
|
193
|
+
paused: number;
|
|
194
|
+
/** The package witness type, defining-ID form, pinned at publication. */
|
|
195
|
+
packageWitness: string;
|
|
196
|
+
version: bigint;
|
|
197
|
+
};
|
|
198
|
+
export type PackageAdminState = SharedObjectIdentity & {
|
|
199
|
+
otw: string;
|
|
200
|
+
publisherId: string;
|
|
201
|
+
/** Null once the package is immutable. */
|
|
202
|
+
upgradeCap: {
|
|
203
|
+
id: string;
|
|
204
|
+
package: string;
|
|
205
|
+
version: bigint;
|
|
206
|
+
policy: number;
|
|
207
|
+
} | null;
|
|
208
|
+
/** The applied delay of upgrade actions and delay changes. */
|
|
209
|
+
delayMs: bigint;
|
|
210
|
+
/** The proposed upgrade action or delay change, if any. */
|
|
211
|
+
pending: DelayedAction<null, UpgradeAction>["pending"];
|
|
212
|
+
};
|
|
213
|
+
/** Decodes a `PackageVersion<otw>`; any other package's version is rejected. */
|
|
214
|
+
export declare function decodePackageVersionObject(object: AclObject, identity: PackageIdentity): PackageVersionState;
|
|
215
|
+
/** Decodes a `PackageAdmin<otw>`; any other package's administration is rejected. */
|
|
216
|
+
export declare function decodePackageAdminObject(object: AclObject, identity: PackageIdentity): PackageAdminState;
|
|
217
|
+
export declare function aclAdminFieldName(adminCapId: string): {
|
|
218
|
+
type: string;
|
|
219
|
+
bcs: Uint8Array<ArrayBuffer>;
|
|
220
|
+
};
|
|
221
|
+
/** Decodes the targeted Table read separately from transport/provider accounting. */
|
|
222
|
+
export declare function decodeAclAdminRolesField(dynamicField: {
|
|
223
|
+
name: {
|
|
224
|
+
type: string;
|
|
225
|
+
bcs: Uint8Array;
|
|
226
|
+
};
|
|
227
|
+
value: {
|
|
228
|
+
type: string;
|
|
229
|
+
bcs: Uint8Array;
|
|
230
|
+
};
|
|
231
|
+
}, adminCapId: string): readonly string[];
|
|
232
|
+
export declare function getPackageVersion(client: ClientWithCoreApi, objectId: string, identity: PackageIdentity): Promise<PackageVersionState>;
|
|
233
|
+
export declare function getPackageAdmin(client: ClientWithCoreApi, objectId: string, identity: PackageIdentity): Promise<PackageAdminState>;
|
|
42
234
|
//# sourceMappingURL=state.d.ts.map
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/state.js
CHANGED
|
@@ -1,42 +1,39 @@
|
|
|
1
|
-
import { addressBcs, moveTypeNameBcs, suiObjectIdBcs, suiUidBcs, } from "@interest-protocol/blast-core/bcs";
|
|
1
|
+
import { addressBcs, delayedActionBcs, moveTypeNameBcs, suiObjectIdBcs, suiUidBcs, u64Bcs, unitKeyBcs, } from "@interest-protocol/blast-core/bcs";
|
|
2
2
|
import { normalizePositiveU64 } from "@interest-protocol/blast-core/integers";
|
|
3
|
-
import { timelockedBcs } from "@interest-protocol/blast-core/timelock";
|
|
4
3
|
import { bcs } from "@mysten/sui/bcs";
|
|
5
|
-
import {
|
|
4
|
+
import { ObjectError } from "@mysten/sui/client";
|
|
5
|
+
import { normalizeStructTag, normalizeSuiObjectId, parseStructTag, } from "@mysten/sui/utils";
|
|
6
6
|
/** BCS layout of `blast_admin::blast_acl::ACL`. */
|
|
7
7
|
export const aclBcs = bcs.struct("ACL", {
|
|
8
8
|
id: suiUidBcs,
|
|
9
9
|
super_admin_cap_id: suiObjectIdBcs,
|
|
10
|
-
admins: bcs.
|
|
11
|
-
|
|
12
|
-
value: bcs.vector(moveTypeNameBcs),
|
|
13
|
-
})),
|
|
14
|
-
pending_super_admin: timelockedBcs(bcs.option(addressBcs)),
|
|
10
|
+
admins: bcs.struct("Table", { id: suiUidBcs, size: u64Bcs }),
|
|
11
|
+
super_admin_transfer: delayedActionBcs(unitKeyBcs, addressBcs),
|
|
15
12
|
});
|
|
16
13
|
export function decodeAclObject(object, adminPackageId) {
|
|
17
14
|
const tag = parseStructTag(object.type);
|
|
18
15
|
if (tag.address !== normalizeSuiObjectId(adminPackageId) ||
|
|
19
16
|
tag.module !== "blast_acl" ||
|
|
20
|
-
tag.name !== "ACL"
|
|
17
|
+
tag.name !== "ACL" ||
|
|
18
|
+
tag.typeParams.length !== 0) {
|
|
21
19
|
throw new TypeError(`object ${object.objectId} is not the Blast ACL`);
|
|
22
20
|
}
|
|
23
21
|
const parsed = aclBcs.parse(object.content);
|
|
24
22
|
const objectId = normalizeSuiObjectId(object.objectId);
|
|
25
|
-
if (normalizeSuiObjectId(parsed.id.id.bytes) !== objectId
|
|
23
|
+
if (normalizeSuiObjectId(parsed.id.id.bytes) !== objectId ||
|
|
24
|
+
parsed.super_admin_transfer.parent !== objectId) {
|
|
26
25
|
throw new TypeError(`ACL ${object.objectId} has a mismatched UID`);
|
|
27
26
|
}
|
|
28
|
-
const
|
|
27
|
+
const proposal = parsed.super_admin_transfer.pending;
|
|
29
28
|
return {
|
|
30
29
|
objectId,
|
|
31
30
|
initialSharedVersion: normalizePositiveU64("initialSharedVersion", object.initialSharedVersion),
|
|
32
31
|
superAdminCapId: parsed.super_admin_cap_id,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
:
|
|
37
|
-
|
|
38
|
-
executeAfterMs: parsed.pending_super_admin.atMs,
|
|
39
|
-
},
|
|
32
|
+
adminsTableId: normalizeSuiObjectId(parsed.admins.id.id.bytes),
|
|
33
|
+
adminCount: parsed.admins.size,
|
|
34
|
+
pendingSuperAdmin: proposal?.value.kind === "Action"
|
|
35
|
+
? { recipient: proposal.value.action, readyAtMs: proposal.ready_at_ms }
|
|
36
|
+
: null,
|
|
40
37
|
};
|
|
41
38
|
}
|
|
42
39
|
export async function getAcl(client, objectId, adminPackageId) {
|
|
@@ -47,11 +44,202 @@ export async function getAcl(client, objectId, adminPackageId) {
|
|
|
47
44
|
if (object.owner.$kind !== "Shared") {
|
|
48
45
|
throw new TypeError(`ACL ${object.objectId} is not a shared object`);
|
|
49
46
|
}
|
|
50
|
-
|
|
47
|
+
const state = decodeAclObject({
|
|
51
48
|
objectId: object.objectId,
|
|
52
49
|
initialSharedVersion: object.owner.Shared.initialSharedVersion,
|
|
53
50
|
type: object.type,
|
|
54
51
|
content: object.content,
|
|
55
52
|
}, adminPackageId);
|
|
53
|
+
const admins = {};
|
|
54
|
+
let cursor = null;
|
|
55
|
+
const seen = new Set();
|
|
56
|
+
for (let page = 0; page < 100; page++) {
|
|
57
|
+
const response = await client.core.listDynamicFields({
|
|
58
|
+
parentId: state.adminsTableId,
|
|
59
|
+
cursor,
|
|
60
|
+
limit: 50,
|
|
61
|
+
});
|
|
62
|
+
await appendAclAdmins(client, state.adminsTableId, response.dynamicFields, admins);
|
|
63
|
+
if (!response.hasNextPage) {
|
|
64
|
+
if (BigInt(Object.keys(admins).length) !== state.adminCount)
|
|
65
|
+
throw new TypeError("ACL changed during enumeration; retry the read");
|
|
66
|
+
return { ...state, admins };
|
|
67
|
+
}
|
|
68
|
+
if (!response.cursor || seen.has(response.cursor))
|
|
69
|
+
throw new TypeError("ACL pagination did not advance");
|
|
70
|
+
seen.add(response.cursor);
|
|
71
|
+
cursor = response.cursor;
|
|
72
|
+
}
|
|
73
|
+
throw new RangeError("ACL enumeration exceeds 100 pages; use getAclAdminRoles for targeted reads");
|
|
74
|
+
}
|
|
75
|
+
async function appendAclAdmins(client, adminsTableId, fields, admins) {
|
|
76
|
+
for (const field of fields) {
|
|
77
|
+
if (field.$kind !== "DynamicField" ||
|
|
78
|
+
normalizeStructTag(field.name.type) !==
|
|
79
|
+
normalizeStructTag("0x2::object::ID"))
|
|
80
|
+
throw new TypeError("ACL contains an unexpected dynamic field");
|
|
81
|
+
const id = suiObjectIdBcs.parse(field.name.bcs);
|
|
82
|
+
if (id in admins)
|
|
83
|
+
throw new TypeError("duplicate ACL administrator");
|
|
84
|
+
const roles = await getAclAdminRoles(client, adminsTableId, id);
|
|
85
|
+
if (roles === null)
|
|
86
|
+
throw new TypeError("ACL changed during enumeration; retry the read");
|
|
87
|
+
admins[id] = roles;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/** Reads one Table entry. Only an absent field means the cap has no roles. */
|
|
91
|
+
export async function getAclAdminRoles(client, adminsTableId, adminCapId, options = {}) {
|
|
92
|
+
try {
|
|
93
|
+
const { dynamicField } = await client.core.getDynamicField({
|
|
94
|
+
...options,
|
|
95
|
+
parentId: normalizeSuiObjectId(adminsTableId),
|
|
96
|
+
name: aclAdminFieldName(adminCapId),
|
|
97
|
+
});
|
|
98
|
+
return decodeAclAdminRolesField(dynamicField, adminCapId);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
if (error instanceof ObjectError && error.reason === "notFound")
|
|
102
|
+
return null;
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const asciiBytesBcs = bcs.vector(bcs.u8()).transform({
|
|
107
|
+
input: (value) => Array.from(new TextEncoder().encode(value)),
|
|
108
|
+
output: (bytes) => new TextDecoder().decode(Uint8Array.from(bytes)),
|
|
109
|
+
});
|
|
110
|
+
/** `0x2::package::Publisher`; `package` and `module_name` are ASCII strings. */
|
|
111
|
+
export const publisherBcs = bcs.struct("Publisher", {
|
|
112
|
+
id: suiUidBcs,
|
|
113
|
+
package: asciiBytesBcs,
|
|
114
|
+
module_name: asciiBytesBcs,
|
|
115
|
+
});
|
|
116
|
+
/** `0x2::package::UpgradeCap`. */
|
|
117
|
+
export const upgradeCapBcs = bcs.struct("UpgradeCap", {
|
|
118
|
+
id: suiUidBcs,
|
|
119
|
+
package: suiObjectIdBcs,
|
|
120
|
+
version: u64Bcs,
|
|
121
|
+
policy: bcs.u8(),
|
|
122
|
+
});
|
|
123
|
+
/** `blast_admin::package_admin::UpgradeAction`. */
|
|
124
|
+
export const upgradeActionBcs = bcs.enum("UpgradeAction", {
|
|
125
|
+
Upgrade: bcs.vector(bcs.u8()),
|
|
126
|
+
MakeImmutable: null,
|
|
127
|
+
});
|
|
128
|
+
/**
|
|
129
|
+
* `blast_admin::package_version::PackageVersion<OTW>`: one package's
|
|
130
|
+
* version and pause bits. The `OTW` is phantom: only the object type names it.
|
|
131
|
+
*/
|
|
132
|
+
export const packageVersionBcs = bcs.struct("PackageVersion", {
|
|
133
|
+
id: suiUidBcs,
|
|
134
|
+
valid_pause_bits: bcs.u8(),
|
|
135
|
+
paused: bcs.u8(),
|
|
136
|
+
package_witness: moveTypeNameBcs,
|
|
137
|
+
version: u64Bcs,
|
|
138
|
+
});
|
|
139
|
+
/**
|
|
140
|
+
* `blast_admin::package_admin::PackageAdmin<OTW>`: the sealed Publisher and
|
|
141
|
+
* UpgradeCap and the delayed upgrade slot keyed by `UpgradeKey<OTW>`.
|
|
142
|
+
*/
|
|
143
|
+
export const packageAdminBcs = bcs.struct("PackageAdmin", {
|
|
144
|
+
id: suiUidBcs,
|
|
145
|
+
publisher: publisherBcs,
|
|
146
|
+
upgrade_cap: bcs.option(upgradeCapBcs),
|
|
147
|
+
upgrade: delayedActionBcs(unitKeyBcs, upgradeActionBcs),
|
|
148
|
+
});
|
|
149
|
+
/** `blast_admin::package_version::Publication<OTW>`: the deployer's owned proof before `wrap`. */
|
|
150
|
+
export const publicationBcs = bcs.struct("Publication", {
|
|
151
|
+
id: suiUidBcs,
|
|
152
|
+
publisher: publisherBcs,
|
|
153
|
+
valid_pause_bits: bcs.u8(),
|
|
154
|
+
package_witness: moveTypeNameBcs,
|
|
155
|
+
});
|
|
156
|
+
/** Decodes a `PackageVersion<otw>`; any other package's version is rejected. */
|
|
157
|
+
export function decodePackageVersionObject(object, identity) {
|
|
158
|
+
const otw = assertPackageObjectType(object, identity, "package_version", "PackageVersion");
|
|
159
|
+
const parsed = packageVersionBcs.parse(object.content);
|
|
160
|
+
return {
|
|
161
|
+
...adminIdentity(object, parsed.id.id.bytes),
|
|
162
|
+
otw,
|
|
163
|
+
validPauseBits: parsed.valid_pause_bits,
|
|
164
|
+
paused: parsed.paused,
|
|
165
|
+
packageWitness: parsed.package_witness,
|
|
166
|
+
version: parsed.version,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/** Decodes a `PackageAdmin<otw>`; any other package's administration is rejected. */
|
|
170
|
+
export function decodePackageAdminObject(object, identity) {
|
|
171
|
+
const otw = assertPackageObjectType(object, identity, "package_admin", "PackageAdmin");
|
|
172
|
+
const parsed = packageAdminBcs.parse(object.content);
|
|
173
|
+
if (parsed.upgrade.parent !== normalizeSuiObjectId(parsed.id.id.bytes))
|
|
174
|
+
throw new TypeError("administration object UID mismatch");
|
|
175
|
+
const cap = parsed.upgrade_cap;
|
|
176
|
+
return {
|
|
177
|
+
...adminIdentity(object, parsed.id.id.bytes),
|
|
178
|
+
otw,
|
|
179
|
+
publisherId: normalizeSuiObjectId(parsed.publisher.id.id.bytes),
|
|
180
|
+
upgradeCap: cap && {
|
|
181
|
+
id: normalizeSuiObjectId(cap.id.id.bytes),
|
|
182
|
+
package: cap.package,
|
|
183
|
+
version: cap.version,
|
|
184
|
+
policy: cap.policy,
|
|
185
|
+
},
|
|
186
|
+
delayMs: parsed.upgrade.delay_ms,
|
|
187
|
+
pending: parsed.upgrade.pending,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
function assertPackageObjectType(object, identity, module, name) {
|
|
191
|
+
const otw = normalizeStructTag(identity.otw);
|
|
192
|
+
if (normalizeStructTag(object.type) !==
|
|
193
|
+
normalizeStructTag(`${normalizeSuiObjectId(identity.admin.packageId)}::${module}::${name}<${otw}>`))
|
|
194
|
+
throw new TypeError(`unexpected administration object ${object.objectId}`);
|
|
195
|
+
return otw;
|
|
196
|
+
}
|
|
197
|
+
function adminIdentity(object, id) {
|
|
198
|
+
const objectId = normalizeSuiObjectId(object.objectId);
|
|
199
|
+
if (normalizeSuiObjectId(id) !== objectId)
|
|
200
|
+
throw new TypeError("administration object UID mismatch");
|
|
201
|
+
return {
|
|
202
|
+
objectId,
|
|
203
|
+
initialSharedVersion: normalizePositiveU64("initialSharedVersion", object.initialSharedVersion),
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
export function aclAdminFieldName(adminCapId) {
|
|
207
|
+
return {
|
|
208
|
+
type: normalizeStructTag("0x2::object::ID"),
|
|
209
|
+
bcs: suiObjectIdBcs.serialize(adminCapId).toBytes(),
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
/** Decodes the targeted Table read separately from transport/provider accounting. */
|
|
213
|
+
export function decodeAclAdminRolesField(dynamicField, adminCapId) {
|
|
214
|
+
if (normalizeStructTag(dynamicField.name.type) !==
|
|
215
|
+
normalizeStructTag("0x2::object::ID") ||
|
|
216
|
+
suiObjectIdBcs.parse(dynamicField.name.bcs) !==
|
|
217
|
+
normalizeSuiObjectId(adminCapId))
|
|
218
|
+
throw new TypeError("ACL role field has an unexpected cap ID");
|
|
219
|
+
if (normalizeStructTag(dynamicField.value.type) !==
|
|
220
|
+
normalizeStructTag("0x2::vec_set::VecSet<0x1::type_name::TypeName>")) {
|
|
221
|
+
throw new TypeError("ACL role field has an unexpected value type");
|
|
222
|
+
}
|
|
223
|
+
return bcs.vector(moveTypeNameBcs).parse(dynamicField.value.bcs);
|
|
224
|
+
}
|
|
225
|
+
export async function getPackageVersion(client, objectId, identity) {
|
|
226
|
+
return decodePackageVersionObject(await readAdministrationObject(client, objectId), identity);
|
|
227
|
+
}
|
|
228
|
+
export async function getPackageAdmin(client, objectId, identity) {
|
|
229
|
+
return decodePackageAdminObject(await readAdministrationObject(client, objectId), identity);
|
|
230
|
+
}
|
|
231
|
+
async function readAdministrationObject(client, objectId) {
|
|
232
|
+
const { object } = await client.core.getObject({
|
|
233
|
+
objectId,
|
|
234
|
+
include: { content: true },
|
|
235
|
+
});
|
|
236
|
+
if (object.owner.$kind !== "Shared")
|
|
237
|
+
throw new TypeError(`administration object ${object.objectId} is not shared`);
|
|
238
|
+
return {
|
|
239
|
+
objectId: object.objectId,
|
|
240
|
+
initialSharedVersion: object.owner.Shared.initialSharedVersion,
|
|
241
|
+
type: object.type,
|
|
242
|
+
content: object.content,
|
|
243
|
+
};
|
|
56
244
|
}
|
|
57
245
|
//# sourceMappingURL=state.js.map
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
|
package/dist/transactions.d.ts
CHANGED
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import type { SharedObjectIdentity } from "@interest-protocol/blast-core/sui";
|
|
2
2
|
import type { TransactionObjectArgument, TransactionObjectInput } from "@mysten/sui/transactions";
|
|
3
3
|
import { Transaction } from "@mysten/sui/transactions";
|
|
4
|
-
/** The
|
|
4
|
+
/** The canonical `blast_admin` package (immutability deferred) and its shared singleton `blast_acl::ACL`. */
|
|
5
5
|
export type AdminDeployment = {
|
|
6
6
|
packageId: string;
|
|
7
7
|
acl: SharedObjectIdentity;
|
|
8
8
|
};
|
|
9
9
|
export declare function normalizeAdminDeployment(deployment: AdminDeployment): AdminDeployment;
|
|
10
|
+
/** `blast_admin::package_admin`'s roles, each generic over one package's OTW. */
|
|
11
|
+
export declare const PACKAGE_ROLES: readonly ["UpgradeAdmin", "PauseAdmin", "UnpauseAdmin", "CancelAdmin"];
|
|
12
|
+
export type PackageRole = (typeof PACKAGE_ROLES)[number];
|
|
13
|
+
/** `<admin>::package_admin::<role><otw>`: one package's infrastructure role. */
|
|
14
|
+
export declare function packageRoleType(admin: Pick<AdminDeployment, "packageId">, otw: string, role: PackageRole): string;
|
|
15
|
+
/** One package's shared `PackageVersion<OTW>` or `PackageAdmin<OTW>` and its OTW type. */
|
|
16
|
+
type PackageObjectOptions<Name extends "packageVersion" | "packageAdmin"> = {
|
|
17
|
+
otw: string;
|
|
18
|
+
} & Record<Name, SharedObjectIdentity>;
|
|
10
19
|
/**
|
|
11
|
-
* `blast_admin::blast_acl` calls. A
|
|
12
|
-
*
|
|
13
|
-
*
|
|
20
|
+
* `blast_admin::blast_acl` and `blast_admin::package_admin` calls. A product
|
|
21
|
+
* role is a `blast_core::blast_domain` type (`coreRoleType`); a package role
|
|
22
|
+
* is `package_admin::<Role><OTW>` (`packageRoleType`). A product's own
|
|
23
|
+
* `unpause` and `make_immutable` wrappers live with the product.
|
|
14
24
|
*/
|
|
15
25
|
export declare class AdminCalls {
|
|
16
26
|
#private;
|
|
@@ -64,6 +74,31 @@ export declare class AdminCalls {
|
|
|
64
74
|
destroyRetiredSuperAdminCap(options: {
|
|
65
75
|
superAdminCap: TransactionObjectInput;
|
|
66
76
|
}): (tx: Transaction) => void;
|
|
77
|
+
/** `package_admin::pause<OTW>` with a `PauseAdmin<OTW>` witness: sets `bits` now. */
|
|
78
|
+
pause(options: PackageObjectOptions<"packageVersion"> & {
|
|
79
|
+
adminWitness: TransactionObjectInput;
|
|
80
|
+
bits: number;
|
|
81
|
+
}): (tx: Transaction) => void;
|
|
82
|
+
/** `package_admin::schedule_upgrade<OTW>` of one 32-byte package digest. */
|
|
83
|
+
scheduleUpgrade(options: PackageObjectOptions<"packageAdmin"> & {
|
|
84
|
+
adminWitness: TransactionObjectInput;
|
|
85
|
+
digest: Uint8Array;
|
|
86
|
+
}): (tx: Transaction) => void;
|
|
87
|
+
/** `package_admin::schedule_make_immutable<OTW>`. */
|
|
88
|
+
scheduleMakeImmutable(options: PackageObjectOptions<"packageAdmin"> & {
|
|
89
|
+
adminWitness: TransactionObjectInput;
|
|
90
|
+
}): (tx: Transaction) => void;
|
|
91
|
+
/** `package_admin::cancel_upgrade_action<OTW>` with a `CancelAdmin<OTW>` witness. */
|
|
92
|
+
cancelUpgradeAction(options: PackageObjectOptions<"packageAdmin"> & {
|
|
93
|
+
adminWitness: TransactionObjectInput;
|
|
94
|
+
}): (tx: Transaction) => void;
|
|
95
|
+
/** `package_admin::schedule_upgrade_delay<OTW>`: proposes only a new delay. */
|
|
96
|
+
scheduleUpgradeDelay(options: PackageObjectOptions<"packageAdmin"> & {
|
|
97
|
+
adminWitness: TransactionObjectInput;
|
|
98
|
+
delayMs: bigint;
|
|
99
|
+
}): (tx: Transaction) => void;
|
|
100
|
+
/** `package_admin::apply_upgrade_delay<OTW>`: anyone, once ready. */
|
|
101
|
+
applyUpgradeDelay(options: PackageObjectOptions<"packageAdmin">): (tx: Transaction) => void;
|
|
67
102
|
}
|
|
68
103
|
/** One-call PTBs for the ACL's root and administrators. */
|
|
69
104
|
export declare class AdminTransactions {
|
|
@@ -102,4 +137,10 @@ export declare class AdminTransactions {
|
|
|
102
137
|
superAdminCapId: string;
|
|
103
138
|
}): Transaction;
|
|
104
139
|
}
|
|
140
|
+
/**
|
|
141
|
+
* Pause bits are a nonzero mask within `valid` (a package's
|
|
142
|
+
* `valid_pause_bits`; any `u8` when the package checks them itself).
|
|
143
|
+
*/
|
|
144
|
+
export declare function requirePauseBits(bits: number, valid?: number): number;
|
|
145
|
+
export {};
|
|
105
146
|
//# sourceMappingURL=transactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
|