@wormhole-foundation/sdk-sui 0.5.0-beta.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/cjs/address.d.ts +34 -0
- package/dist/cjs/address.d.ts.map +1 -0
- package/dist/cjs/address.js +120 -0
- package/dist/cjs/address.js.map +1 -0
- package/dist/cjs/chain.d.ts +5 -0
- package/dist/cjs/chain.d.ts.map +1 -0
- package/dist/cjs/chain.js +8 -0
- package/dist/cjs/chain.js.map +1 -0
- package/dist/cjs/constants.d.ts +3 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +6 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +24 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/platform.d.ts +25 -0
- package/dist/cjs/platform.d.ts.map +1 -0
- package/dist/cjs/platform.js +110 -0
- package/dist/cjs/platform.js.map +1 -0
- package/dist/cjs/signer.d.ts +15 -0
- package/dist/cjs/signer.d.ts.map +1 -0
- package/dist/cjs/signer.js +42 -0
- package/dist/cjs/signer.js.map +1 -0
- package/dist/cjs/testing/index.d.ts +2 -0
- package/dist/cjs/testing/index.d.ts.map +1 -0
- package/dist/cjs/testing/index.js +18 -0
- package/dist/cjs/testing/index.js.map +1 -0
- package/dist/cjs/testing/signer.d.ts +11 -0
- package/dist/cjs/testing/signer.d.ts.map +1 -0
- package/dist/cjs/testing/signer.js +27 -0
- package/dist/cjs/testing/signer.js.map +1 -0
- package/dist/cjs/types.d.ts +30 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +40 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/unsignedTransaction.d.ts +12 -0
- package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
- package/dist/cjs/unsignedTransaction.js +19 -0
- package/dist/cjs/unsignedTransaction.js.map +1 -0
- package/dist/cjs/utils.d.ts +15 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +215 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/address.d.ts +34 -0
- package/dist/esm/address.d.ts.map +1 -0
- package/dist/esm/address.js +109 -0
- package/dist/esm/address.js.map +1 -0
- package/dist/esm/chain.d.ts +5 -0
- package/dist/esm/chain.d.ts.map +1 -0
- package/dist/esm/chain.js +4 -0
- package/dist/esm/chain.js.map +1 -0
- package/dist/esm/constants.d.ts +3 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +3 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/platform.d.ts +25 -0
- package/dist/esm/platform.d.ts.map +1 -0
- package/dist/esm/platform.js +106 -0
- package/dist/esm/platform.js.map +1 -0
- package/dist/esm/signer.d.ts +15 -0
- package/dist/esm/signer.d.ts.map +1 -0
- package/dist/esm/signer.js +37 -0
- package/dist/esm/signer.js.map +1 -0
- package/dist/esm/testing/index.d.ts +2 -0
- package/dist/esm/testing/index.d.ts.map +1 -0
- package/dist/esm/testing/index.js +2 -0
- package/dist/esm/testing/index.js.map +1 -0
- package/dist/esm/testing/signer.d.ts +11 -0
- package/dist/esm/testing/signer.d.ts.map +1 -0
- package/dist/esm/testing/signer.js +22 -0
- package/dist/esm/testing/signer.js.map +1 -0
- package/dist/esm/types.d.ts +30 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +30 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/unsignedTransaction.d.ts +12 -0
- package/dist/esm/unsignedTransaction.d.ts.map +1 -0
- package/dist/esm/unsignedTransaction.js +15 -0
- package/dist/esm/unsignedTransaction.js.map +1 -0
- package/dist/esm/utils.d.ts +15 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +202 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAEA,uCAA6C;AAEhC,QAAA,SAAS,GAAU,KAAK,CAAC;AAY/B,MAAM,2BAA2B,GAAG,CAAC,MAAyB,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;IACrC,OAAO,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9E,CAAC,CAAC;AAHW,QAAA,2BAA2B,+BAGtC;AAEK,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;IACjD,IAAI;QACF,OAAO,IAAA,0BAAgB,EAAC,CAAC,CAAC,KAAK,IAAA,0BAAgB,EAAC,CAAC,CAAC,CAAC;KACpD;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC,CAAC;AANW,QAAA,UAAU,cAMrB;AAEF,0BAA0B;AACnB,MAAM,gBAAgB,GAAG,CAI9B,KAAQ,EACI,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC;AAL9B,QAAA,gBAAgB,oBAKc;AAEpC,MAAM,iBAAiB,GAAG,CAI/B,KAAQ,EACI,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,WAAW,CAAC;AALhC,QAAA,iBAAiB,qBAKe;AAE7C,EAAE;AACF,+BAA+B;AAC/B,EAAE;AACF,SAAgB,iBAAiB,CAAC,KAAU;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAFD,8CAEC;AACD,SAAgB,kBAAkB,CAChC,KAAU;IAEV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC;AACpG,CAAC;AAJD,gDAIC;AACD,SAAgB,kBAAkB,CAAC,KAAU;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAFD,gDAEC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TransactionBlock } from "@mysten/sui.js/transactions";
|
|
2
|
+
import { Network, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
|
|
3
|
+
import { SuiChains } from "./types";
|
|
4
|
+
export declare class SuiUnsignedTransaction<N extends Network, C extends SuiChains> implements UnsignedTransaction<N, C> {
|
|
5
|
+
readonly transaction: TransactionBlock;
|
|
6
|
+
readonly network: N;
|
|
7
|
+
readonly chain: C;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
readonly parallelizable: boolean;
|
|
10
|
+
constructor(transaction: TransactionBlock, network: N, chain: C, description: string, parallelizable?: boolean);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=unsignedTransaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsignedTransaction.d.ts","sourceRoot":"","sources":["../../src/unsignedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,qBAAa,sBAAsB,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CACxE,YAAW,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC;IAGlC,QAAQ,CAAC,WAAW,EAAE,gBAAgB;IACtC,QAAQ,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO;gBAJvB,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,OAAe;CAE3C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuiUnsignedTransaction = void 0;
|
|
4
|
+
class SuiUnsignedTransaction {
|
|
5
|
+
transaction;
|
|
6
|
+
network;
|
|
7
|
+
chain;
|
|
8
|
+
description;
|
|
9
|
+
parallelizable;
|
|
10
|
+
constructor(transaction, network, chain, description, parallelizable = false) {
|
|
11
|
+
this.transaction = transaction;
|
|
12
|
+
this.network = network;
|
|
13
|
+
this.chain = chain;
|
|
14
|
+
this.description = description;
|
|
15
|
+
this.parallelizable = parallelizable;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.SuiUnsignedTransaction = SuiUnsignedTransaction;
|
|
19
|
+
//# sourceMappingURL=unsignedTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unsignedTransaction.js","sourceRoot":"","sources":["../../src/unsignedTransaction.ts"],"names":[],"mappings":";;;AAIA,MAAa,sBAAsB;IAItB;IACA;IACA;IACA;IACA;IALX,YACW,WAA6B,EAC7B,OAAU,EACV,KAAQ,EACR,WAAmB,EACnB,iBAA0B,KAAK;QAJ/B,gBAAW,GAAX,WAAW,CAAkB;QAC7B,YAAO,GAAP,OAAO,CAAG;QACV,UAAK,GAAL,KAAK,CAAG;QACR,gBAAW,GAAX,WAAW,CAAQ;QACnB,mBAAc,GAAd,cAAc,CAAiB;IACvC,CAAC;CACL;AAVD,wDAUC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SuiClient } from "@mysten/sui.js/client";
|
|
2
|
+
import { TransactionBlock } from "@mysten/sui.js/transactions";
|
|
3
|
+
import { SuiBuildOutput } from "./types";
|
|
4
|
+
export declare const UPGRADE_CAP_TYPE = "0x2::package::UpgradeCap";
|
|
5
|
+
export declare const uint8ArrayToBCS: (arr: Uint8Array) => Uint8Array;
|
|
6
|
+
export declare const getOriginalPackageId: (provider: SuiClient, stateObjectId: string) => Promise<string>;
|
|
7
|
+
export declare const getObjectFields: (provider: SuiClient, objectId: string) => Promise<Record<string, any> | null>;
|
|
8
|
+
export declare function getPackageId(provider: SuiClient, objectId: string): Promise<string>;
|
|
9
|
+
export declare const getOldestEmitterCapObjectId: (provider: SuiClient, coreBridgePackageId: string, owner: string) => Promise<string | null>;
|
|
10
|
+
export declare const getOwnedObjectId: (provider: SuiClient, owner: string, type: string) => Promise<string | null>;
|
|
11
|
+
export declare const getOwnedObjectIdPaginated: (provider: SuiClient, owner: string, type: string, cursor?: string) => Promise<string | null>;
|
|
12
|
+
export declare const getUpgradeCapObjectId: (provider: SuiClient, owner: string, packageId: string) => Promise<string | null>;
|
|
13
|
+
export declare const publishPackage: (buildOutput: SuiBuildOutput, signerAddress: string) => Promise<TransactionBlock>;
|
|
14
|
+
export declare const newEmitterCap: (coreBridgePackageId: string, coreBridgeStateObjectId: string, owner: string) => TransactionBlock;
|
|
15
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,EACL,cAAc,EAKf,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,gBAAgB,6BAA6B,CAAC;AAG3D,eAAO,MAAM,eAAe,QAAS,UAAU,eAC4B,CAAC;AAM5E,eAAO,MAAM,oBAAoB,aAAoB,SAAS,iBAAiB,MAAM,oBAWpF,CAAC;AAEF,eAAO,MAAM,eAAe,aAChB,SAAS,YACT,MAAM,KACf,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAWpC,CAAC;AAEF,wBAAsB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BzF;AAED,eAAO,MAAM,2BAA2B,aAC5B,SAAS,uBACE,MAAM,SACpB,MAAM,KACZ,QAAQ,MAAM,GAAG,IAAI,CAgCvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,aACjB,SAAS,SACZ,MAAM,QACP,MAAM,KACX,QAAQ,MAAM,GAAG,IAAI,CAuCvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,aAC1B,SAAS,SACZ,MAAM,QACP,MAAM,WACH,MAAM,KACd,QAAQ,MAAM,GAAG,IAAI,CAsBvB,CAAC;AAEF,eAAO,MAAM,qBAAqB,aACtB,SAAS,SACZ,MAAM,aACF,MAAM,KAChB,QAAQ,MAAM,GAAG,IAAI,CAgCvB,CAAC;AAGF,eAAO,MAAM,cAAc,gBACZ,cAAc,iBACZ,MAAM,KACpB,QAAQ,gBAAgB,CAS1B,CAAC;AAEF,eAAO,MAAM,aAAa,wBACH,MAAM,2BACF,MAAM,SACxB,MAAM,KACZ,gBAQF,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newEmitterCap = exports.publishPackage = exports.getUpgradeCapObjectId = exports.getOwnedObjectIdPaginated = exports.getOwnedObjectId = exports.getOldestEmitterCapObjectId = exports.getPackageId = exports.getObjectFields = exports.getOriginalPackageId = exports.uint8ArrayToBCS = exports.UPGRADE_CAP_TYPE = void 0;
|
|
4
|
+
const bcs_1 = require("@mysten/sui.js/bcs");
|
|
5
|
+
const transactions_1 = require("@mysten/sui.js/transactions");
|
|
6
|
+
const utils_1 = require("@mysten/sui.js/utils");
|
|
7
|
+
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const address_1 = require("./address");
|
|
10
|
+
exports.UPGRADE_CAP_TYPE = "0x2::package::UpgradeCap";
|
|
11
|
+
const MAX_PURE_ARGUMENT_SIZE = 16 * 1024;
|
|
12
|
+
const uint8ArrayToBCS = (arr) => bcs_1.bcs.ser("vector<u8>", arr, { maxSize: MAX_PURE_ARGUMENT_SIZE }).toBytes();
|
|
13
|
+
exports.uint8ArrayToBCS = uint8ArrayToBCS;
|
|
14
|
+
//
|
|
15
|
+
// Utils to fetch data from Sui
|
|
16
|
+
//
|
|
17
|
+
const getOriginalPackageId = async (provider, stateObjectId) => {
|
|
18
|
+
const { data, error } = await provider.getObject({
|
|
19
|
+
id: stateObjectId,
|
|
20
|
+
options: { showContent: true },
|
|
21
|
+
});
|
|
22
|
+
if (error)
|
|
23
|
+
throw new Error("Error getting object: " + error);
|
|
24
|
+
if (!data || !(0, types_1.isMoveStructStruct)(data.content))
|
|
25
|
+
throw new Error(`Cannot get oject for state id ${stateObjectId}: ` + data);
|
|
26
|
+
return (0, address_1.getPackageIdFromType)(data.content.type);
|
|
27
|
+
};
|
|
28
|
+
exports.getOriginalPackageId = getOriginalPackageId;
|
|
29
|
+
const getObjectFields = async (provider, objectId) => {
|
|
30
|
+
if (!(0, utils_1.isValidSuiAddress)(objectId)) {
|
|
31
|
+
throw new Error(`Invalid object ID: ${objectId}`);
|
|
32
|
+
}
|
|
33
|
+
const res = await provider.getObject({
|
|
34
|
+
id: objectId,
|
|
35
|
+
options: {
|
|
36
|
+
showContent: true,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return (0, types_1.getFieldsFromObjectResponse)(res);
|
|
40
|
+
};
|
|
41
|
+
exports.getObjectFields = getObjectFields;
|
|
42
|
+
async function getPackageId(provider, objectId) {
|
|
43
|
+
let currentPackage;
|
|
44
|
+
let nextCursor;
|
|
45
|
+
do {
|
|
46
|
+
const dynamicFields = await provider.getDynamicFields({
|
|
47
|
+
parentId: objectId,
|
|
48
|
+
cursor: nextCursor,
|
|
49
|
+
});
|
|
50
|
+
currentPackage = dynamicFields.data.find((field) => field.name.type.endsWith("CurrentPackage"));
|
|
51
|
+
nextCursor = dynamicFields.hasNextPage ? dynamicFields.nextCursor : null;
|
|
52
|
+
} while (nextCursor && !currentPackage);
|
|
53
|
+
if (!currentPackage)
|
|
54
|
+
throw new Error("CurrentPackage not found");
|
|
55
|
+
const obj = await provider.getObject({
|
|
56
|
+
id: currentPackage.objectId,
|
|
57
|
+
options: {
|
|
58
|
+
showContent: true,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
const fields = (0, types_1.getFieldsFromObjectResponse)(obj);
|
|
62
|
+
if (!fields || !(0, types_1.isMoveStructObject)(fields))
|
|
63
|
+
throw new Error("Unable to get fields from object response");
|
|
64
|
+
if (!("value" in fields) || !(0, types_1.isMoveStructStruct)(fields["value"]))
|
|
65
|
+
throw new Error("Unable to get package id");
|
|
66
|
+
return fields["value"].fields["package"];
|
|
67
|
+
}
|
|
68
|
+
exports.getPackageId = getPackageId;
|
|
69
|
+
const getOldestEmitterCapObjectId = async (provider, coreBridgePackageId, owner) => {
|
|
70
|
+
let oldestVersion = null;
|
|
71
|
+
let oldestObjectId = null;
|
|
72
|
+
let response = null;
|
|
73
|
+
let nextCursor;
|
|
74
|
+
do {
|
|
75
|
+
response = await provider.getOwnedObjects({
|
|
76
|
+
owner,
|
|
77
|
+
filter: {
|
|
78
|
+
StructType: `${coreBridgePackageId}::emitter::EmitterCap`,
|
|
79
|
+
},
|
|
80
|
+
options: {
|
|
81
|
+
showContent: true,
|
|
82
|
+
},
|
|
83
|
+
cursor: nextCursor,
|
|
84
|
+
});
|
|
85
|
+
if (!response || !response.data) {
|
|
86
|
+
throw Error("Failed to get owned objects");
|
|
87
|
+
}
|
|
88
|
+
for (const objectResponse of response.data) {
|
|
89
|
+
if (!objectResponse.data)
|
|
90
|
+
continue;
|
|
91
|
+
const { version, objectId } = objectResponse.data;
|
|
92
|
+
if (oldestVersion === null || version < oldestVersion) {
|
|
93
|
+
oldestVersion = version;
|
|
94
|
+
oldestObjectId = objectId;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
nextCursor = response.hasNextPage ? response.nextCursor : undefined;
|
|
98
|
+
} while (nextCursor);
|
|
99
|
+
return oldestObjectId;
|
|
100
|
+
};
|
|
101
|
+
exports.getOldestEmitterCapObjectId = getOldestEmitterCapObjectId;
|
|
102
|
+
const getOwnedObjectId = async (provider, owner, type) => {
|
|
103
|
+
// Upgrade caps are a special case
|
|
104
|
+
if ((0, types_1.isSameType)(type, exports.UPGRADE_CAP_TYPE)) {
|
|
105
|
+
throw new Error("`getOwnedObjectId` should not be used to get the object ID of an `UpgradeCap`. Use `getUpgradeCapObjectId` instead.");
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
const res = await provider.getOwnedObjects({
|
|
109
|
+
owner,
|
|
110
|
+
filter: { StructType: type },
|
|
111
|
+
options: {
|
|
112
|
+
showContent: true,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
if (!res || !res.data) {
|
|
116
|
+
throw new Error("Failed to get owned objects");
|
|
117
|
+
}
|
|
118
|
+
const objects = res.data.filter((o) => o.data?.objectId);
|
|
119
|
+
if (!objects || objects.length === 0)
|
|
120
|
+
return null;
|
|
121
|
+
if (objects.length === 1) {
|
|
122
|
+
return objects[0].data?.objectId ?? null;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
const objectsStr = JSON.stringify(objects, null, 2);
|
|
126
|
+
throw new Error(`Found multiple objects owned by ${owner} of type ${type}. This may mean that we've received an unexpected response from the Sui RPC and \`worm\` logic needs to be updated to handle this. Objects: ${objectsStr}`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
// Handle 504 error by using findOwnedObjectByType method
|
|
131
|
+
const is504HttpError = `${error}`.includes("504 Gateway Time-out");
|
|
132
|
+
if (error && is504HttpError) {
|
|
133
|
+
return (0, exports.getOwnedObjectIdPaginated)(provider, owner, type);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
exports.getOwnedObjectId = getOwnedObjectId;
|
|
141
|
+
const getOwnedObjectIdPaginated = async (provider, owner, type, cursor) => {
|
|
142
|
+
const res = await provider.getOwnedObjects({
|
|
143
|
+
owner,
|
|
144
|
+
filter: undefined,
|
|
145
|
+
cursor: cursor || undefined,
|
|
146
|
+
options: {
|
|
147
|
+
showType: true,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
if (!res || !res.data) {
|
|
151
|
+
throw new Error("Could not fetch owned object id");
|
|
152
|
+
}
|
|
153
|
+
const object = res.data.find((d) => (0, types_1.isSameType)(d.data?.type || "", type));
|
|
154
|
+
if (!object && res.hasNextPage) {
|
|
155
|
+
return (0, exports.getOwnedObjectIdPaginated)(provider, owner, type, res.nextCursor);
|
|
156
|
+
}
|
|
157
|
+
else if (!object && !res.hasNextPage) {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
return object?.data?.objectId ?? null;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
exports.getOwnedObjectIdPaginated = getOwnedObjectIdPaginated;
|
|
165
|
+
const getUpgradeCapObjectId = async (provider, owner, packageId) => {
|
|
166
|
+
const res = await provider.getOwnedObjects({
|
|
167
|
+
owner,
|
|
168
|
+
filter: { StructType: (0, address_1.normalizeSuiType)(exports.UPGRADE_CAP_TYPE) },
|
|
169
|
+
options: {
|
|
170
|
+
showContent: true,
|
|
171
|
+
},
|
|
172
|
+
});
|
|
173
|
+
if (!res || !res.data) {
|
|
174
|
+
throw new Error("Failed to get upgrade caps");
|
|
175
|
+
}
|
|
176
|
+
const objects = res.data.filter((o) => {
|
|
177
|
+
const fields = (0, types_1.getFieldsFromObjectResponse)(o);
|
|
178
|
+
return ((0, types_1.isMoveStructStruct)(fields) &&
|
|
179
|
+
(0, utils_1.normalizeSuiAddress)(fields.fields["package"]) === (0, utils_1.normalizeSuiAddress)(packageId));
|
|
180
|
+
});
|
|
181
|
+
if (!objects || objects.length === 0)
|
|
182
|
+
return null;
|
|
183
|
+
if (objects.length === 1) {
|
|
184
|
+
// We've found the object we're looking for
|
|
185
|
+
return objects[0].data?.objectId ?? null;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const objectsStr = JSON.stringify(objects, null, 2);
|
|
189
|
+
throw new Error(`Found multiple upgrade capabilities owned by ${owner} from package ${packageId}. Objects: ${objectsStr}`);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
exports.getUpgradeCapObjectId = getUpgradeCapObjectId;
|
|
193
|
+
// Create a TransactionBlock to publish a package
|
|
194
|
+
const publishPackage = async (buildOutput, signerAddress) => {
|
|
195
|
+
const tx = new transactions_1.TransactionBlock();
|
|
196
|
+
const [upgradeCap] = tx.publish({
|
|
197
|
+
modules: buildOutput.modules.map((m) => Array.from(sdk_connect_1.encoding.b64.decode(m))),
|
|
198
|
+
dependencies: buildOutput.dependencies.map((d) => (0, utils_1.normalizeSuiObjectId)(d)),
|
|
199
|
+
});
|
|
200
|
+
// Transfer upgrade capability to recipient
|
|
201
|
+
tx.transferObjects([upgradeCap], tx.pure(signerAddress));
|
|
202
|
+
return tx;
|
|
203
|
+
};
|
|
204
|
+
exports.publishPackage = publishPackage;
|
|
205
|
+
const newEmitterCap = (coreBridgePackageId, coreBridgeStateObjectId, owner) => {
|
|
206
|
+
const tx = new transactions_1.TransactionBlock();
|
|
207
|
+
const [emitterCap] = tx.moveCall({
|
|
208
|
+
target: `${coreBridgePackageId}::emitter::new`,
|
|
209
|
+
arguments: [tx.object(coreBridgeStateObjectId)],
|
|
210
|
+
});
|
|
211
|
+
tx.transferObjects([emitterCap], tx.pure(owner));
|
|
212
|
+
return tx;
|
|
213
|
+
};
|
|
214
|
+
exports.newEmitterCap = newEmitterCap;
|
|
215
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Address, UniversalAddress } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { AnySuiAddress } from "./types";
|
|
3
|
+
export declare const SuiZeroAddress = "0x";
|
|
4
|
+
export declare const trimSuiType: (type: string) => string;
|
|
5
|
+
export declare const isValidSuiType: (str: string) => boolean;
|
|
6
|
+
export declare function ensureFullSuiAddress(address: string): string;
|
|
7
|
+
export declare const normalizeSuiType: (type: string) => string;
|
|
8
|
+
export declare const getCoinTypeFromPackageId: (packageId: string) => string;
|
|
9
|
+
export declare const getPackageIdFromType: (type: string) => string;
|
|
10
|
+
export declare const getTableKeyType: (tableType: string) => string;
|
|
11
|
+
export declare class SuiAddress implements Address {
|
|
12
|
+
static readonly byteSize = 32;
|
|
13
|
+
static readonly platform: "Sui";
|
|
14
|
+
readonly address: Uint8Array;
|
|
15
|
+
readonly module: string | undefined;
|
|
16
|
+
constructor(address: AnySuiAddress);
|
|
17
|
+
unwrap(): string;
|
|
18
|
+
toString(): string;
|
|
19
|
+
toNative(): this;
|
|
20
|
+
toUint8Array(): Uint8Array;
|
|
21
|
+
toUniversalAddress(): UniversalAddress;
|
|
22
|
+
getPackageId(): string;
|
|
23
|
+
getCoinType(): string;
|
|
24
|
+
static instanceof(address: any): address is SuiAddress;
|
|
25
|
+
equals(other: SuiAddress | UniversalAddress): boolean;
|
|
26
|
+
}
|
|
27
|
+
declare global {
|
|
28
|
+
namespace Wormhole {
|
|
29
|
+
interface PlatformToNativeAddressMapping {
|
|
30
|
+
Sui: SuiAddress;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAGP,gBAAgB,EACjB,MAAM,kCAAkC,CAAC;AAI1C,OAAO,EAAa,aAAa,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,MAAyC,CAAC;AACrF,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,OAAoD,CAAC;AAGlG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,UAMnD;AAED,eAAO,MAAM,gBAAgB,SAAU,MAAM,KAAG,MAI/C,CAAC;AAEF,eAAO,MAAM,wBAAwB,cAAe,MAAM,KAAG,MAE5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,SAAU,MAAM,KAAG,MAEnD,CAAC;AAEF,eAAO,MAAM,eAAe,cAAe,MAAM,KAAG,MASnD,CAAC;AAEF,qBAAa,UAAW,YAAW,OAAO;IACxC,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM;IAC9B,MAAM,CAAC,QAAQ,CAAC,QAAQ,QAAyB;IAGjD,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBAExB,OAAO,EAAE,aAAa;IAyBlC,MAAM,IAAI,MAAM;IAMhB,QAAQ,IAAI,MAAM;IAGlB,QAAQ;IAGR,YAAY;IAGZ,kBAAkB;IAIlB,YAAY,IAAI,MAAM;IAItB,WAAW,IAAI,MAAM;IAIrB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,UAAU;IAItD,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,OAAO;CAOtD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,QAAQ,CAAC;QACjB,UAAiB,8BAA8B;YAC7C,GAAG,EAAE,UAAU,CAAC;SACjB;KACF;CACF"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { normalizeSuiAddress } from "@mysten/sui.js/utils";
|
|
2
|
+
import { encoding, registerNative, UniversalAddress, } from "@wormhole-foundation/sdk-connect";
|
|
3
|
+
import { SUI_SEPARATOR } from "./constants";
|
|
4
|
+
import { SuiPlatform } from "./platform";
|
|
5
|
+
import { _platform } from "./types";
|
|
6
|
+
export const SuiZeroAddress = "0x";
|
|
7
|
+
export const trimSuiType = (type) => type.replace(/(0x)(0*)/g, "0x");
|
|
8
|
+
export const isValidSuiType = (str) => /^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(str);
|
|
9
|
+
// Adds leading 0s to the address to make it 32 bytes long
|
|
10
|
+
export function ensureFullSuiAddress(address) {
|
|
11
|
+
if (address.length % 2 !== 0 || address.length < 66) {
|
|
12
|
+
address = address.startsWith("0x") ? address.slice(2) : address;
|
|
13
|
+
return "0x" + address.padStart(64, "0");
|
|
14
|
+
}
|
|
15
|
+
return address;
|
|
16
|
+
}
|
|
17
|
+
export const normalizeSuiType = (type) => {
|
|
18
|
+
const tokens = type.split(SUI_SEPARATOR);
|
|
19
|
+
if (tokens.length !== 3)
|
|
20
|
+
throw new Error(`Invalid Sui type: ${type}`);
|
|
21
|
+
return [normalizeSuiAddress(tokens[0]), tokens[1], tokens[2]].join(SUI_SEPARATOR);
|
|
22
|
+
};
|
|
23
|
+
export const getCoinTypeFromPackageId = (packageId) => {
|
|
24
|
+
return new SuiAddress(packageId).getCoinType();
|
|
25
|
+
};
|
|
26
|
+
export const getPackageIdFromType = (type) => {
|
|
27
|
+
return new SuiAddress(type).getPackageId();
|
|
28
|
+
};
|
|
29
|
+
export const getTableKeyType = (tableType) => {
|
|
30
|
+
const match = trimSuiType(tableType).match(/0x2::table::Table<(.*)>/);
|
|
31
|
+
if (!match)
|
|
32
|
+
throw new Error(`Invalid table type: ${tableType}`);
|
|
33
|
+
if (match.length < 2)
|
|
34
|
+
throw new Error(`Invalid table type: ${tableType}`);
|
|
35
|
+
const [keyType] = match[1].split(",");
|
|
36
|
+
if (!keyType || !isValidSuiType(keyType))
|
|
37
|
+
throw new Error(`Invalid key type: ${keyType}`);
|
|
38
|
+
return keyType;
|
|
39
|
+
};
|
|
40
|
+
export class SuiAddress {
|
|
41
|
+
static byteSize = 32;
|
|
42
|
+
static platform = SuiPlatform._platform;
|
|
43
|
+
// Full 32 bytes of Address
|
|
44
|
+
address;
|
|
45
|
+
// Optional module and contract name
|
|
46
|
+
module;
|
|
47
|
+
constructor(address) {
|
|
48
|
+
if (SuiAddress.instanceof(address)) {
|
|
49
|
+
this.address = address.address;
|
|
50
|
+
this.module = address.module;
|
|
51
|
+
}
|
|
52
|
+
else if (UniversalAddress.instanceof(address)) {
|
|
53
|
+
this.address = address.toUint8Array();
|
|
54
|
+
}
|
|
55
|
+
else if (typeof address === "string") {
|
|
56
|
+
// If we've got an address of the form `0x1234...::module::...` then
|
|
57
|
+
// stuff anything after the first `::` into the module field
|
|
58
|
+
// and continue processing the address
|
|
59
|
+
if (isValidSuiType(address)) {
|
|
60
|
+
const chunks = address.split(SUI_SEPARATOR);
|
|
61
|
+
this.module = chunks.slice(1).join(SUI_SEPARATOR);
|
|
62
|
+
address = chunks[0];
|
|
63
|
+
}
|
|
64
|
+
address = ensureFullSuiAddress(address);
|
|
65
|
+
if (!encoding.hex.valid(address))
|
|
66
|
+
throw new Error("Invalid Sui address: " + address);
|
|
67
|
+
this.address = encoding.hex.decode(address);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
this.address = address;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
unwrap() {
|
|
74
|
+
const packageId = this.getPackageId();
|
|
75
|
+
const module = this.module ? SUI_SEPARATOR + this.module : "";
|
|
76
|
+
return `0x${packageId}${module}`;
|
|
77
|
+
}
|
|
78
|
+
toString() {
|
|
79
|
+
return this.unwrap();
|
|
80
|
+
}
|
|
81
|
+
toNative() {
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
toUint8Array() {
|
|
85
|
+
return this.address;
|
|
86
|
+
}
|
|
87
|
+
toUniversalAddress() {
|
|
88
|
+
return new UniversalAddress(this.toUint8Array());
|
|
89
|
+
}
|
|
90
|
+
getPackageId() {
|
|
91
|
+
return encoding.hex.encode(this.address, true);
|
|
92
|
+
}
|
|
93
|
+
getCoinType() {
|
|
94
|
+
return [this.getPackageId(), "coin", "COIN"].join(SUI_SEPARATOR);
|
|
95
|
+
}
|
|
96
|
+
static instanceof(address) {
|
|
97
|
+
return address.constructor.platform === SuiAddress.platform;
|
|
98
|
+
}
|
|
99
|
+
equals(other) {
|
|
100
|
+
if (SuiAddress.instanceof(other)) {
|
|
101
|
+
return other.unwrap() === this.unwrap();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return this.toUniversalAddress().equals(other);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
registerNative(_platform, SuiAddress);
|
|
109
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Chain, ChainContext, Network } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { SuiChains } from "./types";
|
|
3
|
+
export declare class SuiChain<N extends Network = Network, C extends Chain = SuiChains> extends ChainContext<N, C> {
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,qBAAa,QAAQ,CACnB,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,KAAK,GAAG,SAAS,CAC3B,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAW,MAAM,kCAAkC,CAAC;AAGhF,MAAM,OAAO,QAGX,SAAQ,YAAkB;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,OAAO,CAAC;AAClC,eAAO,MAAM,QAAQ,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAClC,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Balances, Chain, ChainsConfig, Network, PlatformContext, SignedTx, StaticPlatformMethods, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
|
|
2
|
+
import { SuiClient } from "@mysten/sui.js/client";
|
|
3
|
+
import { SuiChain } from "./chain";
|
|
4
|
+
import { AnySuiAddress, SuiChains, SuiPlatformType } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* @category Sui
|
|
7
|
+
*/
|
|
8
|
+
export declare class SuiPlatform<N extends Network> extends PlatformContext<N, SuiPlatformType> implements StaticPlatformMethods<SuiPlatformType, typeof SuiPlatform> {
|
|
9
|
+
static _platform: SuiPlatformType;
|
|
10
|
+
constructor(network: N, _config?: ChainsConfig<N, SuiPlatformType>);
|
|
11
|
+
getRpc<C extends SuiChains>(chain: C): SuiClient;
|
|
12
|
+
getChain<C extends SuiChains>(chain: C): SuiChain<N, C>;
|
|
13
|
+
static nativeTokenId<N extends Network, C extends SuiChains>(network: N, chain: C): TokenId<C>;
|
|
14
|
+
static isNativeTokenId<N extends Network, C extends SuiChains>(network: N, chain: C, tokenId: TokenId): boolean;
|
|
15
|
+
static isSupportedChain(chain: Chain): boolean;
|
|
16
|
+
static getDecimals(chain: Chain, rpc: SuiClient, token: AnySuiAddress): Promise<number>;
|
|
17
|
+
static getBalance(chain: Chain, rpc: SuiClient, walletAddr: string, token: AnySuiAddress): Promise<bigint | null>;
|
|
18
|
+
static getBalances(chain: Chain, rpc: SuiClient, walletAddr: string, tokens: AnySuiAddress[]): Promise<Balances>;
|
|
19
|
+
static sendWait(chain: Chain, rpc: SuiClient, stxns: SignedTx[]): Promise<TxHash[]>;
|
|
20
|
+
static getLatestBlock(rpc: SuiClient): Promise<number>;
|
|
21
|
+
static getLatestFinalizedBlock(rpc: SuiClient): Promise<number>;
|
|
22
|
+
static chainFromChainId(chainId: string): [Network, SuiChains];
|
|
23
|
+
static chainFromRpc(rpc: SuiClient): Promise<[Network, SuiChains]>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=platform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,OAAO,EACP,eAAe,EACf,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,MAAM,EAOP,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAa,MAAM,SAAS,CAAC;AAG/E;;GAEG;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,OAAO,CACxC,SAAQ,eAAe,CAAC,CAAC,EAAE,eAAe,CAC1C,YAAW,qBAAqB,CAAC,eAAe,EAAE,OAAO,WAAW,CAAC;IAErE,MAAM,CAAC,SAAS,EAAE,eAAe,CAAa;gBAElC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC;IAIlE,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS;IAKhD,QAAQ,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IAKvD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM9F,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,EAC3D,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,GACf,OAAO;IAOV,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;WAKjC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;WAiBhF,UAAU,CACrB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAeZ,WAAW,CACtB,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EAAE,GACtB,OAAO,CAAC,QAAQ,CAAC;WAWP,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAU5E,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;WAG/C,uBAAuB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC;WAYjD,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CAIzE"}
|