@wormhole-foundation/sdk-sui 4.23.0 → 5.0.0-beta.1
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/esm/address.d.ts +1 -0
- package/dist/esm/address.d.ts.map +1 -1
- package/dist/esm/address.js +5 -0
- package/dist/esm/address.js.map +1 -1
- package/dist/esm/platform.d.ts +10 -10
- package/dist/esm/platform.d.ts.map +1 -1
- package/dist/esm/platform.js +48 -46
- package/dist/esm/platform.js.map +1 -1
- package/dist/esm/signer.d.ts +3 -3
- package/dist/esm/signer.d.ts.map +1 -1
- package/dist/esm/signer.js +2 -1
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/types.d.ts +30 -12
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +23 -9
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/unsignedTransaction.d.ts +1 -1
- package/dist/esm/unsignedTransaction.d.ts.map +1 -1
- package/dist/esm/utils.d.ts +35 -8
- package/dist/esm/utils.d.ts.map +1 -1
- package/dist/esm/utils.js +90 -103
- package/dist/esm/utils.js.map +1 -1
- package/package.json +16 -49
- package/dist/cjs/address.d.ts +0 -35
- package/dist/cjs/address.d.ts.map +0 -1
- package/dist/cjs/address.js +0 -127
- package/dist/cjs/address.js.map +0 -1
- package/dist/cjs/chain.d.ts +0 -6
- package/dist/cjs/chain.d.ts.map +0 -1
- package/dist/cjs/chain.js +0 -8
- package/dist/cjs/chain.js.map +0 -1
- package/dist/cjs/constants.d.ts +0 -3
- package/dist/cjs/constants.d.ts.map +0 -1
- package/dist/cjs/constants.js +0 -6
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -9
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -25
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/platform.d.ts +0 -30
- package/dist/cjs/platform.d.ts.map +0 -1
- package/dist/cjs/platform.js +0 -136
- package/dist/cjs/platform.js.map +0 -1
- package/dist/cjs/signer.d.ts +0 -16
- package/dist/cjs/signer.d.ts.map +0 -1
- package/dist/cjs/signer.js +0 -60
- package/dist/cjs/signer.js.map +0 -1
- package/dist/cjs/types.d.ts +0 -33
- package/dist/cjs/types.d.ts.map +0 -1
- package/dist/cjs/types.js +0 -44
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/unsignedTransaction.d.ts +0 -12
- package/dist/cjs/unsignedTransaction.d.ts.map +0 -1
- package/dist/cjs/unsignedTransaction.js +0 -19
- package/dist/cjs/unsignedTransaction.js.map +0 -1
- package/dist/cjs/utils.d.ts +0 -14
- package/dist/cjs/utils.d.ts.map +0 -1
- package/dist/cjs/utils.js +0 -211
- package/dist/cjs/utils.js.map +0 -1
package/dist/esm/utils.js
CHANGED
|
@@ -1,90 +1,113 @@
|
|
|
1
1
|
import { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
import { bcs } from "@mysten/sui/bcs";
|
|
2
3
|
import { isValidSuiAddress, normalizeSuiAddress, normalizeSuiObjectId } from "@mysten/sui/utils";
|
|
3
4
|
import { encoding } from "@wormhole-foundation/sdk-connect";
|
|
4
|
-
import { getFieldsFromObjectResponse, isMoveStructObject,
|
|
5
|
+
import { getFieldsFromObjectResponse, isMoveStructObject, isSameType } from "./types.js";
|
|
5
6
|
import { getPackageIdFromType, normalizeSuiType } from "./address.js";
|
|
6
7
|
export const UPGRADE_CAP_TYPE = "0x2::package::UpgradeCap";
|
|
7
8
|
//
|
|
9
|
+
// gRPC dynamic-field name BCS encoders.
|
|
10
|
+
//
|
|
11
|
+
// The gRPC core API requires dynamic-field names as `{ type, bcs }` where `bcs` is the
|
|
12
|
+
// BCS-encoded key value (the JSON-RPC `name.value` is gone). Helpers below cover the key
|
|
13
|
+
// shapes used across the Sui protocols.
|
|
14
|
+
//
|
|
15
|
+
/** Move struct `{ dummy_field: bool=false }` (e.g. `token_registry::Key<T>`) → BCS `[0]`. */
|
|
16
|
+
export const dummyFieldName = (type) => ({ type, bcs: new Uint8Array([0]) });
|
|
17
|
+
/** `token_registry::CoinTypeKey { chain: u16, addr: vector<u8> }`. */
|
|
18
|
+
const CoinTypeKeyBcs = bcs.struct("CoinTypeKey", {
|
|
19
|
+
chain: bcs.u16(),
|
|
20
|
+
addr: bcs.vector(bcs.u8()),
|
|
21
|
+
});
|
|
22
|
+
export const coinTypeKeyName = (type, chain, addr) => ({
|
|
23
|
+
type,
|
|
24
|
+
bcs: CoinTypeKeyBcs.serialize({ chain, addr: Array.from(addr) }).toBytes(),
|
|
25
|
+
});
|
|
26
|
+
/** A `vector<u8>` key (e.g. relayer-fee keys). */
|
|
27
|
+
export const bytesVectorName = (type, bytes) => ({
|
|
28
|
+
type,
|
|
29
|
+
bcs: bcs.vector(bcs.u8()).serialize(Array.from(bytes)).toBytes(),
|
|
30
|
+
});
|
|
31
|
+
/** A `u16` key (e.g. chain id). */
|
|
32
|
+
export const u16Name = (type, value) => ({
|
|
33
|
+
type,
|
|
34
|
+
bcs: bcs.u16().serialize(value).toBytes(),
|
|
35
|
+
});
|
|
36
|
+
//
|
|
8
37
|
// Utils to fetch data from Sui
|
|
9
38
|
//
|
|
39
|
+
/**
|
|
40
|
+
* Fetch a dynamic field's flat value (`object.json.value`) by BCS-encoded name, or null
|
|
41
|
+
* if the field does not exist.
|
|
42
|
+
*/
|
|
43
|
+
export const getDynamicFieldValue = async (provider, parentId, name) => {
|
|
44
|
+
try {
|
|
45
|
+
const { dynamicField } = await provider.getDynamicField({ parentId, name });
|
|
46
|
+
const { object } = await provider.getObject({
|
|
47
|
+
objectId: dynamicField.fieldId,
|
|
48
|
+
include: { json: true },
|
|
49
|
+
});
|
|
50
|
+
const json = (object?.json ?? null);
|
|
51
|
+
return json && "value" in json ? json["value"] : null;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// missing dynamic field → treat as not found
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
10
58
|
export const getOriginalPackageId = async (provider, stateObjectId) => {
|
|
11
|
-
const {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
if (error)
|
|
16
|
-
throw new Error("Error getting object: " + error);
|
|
17
|
-
if (!data || !isMoveStructStruct(data.content))
|
|
18
|
-
throw new Error(`Cannot get oject for state id ${stateObjectId}: ` + data);
|
|
19
|
-
return getPackageIdFromType(data.content.type);
|
|
59
|
+
const { object } = await provider.getObject({ objectId: stateObjectId, include: { json: true } });
|
|
60
|
+
if (!object || !object.type)
|
|
61
|
+
throw new Error(`Cannot get object for state id ${stateObjectId}`);
|
|
62
|
+
return getPackageIdFromType(object.type);
|
|
20
63
|
};
|
|
21
64
|
export const getObjectFields = async (provider, objectId) => {
|
|
22
65
|
if (!isValidSuiAddress(objectId)) {
|
|
23
66
|
throw new Error(`Invalid object ID: ${objectId}`);
|
|
24
67
|
}
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
options: {
|
|
28
|
-
showContent: true,
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
return getFieldsFromObjectResponse(res);
|
|
68
|
+
const { object } = await provider.getObject({ objectId, include: { json: true } });
|
|
69
|
+
return getFieldsFromObjectResponse(object);
|
|
32
70
|
};
|
|
33
71
|
export const getPackageId = async (provider, objectId) => {
|
|
34
72
|
let currentPackage;
|
|
35
73
|
let nextCursor;
|
|
36
74
|
do {
|
|
37
|
-
const dynamicFields = await provider.
|
|
75
|
+
const dynamicFields = await provider.listDynamicFields({
|
|
38
76
|
parentId: objectId,
|
|
39
77
|
cursor: nextCursor,
|
|
40
78
|
});
|
|
41
|
-
currentPackage = dynamicFields.
|
|
42
|
-
nextCursor = dynamicFields.hasNextPage ? dynamicFields.
|
|
79
|
+
currentPackage = dynamicFields.dynamicFields.find((field) => field.name.type.endsWith("CurrentPackage"));
|
|
80
|
+
nextCursor = dynamicFields.hasNextPage ? dynamicFields.cursor : null;
|
|
43
81
|
} while (nextCursor && !currentPackage);
|
|
44
82
|
if (!currentPackage)
|
|
45
83
|
throw new Error("CurrentPackage not found");
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
showContent: true,
|
|
50
|
-
},
|
|
84
|
+
const { object } = await provider.getObject({
|
|
85
|
+
objectId: currentPackage.fieldId,
|
|
86
|
+
include: { json: true },
|
|
51
87
|
});
|
|
52
|
-
const fields = getFieldsFromObjectResponse(
|
|
53
|
-
if (!fields || !isMoveStructObject(fields))
|
|
54
|
-
throw new Error("Unable to get fields from object response");
|
|
55
|
-
if (!("value" in fields) || !isMoveStructStruct(fields["value"]))
|
|
88
|
+
const fields = getFieldsFromObjectResponse(object);
|
|
89
|
+
if (!fields || !isMoveStructObject(fields["value"]))
|
|
56
90
|
throw new Error("Unable to get package id");
|
|
57
|
-
return fields["value"]
|
|
91
|
+
return fields["value"]["package"];
|
|
58
92
|
};
|
|
59
93
|
export const getOldestEmitterCapObjectId = async (provider, coreBridgePackageId, owner) => {
|
|
60
94
|
let oldestVersion = null;
|
|
61
95
|
let oldestObjectId = null;
|
|
62
|
-
let response = null;
|
|
63
96
|
let nextCursor;
|
|
64
97
|
do {
|
|
65
|
-
response = await provider.
|
|
98
|
+
const response = await provider.listOwnedObjects({
|
|
66
99
|
owner,
|
|
67
|
-
|
|
68
|
-
StructType: `${coreBridgePackageId}::emitter::EmitterCap`,
|
|
69
|
-
},
|
|
70
|
-
options: {
|
|
71
|
-
showContent: true,
|
|
72
|
-
},
|
|
100
|
+
type: `${coreBridgePackageId}::emitter::EmitterCap`,
|
|
73
101
|
cursor: nextCursor,
|
|
74
102
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
for (const objectResponse of response.data) {
|
|
79
|
-
if (!objectResponse.data)
|
|
80
|
-
continue;
|
|
81
|
-
const { version, objectId } = objectResponse.data;
|
|
103
|
+
for (const obj of response.objects) {
|
|
104
|
+
const { version, objectId } = obj;
|
|
82
105
|
if (oldestVersion === null || version < oldestVersion) {
|
|
83
106
|
oldestVersion = version;
|
|
84
107
|
oldestObjectId = objectId;
|
|
85
108
|
}
|
|
86
109
|
}
|
|
87
|
-
nextCursor = response.hasNextPage ? response.
|
|
110
|
+
nextCursor = response.hasNextPage ? response.cursor : null;
|
|
88
111
|
} while (nextCursor);
|
|
89
112
|
return oldestObjectId;
|
|
90
113
|
};
|
|
@@ -93,83 +116,47 @@ export const getOwnedObjectId = async (provider, owner, type) => {
|
|
|
93
116
|
if (isSameType(type, UPGRADE_CAP_TYPE)) {
|
|
94
117
|
throw new Error("`getOwnedObjectId` should not be used to get the object ID of an `UpgradeCap`. Use `getUpgradeCapObjectId` instead.");
|
|
95
118
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
},
|
|
103
|
-
});
|
|
104
|
-
if (!res || !res.data) {
|
|
105
|
-
throw new Error("Failed to get owned objects");
|
|
106
|
-
}
|
|
107
|
-
const objects = res.data.filter((o) => o.data?.objectId);
|
|
108
|
-
if (!objects || objects.length === 0)
|
|
109
|
-
return null;
|
|
110
|
-
if (objects.length === 1) {
|
|
111
|
-
return objects[0].data?.objectId ?? null;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
const objectsStr = JSON.stringify(objects, null, 2);
|
|
115
|
-
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}`);
|
|
116
|
-
}
|
|
119
|
+
const res = await provider.listOwnedObjects({ owner, type });
|
|
120
|
+
const objects = res.objects.filter((o) => o.objectId);
|
|
121
|
+
if (objects.length === 0)
|
|
122
|
+
return null;
|
|
123
|
+
if (objects.length === 1) {
|
|
124
|
+
return objects[0].objectId ?? null;
|
|
117
125
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
if (error && is504HttpError) {
|
|
122
|
-
return getOwnedObjectIdPaginated(provider, owner, type);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
throw error;
|
|
126
|
-
}
|
|
126
|
+
else {
|
|
127
|
+
const objectsStr = JSON.stringify(objects, null, 2);
|
|
128
|
+
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
129
|
}
|
|
128
130
|
};
|
|
129
131
|
export const getOwnedObjectIdPaginated = async (provider, owner, type, cursor) => {
|
|
130
|
-
const res = await provider.
|
|
131
|
-
|
|
132
|
-
filter: undefined, // Filter must be undefined to avoid 504 responses
|
|
133
|
-
cursor: cursor || undefined,
|
|
134
|
-
options: {
|
|
135
|
-
showType: true,
|
|
136
|
-
},
|
|
137
|
-
});
|
|
138
|
-
if (!res || !res.data) {
|
|
139
|
-
throw new Error("Could not fetch owned object id");
|
|
140
|
-
}
|
|
141
|
-
const object = res.data.find((d) => isSameType(d.data?.type || "", type));
|
|
132
|
+
const res = await provider.listOwnedObjects({ owner, cursor: cursor || null });
|
|
133
|
+
const object = res.objects.find((d) => isSameType(d.type || "", type));
|
|
142
134
|
if (!object && res.hasNextPage) {
|
|
143
|
-
return getOwnedObjectIdPaginated(provider, owner, type, res.
|
|
135
|
+
return getOwnedObjectIdPaginated(provider, owner, type, res.cursor);
|
|
144
136
|
}
|
|
145
137
|
else if (!object && !res.hasNextPage) {
|
|
146
138
|
return null;
|
|
147
139
|
}
|
|
148
140
|
else {
|
|
149
|
-
return object?.
|
|
141
|
+
return object?.objectId ?? null;
|
|
150
142
|
}
|
|
151
143
|
};
|
|
152
144
|
export const getUpgradeCapObjectId = async (provider, owner, packageId) => {
|
|
153
|
-
const res = await provider.
|
|
145
|
+
const res = await provider.listOwnedObjects({
|
|
154
146
|
owner,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
showContent: true,
|
|
158
|
-
},
|
|
147
|
+
type: normalizeSuiType(UPGRADE_CAP_TYPE),
|
|
148
|
+
include: { json: true },
|
|
159
149
|
});
|
|
160
|
-
|
|
161
|
-
throw new Error("Failed to get upgrade caps");
|
|
162
|
-
}
|
|
163
|
-
const objects = res.data.filter((o) => {
|
|
150
|
+
const objects = res.objects.filter((o) => {
|
|
164
151
|
const fields = getFieldsFromObjectResponse(o);
|
|
165
|
-
return (
|
|
166
|
-
normalizeSuiAddress(fields
|
|
152
|
+
return (isMoveStructObject(fields) &&
|
|
153
|
+
normalizeSuiAddress(fields["package"]) === normalizeSuiAddress(packageId));
|
|
167
154
|
});
|
|
168
|
-
if (
|
|
155
|
+
if (objects.length === 0)
|
|
169
156
|
return null;
|
|
170
157
|
if (objects.length === 1) {
|
|
171
158
|
// We've found the object we're looking for
|
|
172
|
-
return objects[0].
|
|
159
|
+
return objects[0].objectId ?? null;
|
|
173
160
|
}
|
|
174
161
|
else {
|
|
175
162
|
const objectsStr = JSON.stringify(objects, null, 2);
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wormhole-foundation/sdk-sui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-beta.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/wormhole-foundation/wormhole-sdk-ts.git"
|
|
@@ -13,13 +13,12 @@
|
|
|
13
13
|
"test": "tests"
|
|
14
14
|
},
|
|
15
15
|
"license": "Apache-2.0",
|
|
16
|
-
"main": "./dist/
|
|
17
|
-
"types": "./dist/
|
|
16
|
+
"main": "./dist/esm/index.js",
|
|
17
|
+
"types": "./dist/esm/index.d.ts",
|
|
18
18
|
"module": "./dist/esm/index.js",
|
|
19
19
|
"description": "SDK for Sui chains, used in conjunction with @wormhole-foundation/sdk",
|
|
20
20
|
"files": [
|
|
21
|
-
"dist/esm"
|
|
22
|
-
"dist/cjs"
|
|
21
|
+
"dist/esm"
|
|
23
22
|
],
|
|
24
23
|
"keywords": [
|
|
25
24
|
"wormhole",
|
|
@@ -29,74 +28,42 @@
|
|
|
29
28
|
"sui"
|
|
30
29
|
],
|
|
31
30
|
"engines": {
|
|
32
|
-
"node": ">=
|
|
31
|
+
"node": ">=20.19"
|
|
33
32
|
},
|
|
34
33
|
"sideEffects": [
|
|
35
|
-
"./dist/cjs/address.js",
|
|
36
34
|
"./dist/esm/address.js"
|
|
37
35
|
],
|
|
38
36
|
"scripts": {
|
|
39
|
-
"build:cjs": "tsc -p ./tsconfig.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
|
|
40
37
|
"build:esm": "tsc -p ./tsconfig.esm.json",
|
|
41
|
-
"build": "npm run build:esm
|
|
38
|
+
"build": "npm run build:esm",
|
|
42
39
|
"rebuild": "npm run clean && npm run build",
|
|
43
40
|
"clean": "rm -rf ./dist && rm -rf ./.turbo",
|
|
44
41
|
"lint": "npm run prettier && eslint --fix ./src --ext .ts",
|
|
45
42
|
"prettier": "prettier --write ./src",
|
|
46
|
-
"test": "jest --config ./jest.config.ts"
|
|
43
|
+
"test": "NODE_OPTIONS=--experimental-vm-modules jest --config ./jest.config.ts"
|
|
47
44
|
},
|
|
48
45
|
"dependencies": {
|
|
49
|
-
"@wormhole-foundation/sdk-connect": "
|
|
50
|
-
"@mysten/sui": "^
|
|
46
|
+
"@wormhole-foundation/sdk-connect": "5.0.0-beta.1",
|
|
47
|
+
"@mysten/sui": "^2.17.0"
|
|
51
48
|
},
|
|
52
49
|
"type": "module",
|
|
53
50
|
"typesVersions": {
|
|
54
51
|
"*": {
|
|
55
52
|
"*": [
|
|
56
|
-
"dist/
|
|
53
|
+
"dist/esm/index.d.ts"
|
|
57
54
|
]
|
|
58
55
|
}
|
|
59
56
|
},
|
|
60
57
|
"exports": {
|
|
61
58
|
".": {
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"types": "./dist/cjs/index.d.ts",
|
|
66
|
-
"default": "./dist/cjs/index.js"
|
|
67
|
-
},
|
|
68
|
-
"import": {
|
|
69
|
-
"types": "./dist/esm/index.d.ts",
|
|
70
|
-
"default": "./dist/esm/index.js"
|
|
71
|
-
},
|
|
72
|
-
"require": {
|
|
73
|
-
"types": "./dist/cjs/index.d.ts",
|
|
74
|
-
"default": "./dist/cjs/index.js"
|
|
75
|
-
},
|
|
76
|
-
"default": {
|
|
77
|
-
"types": "./dist/cjs/index.d.ts",
|
|
78
|
-
"default": "./dist/cjs/index.js"
|
|
79
|
-
}
|
|
59
|
+
"types": "./dist/esm/index.d.ts",
|
|
60
|
+
"import": "./dist/esm/index.js",
|
|
61
|
+
"default": "./dist/esm/index.js"
|
|
80
62
|
},
|
|
81
63
|
"./address": {
|
|
82
|
-
"
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"types": "./dist/cjs/address.d.ts",
|
|
86
|
-
"default": "./dist/cjs/address.js"
|
|
87
|
-
},
|
|
88
|
-
"import": {
|
|
89
|
-
"types": "./dist/esm/address.d.ts",
|
|
90
|
-
"default": "./dist/esm/address.js"
|
|
91
|
-
},
|
|
92
|
-
"require": {
|
|
93
|
-
"types": "./dist/cjs/address.d.ts",
|
|
94
|
-
"default": "./dist/cjs/address.js"
|
|
95
|
-
},
|
|
96
|
-
"default": {
|
|
97
|
-
"types": "./dist/cjs/address.d.ts",
|
|
98
|
-
"default": "./dist/cjs/address.js"
|
|
99
|
-
}
|
|
64
|
+
"types": "./dist/esm/address.d.ts",
|
|
65
|
+
"import": "./dist/esm/address.js",
|
|
66
|
+
"default": "./dist/esm/address.js"
|
|
100
67
|
}
|
|
101
68
|
}
|
|
102
69
|
}
|
package/dist/cjs/address.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { Address } from "@wormhole-foundation/sdk-connect";
|
|
2
|
-
import { UniversalAddress } from "@wormhole-foundation/sdk-connect";
|
|
3
|
-
import type { AnySuiAddress } from "./types.js";
|
|
4
|
-
export declare const SuiZeroAddress = "0x";
|
|
5
|
-
export declare const isValidSuiType: (str: string) => boolean;
|
|
6
|
-
export declare const trimSuiType: (type: string) => string;
|
|
7
|
-
export declare function zpadSuiAddress(address: string): string;
|
|
8
|
-
export declare const normalizeSuiType: (type: string) => string;
|
|
9
|
-
export declare const getCoinTypeFromPackageId: (packageId: string) => string;
|
|
10
|
-
export declare const getPackageIdFromType: (type: string) => string;
|
|
11
|
-
export declare const getTableKeyType: (tableType: string) => string;
|
|
12
|
-
export declare class SuiAddress implements Address {
|
|
13
|
-
static readonly byteSize = 32;
|
|
14
|
-
static readonly platform = "Sui";
|
|
15
|
-
readonly address: Uint8Array;
|
|
16
|
-
readonly module: string | undefined;
|
|
17
|
-
constructor(address: AnySuiAddress);
|
|
18
|
-
unwrap(): string;
|
|
19
|
-
toString(): string;
|
|
20
|
-
toNative(): this;
|
|
21
|
-
toUint8Array(): Uint8Array;
|
|
22
|
-
toUniversalAddress(): UniversalAddress;
|
|
23
|
-
getPackageId(): string;
|
|
24
|
-
getCoinType(): string;
|
|
25
|
-
static instanceof(address: any): address is SuiAddress;
|
|
26
|
-
equals(other: SuiAddress | UniversalAddress): boolean;
|
|
27
|
-
}
|
|
28
|
-
declare module "@wormhole-foundation/sdk-connect" {
|
|
29
|
-
namespace WormholeRegistry {
|
|
30
|
-
interface PlatformToNativeAddressMapping {
|
|
31
|
-
Sui: SuiAddress;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=address.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAA4B,MAAM,kCAAkC,CAAC;AAG9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,cAAc,QAAS,MAAM,KAAG,OAAoD,CAAC;AAGlG,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,MAAyC,CAAC;AAGrF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,UAU7C;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,SAAS;IAGjC,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;IAarB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,UAAU;IAItD,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB,GAAG,OAAO;CAOtD;AAED,OAAO,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,gBAAgB,CAAC;QAChC,UAAU,8BAA8B;YACtC,GAAG,EAAE,UAAU,CAAC;SACjB;KACF;CACF"}
|
package/dist/cjs/address.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SuiAddress = exports.getTableKeyType = exports.getPackageIdFromType = exports.getCoinTypeFromPackageId = exports.normalizeSuiType = exports.zpadSuiAddress = exports.trimSuiType = exports.isValidSuiType = exports.SuiZeroAddress = void 0;
|
|
4
|
-
const utils_1 = require("@mysten/sui/utils");
|
|
5
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
6
|
-
const constants_js_1 = require("./constants.js");
|
|
7
|
-
exports.SuiZeroAddress = "0x";
|
|
8
|
-
const isValidSuiType = (str) => /^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(str);
|
|
9
|
-
exports.isValidSuiType = isValidSuiType;
|
|
10
|
-
// Removes leading 0s from the address
|
|
11
|
-
const trimSuiType = (type) => type.replace(/(0x)(0*)/g, "0x");
|
|
12
|
-
exports.trimSuiType = trimSuiType;
|
|
13
|
-
// Adds leading 0s to the address to make it 32 bytes long
|
|
14
|
-
function zpadSuiAddress(address) {
|
|
15
|
-
address = address.startsWith("0x") ? address.slice(2) : address;
|
|
16
|
-
address = address.length % 2 === 0 ? address : "0" + address;
|
|
17
|
-
const zpadded = address.length === 64
|
|
18
|
-
? address
|
|
19
|
-
: sdk_connect_1.encoding.hex.encode(sdk_connect_1.encoding.bytes.zpad(sdk_connect_1.encoding.hex.decode(address), 32));
|
|
20
|
-
return `0x${zpadded}`;
|
|
21
|
-
}
|
|
22
|
-
exports.zpadSuiAddress = zpadSuiAddress;
|
|
23
|
-
const normalizeSuiType = (type) => {
|
|
24
|
-
const tokens = type.split(constants_js_1.SUI_SEPARATOR);
|
|
25
|
-
if (tokens.length !== 3)
|
|
26
|
-
throw new Error(`Invalid Sui type: ${type}`);
|
|
27
|
-
return [(0, utils_1.normalizeSuiAddress)(tokens[0]), tokens[1], tokens[2]].join(constants_js_1.SUI_SEPARATOR);
|
|
28
|
-
};
|
|
29
|
-
exports.normalizeSuiType = normalizeSuiType;
|
|
30
|
-
const getCoinTypeFromPackageId = (packageId) => {
|
|
31
|
-
return new SuiAddress(packageId).getCoinType();
|
|
32
|
-
};
|
|
33
|
-
exports.getCoinTypeFromPackageId = getCoinTypeFromPackageId;
|
|
34
|
-
const getPackageIdFromType = (type) => {
|
|
35
|
-
return new SuiAddress(type).getPackageId();
|
|
36
|
-
};
|
|
37
|
-
exports.getPackageIdFromType = getPackageIdFromType;
|
|
38
|
-
const getTableKeyType = (tableType) => {
|
|
39
|
-
const match = (0, exports.trimSuiType)(tableType).match(/0x2::table::Table<(.*)>/);
|
|
40
|
-
if (!match)
|
|
41
|
-
throw new Error(`Invalid table type: ${tableType}`);
|
|
42
|
-
if (match.length < 2)
|
|
43
|
-
throw new Error(`Invalid table type: ${tableType}`);
|
|
44
|
-
const [keyType] = match[1].split(",");
|
|
45
|
-
if (!keyType || !(0, exports.isValidSuiType)(keyType))
|
|
46
|
-
throw new Error(`Invalid key type: ${keyType}`);
|
|
47
|
-
return keyType;
|
|
48
|
-
};
|
|
49
|
-
exports.getTableKeyType = getTableKeyType;
|
|
50
|
-
class SuiAddress {
|
|
51
|
-
static byteSize = 32;
|
|
52
|
-
static platform = "Sui";
|
|
53
|
-
// Full 32 bytes of Address
|
|
54
|
-
address;
|
|
55
|
-
// Optional module and contract name
|
|
56
|
-
module;
|
|
57
|
-
constructor(address) {
|
|
58
|
-
if (SuiAddress.instanceof(address)) {
|
|
59
|
-
this.address = address.address;
|
|
60
|
-
this.module = address.module;
|
|
61
|
-
}
|
|
62
|
-
else if (sdk_connect_1.UniversalAddress.instanceof(address)) {
|
|
63
|
-
this.address = address.toUint8Array();
|
|
64
|
-
}
|
|
65
|
-
else if (typeof address === "string") {
|
|
66
|
-
// If we've got an address of the form `0x1234...::module::...` then
|
|
67
|
-
// stuff anything after the first `::` into the module field
|
|
68
|
-
// and continue processing the address
|
|
69
|
-
if ((0, exports.isValidSuiType)(address)) {
|
|
70
|
-
const chunks = address.split(constants_js_1.SUI_SEPARATOR);
|
|
71
|
-
this.module = chunks.slice(1).join(constants_js_1.SUI_SEPARATOR);
|
|
72
|
-
address = chunks[0];
|
|
73
|
-
}
|
|
74
|
-
address = zpadSuiAddress(address);
|
|
75
|
-
if (!sdk_connect_1.encoding.hex.valid(address))
|
|
76
|
-
throw new Error("Invalid Sui address: " + address);
|
|
77
|
-
this.address = sdk_connect_1.encoding.hex.decode(address);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.address = address;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
unwrap() {
|
|
84
|
-
const packageId = this.getPackageId();
|
|
85
|
-
const module = this.module ? constants_js_1.SUI_SEPARATOR + this.module : "";
|
|
86
|
-
return `${packageId}${module}`;
|
|
87
|
-
}
|
|
88
|
-
toString() {
|
|
89
|
-
return this.unwrap();
|
|
90
|
-
}
|
|
91
|
-
toNative() {
|
|
92
|
-
return this;
|
|
93
|
-
}
|
|
94
|
-
toUint8Array() {
|
|
95
|
-
return this.address;
|
|
96
|
-
}
|
|
97
|
-
toUniversalAddress() {
|
|
98
|
-
return new sdk_connect_1.UniversalAddress(this.toUint8Array());
|
|
99
|
-
}
|
|
100
|
-
getPackageId() {
|
|
101
|
-
return zpadSuiAddress(sdk_connect_1.encoding.hex.encode(this.address));
|
|
102
|
-
}
|
|
103
|
-
getCoinType() {
|
|
104
|
-
// Special case for the native gas coin
|
|
105
|
-
if (this.module === "sui::SUI") {
|
|
106
|
-
return constants_js_1.SUI_COIN;
|
|
107
|
-
}
|
|
108
|
-
if (!this.module) {
|
|
109
|
-
throw new Error("No module present in Sui token address");
|
|
110
|
-
}
|
|
111
|
-
return this.unwrap();
|
|
112
|
-
}
|
|
113
|
-
static instanceof(address) {
|
|
114
|
-
return address.constructor.platform === SuiAddress.platform;
|
|
115
|
-
}
|
|
116
|
-
equals(other) {
|
|
117
|
-
if (SuiAddress.instanceof(other)) {
|
|
118
|
-
return other.unwrap() === this.unwrap();
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
return this.toUniversalAddress().equals(other);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.SuiAddress = SuiAddress;
|
|
126
|
-
(0, sdk_connect_1.registerNative)("Sui", SuiAddress);
|
|
127
|
-
//# sourceMappingURL=address.js.map
|
package/dist/cjs/address.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/address.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/chain.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Network } from "@wormhole-foundation/sdk-connect";
|
|
2
|
-
import { ChainContext } from "@wormhole-foundation/sdk-connect";
|
|
3
|
-
import type { SuiChains } from "./types.js";
|
|
4
|
-
export declare class SuiChain<N extends Network = Network, C extends SuiChains = SuiChains> extends ChainContext<N, C> {
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=chain.d.ts.map
|
package/dist/cjs/chain.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,QAAQ,CACnB,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,SAAS,GAAG,SAAS,CAC/B,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG"}
|
package/dist/cjs/chain.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SuiChain = void 0;
|
|
4
|
-
const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
|
|
5
|
-
class SuiChain extends sdk_connect_1.ChainContext {
|
|
6
|
-
}
|
|
7
|
-
exports.SuiChain = SuiChain;
|
|
8
|
-
//# sourceMappingURL=chain.js.map
|
package/dist/cjs/chain.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chain.js","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":";;;AACA,kEAAgE;AAGhE,MAAa,QAGX,SAAQ,0BAAkB;CAAG;AAH/B,4BAG+B"}
|
package/dist/cjs/constants.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/cjs/constants.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,IAAI,CAAC;AACrB,QAAA,QAAQ,GAAG,eAAe,CAAC"}
|