@wormhole-foundation/sdk-sui 0.5.0-alpha.2 → 0.5.0-alpha.4

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.
Files changed (41) hide show
  1. package/dist/cjs/address.d.ts +35 -0
  2. package/dist/cjs/address.d.ts.map +1 -0
  3. package/dist/cjs/address.js +122 -0
  4. package/dist/cjs/address.js.map +1 -0
  5. package/dist/cjs/chain.d.ts +6 -0
  6. package/dist/cjs/chain.d.ts.map +1 -0
  7. package/dist/cjs/chain.js +8 -0
  8. package/dist/cjs/chain.js.map +1 -0
  9. package/dist/cjs/constants.d.ts +3 -0
  10. package/dist/cjs/constants.d.ts.map +1 -0
  11. package/dist/cjs/constants.js +6 -0
  12. package/dist/cjs/constants.js.map +1 -0
  13. package/dist/cjs/index.d.ts +9 -0
  14. package/dist/cjs/index.d.ts.map +1 -0
  15. package/dist/cjs/index.js +45 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/platform.d.ts +26 -0
  18. package/dist/cjs/platform.d.ts.map +1 -0
  19. package/dist/cjs/platform.js +110 -0
  20. package/dist/cjs/platform.js.map +1 -0
  21. package/dist/cjs/signer.d.ts +15 -0
  22. package/dist/cjs/signer.d.ts.map +1 -0
  23. package/dist/cjs/signer.js +42 -0
  24. package/dist/cjs/signer.js.map +1 -0
  25. package/dist/cjs/types.d.ts +30 -0
  26. package/dist/cjs/types.d.ts.map +1 -0
  27. package/dist/cjs/types.js +40 -0
  28. package/dist/cjs/types.js.map +1 -0
  29. package/dist/cjs/unsignedTransaction.d.ts +12 -0
  30. package/dist/cjs/unsignedTransaction.d.ts.map +1 -0
  31. package/dist/cjs/unsignedTransaction.js +19 -0
  32. package/dist/cjs/unsignedTransaction.js.map +1 -0
  33. package/dist/cjs/utils.d.ts +15 -0
  34. package/dist/cjs/utils.d.ts.map +1 -0
  35. package/dist/cjs/utils.js +215 -0
  36. package/dist/cjs/utils.js.map +1 -0
  37. package/dist/esm/index.d.ts +6 -6
  38. package/dist/esm/index.d.ts.map +1 -1
  39. package/dist/esm/index.js +5 -5
  40. package/dist/esm/index.js.map +1 -1
  41. package/package.json +15 -6
@@ -0,0 +1,35 @@
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
@@ -0,0 +1 @@
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,EAA4B,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAI9F,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,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,QAAQ,kCAAkC,CAAC;IAChD,UAAiB,gBAAgB,CAAC;QAChC,UAAU,8BAA8B;YACtC,GAAG,EAAE,UAAU,CAAC;SACjB;KACF;CACF"}
@@ -0,0 +1,122 @@
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.js/utils");
5
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
6
+ const constants_js_1 = require("./constants.js");
7
+ const platform_js_1 = require("./platform.js");
8
+ const types_js_1 = require("./types.js");
9
+ exports.SuiZeroAddress = "0x";
10
+ const isValidSuiType = (str) => /^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(str);
11
+ exports.isValidSuiType = isValidSuiType;
12
+ // Removes leading 0s from the address
13
+ const trimSuiType = (type) => type.replace(/(0x)(0*)/g, "0x");
14
+ exports.trimSuiType = trimSuiType;
15
+ // Adds leading 0s to the address to make it 32 bytes long
16
+ function zpadSuiAddress(address) {
17
+ address = address.startsWith("0x") ? address.slice(2) : address;
18
+ address = address.length % 2 === 0 ? address : "0" + address;
19
+ const zpadded = address.length === 64
20
+ ? address
21
+ : sdk_connect_1.encoding.hex.encode(sdk_connect_1.encoding.bytes.zpad(sdk_connect_1.encoding.hex.decode(address), 32));
22
+ return `0x${zpadded}`;
23
+ }
24
+ exports.zpadSuiAddress = zpadSuiAddress;
25
+ const normalizeSuiType = (type) => {
26
+ const tokens = type.split(constants_js_1.SUI_SEPARATOR);
27
+ if (tokens.length !== 3)
28
+ throw new Error(`Invalid Sui type: ${type}`);
29
+ return [(0, utils_1.normalizeSuiAddress)(tokens[0]), tokens[1], tokens[2]].join(constants_js_1.SUI_SEPARATOR);
30
+ };
31
+ exports.normalizeSuiType = normalizeSuiType;
32
+ const getCoinTypeFromPackageId = (packageId) => {
33
+ return new SuiAddress(packageId).getCoinType();
34
+ };
35
+ exports.getCoinTypeFromPackageId = getCoinTypeFromPackageId;
36
+ const getPackageIdFromType = (type) => {
37
+ return new SuiAddress(type).getPackageId();
38
+ };
39
+ exports.getPackageIdFromType = getPackageIdFromType;
40
+ const getTableKeyType = (tableType) => {
41
+ const match = (0, exports.trimSuiType)(tableType).match(/0x2::table::Table<(.*)>/);
42
+ if (!match)
43
+ throw new Error(`Invalid table type: ${tableType}`);
44
+ if (match.length < 2)
45
+ throw new Error(`Invalid table type: ${tableType}`);
46
+ const [keyType] = match[1].split(",");
47
+ if (!keyType || !(0, exports.isValidSuiType)(keyType))
48
+ throw new Error(`Invalid key type: ${keyType}`);
49
+ return keyType;
50
+ };
51
+ exports.getTableKeyType = getTableKeyType;
52
+ class SuiAddress {
53
+ static byteSize = 32;
54
+ static platform = platform_js_1.SuiPlatform._platform;
55
+ // Full 32 bytes of Address
56
+ address;
57
+ // Optional module and contract name
58
+ module;
59
+ constructor(address) {
60
+ if (SuiAddress.instanceof(address)) {
61
+ this.address = address.address;
62
+ this.module = address.module;
63
+ }
64
+ else if (sdk_connect_1.UniversalAddress.instanceof(address)) {
65
+ this.address = address.toUint8Array();
66
+ }
67
+ else if (typeof address === "string") {
68
+ // If we've got an address of the form `0x1234...::module::...` then
69
+ // stuff anything after the first `::` into the module field
70
+ // and continue processing the address
71
+ if ((0, exports.isValidSuiType)(address)) {
72
+ const chunks = address.split(constants_js_1.SUI_SEPARATOR);
73
+ this.module = chunks.slice(1).join(constants_js_1.SUI_SEPARATOR);
74
+ address = chunks[0];
75
+ }
76
+ address = zpadSuiAddress(address);
77
+ if (!sdk_connect_1.encoding.hex.valid(address))
78
+ throw new Error("Invalid Sui address: " + address);
79
+ this.address = sdk_connect_1.encoding.hex.decode(address);
80
+ }
81
+ else {
82
+ this.address = address;
83
+ }
84
+ }
85
+ unwrap() {
86
+ const packageId = this.getPackageId();
87
+ const module = this.module ? constants_js_1.SUI_SEPARATOR + this.module : "";
88
+ return `${packageId}${module}`;
89
+ }
90
+ toString() {
91
+ return this.unwrap();
92
+ }
93
+ toNative() {
94
+ return this;
95
+ }
96
+ toUint8Array() {
97
+ return this.address;
98
+ }
99
+ toUniversalAddress() {
100
+ return new sdk_connect_1.UniversalAddress(this.toUint8Array());
101
+ }
102
+ getPackageId() {
103
+ return zpadSuiAddress(sdk_connect_1.encoding.hex.encode(this.address));
104
+ }
105
+ getCoinType() {
106
+ return [this.getPackageId(), "coin", "COIN"].join(constants_js_1.SUI_SEPARATOR);
107
+ }
108
+ static instanceof(address) {
109
+ return address.constructor.platform === SuiAddress.platform;
110
+ }
111
+ equals(other) {
112
+ if (SuiAddress.instanceof(other)) {
113
+ return other.unwrap() === this.unwrap();
114
+ }
115
+ else {
116
+ return this.toUniversalAddress().equals(other);
117
+ }
118
+ }
119
+ }
120
+ exports.SuiAddress = SuiAddress;
121
+ (0, sdk_connect_1.registerNative)(types_js_1._platform, SuiAddress);
122
+ //# 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,6 @@
1
+ import type { Chain, 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 Chain = SuiChains> extends ChainContext<N, C> {
5
+ }
6
+ //# sourceMappingURL=chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACvE,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,KAAK,GAAG,SAAS,CAC3B,SAAQ,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAAG"}
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,3 @@
1
+ export declare const SUI_SEPARATOR = "::";
2
+ export declare const SUI_COIN = "0x2::sui::SUI";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -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,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SUI_COIN = exports.SUI_SEPARATOR = void 0;
4
+ exports.SUI_SEPARATOR = "::";
5
+ exports.SUI_COIN = "0x2::sui::SUI";
6
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,9 @@
1
+ export { zpadSuiAddress, SuiZeroAddress, isValidSuiType, trimSuiType, normalizeSuiType, getCoinTypeFromPackageId, getPackageIdFromType, getTableKeyType, SuiAddress, } from "./address.js";
2
+ export * from "./unsignedTransaction.js";
3
+ export * from "./platform.js";
4
+ export type { SuiPlatformType, SuiChains, UniversalOrSui, AnySuiAddress, SuiBuildOutput, } from "./types.js";
5
+ export * from "./types.js";
6
+ export * from "./chain.js";
7
+ export * from "./signer.js";
8
+ export { getPackageId, UPGRADE_CAP_TYPE, uint8ArrayToBCS, getOriginalPackageId, getObjectFields, getOldestEmitterCapObjectId, getOwnedObjectId, getOwnedObjectIdPaginated, getUpgradeCapObjectId, publishPackage, newEmitterCap, } from "./utils.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.newEmitterCap = exports.publishPackage = exports.getUpgradeCapObjectId = exports.getOwnedObjectIdPaginated = exports.getOwnedObjectId = exports.getOldestEmitterCapObjectId = exports.getObjectFields = exports.getOriginalPackageId = exports.uint8ArrayToBCS = exports.UPGRADE_CAP_TYPE = exports.getPackageId = exports.SuiAddress = exports.getTableKeyType = exports.getPackageIdFromType = exports.getCoinTypeFromPackageId = exports.normalizeSuiType = exports.trimSuiType = exports.isValidSuiType = exports.SuiZeroAddress = exports.zpadSuiAddress = void 0;
18
+ var address_js_1 = require("./address.js");
19
+ Object.defineProperty(exports, "zpadSuiAddress", { enumerable: true, get: function () { return address_js_1.zpadSuiAddress; } });
20
+ Object.defineProperty(exports, "SuiZeroAddress", { enumerable: true, get: function () { return address_js_1.SuiZeroAddress; } });
21
+ Object.defineProperty(exports, "isValidSuiType", { enumerable: true, get: function () { return address_js_1.isValidSuiType; } });
22
+ Object.defineProperty(exports, "trimSuiType", { enumerable: true, get: function () { return address_js_1.trimSuiType; } });
23
+ Object.defineProperty(exports, "normalizeSuiType", { enumerable: true, get: function () { return address_js_1.normalizeSuiType; } });
24
+ Object.defineProperty(exports, "getCoinTypeFromPackageId", { enumerable: true, get: function () { return address_js_1.getCoinTypeFromPackageId; } });
25
+ Object.defineProperty(exports, "getPackageIdFromType", { enumerable: true, get: function () { return address_js_1.getPackageIdFromType; } });
26
+ Object.defineProperty(exports, "getTableKeyType", { enumerable: true, get: function () { return address_js_1.getTableKeyType; } });
27
+ Object.defineProperty(exports, "SuiAddress", { enumerable: true, get: function () { return address_js_1.SuiAddress; } });
28
+ __exportStar(require("./unsignedTransaction.js"), exports);
29
+ __exportStar(require("./platform.js"), exports);
30
+ __exportStar(require("./types.js"), exports);
31
+ __exportStar(require("./chain.js"), exports);
32
+ __exportStar(require("./signer.js"), exports);
33
+ var utils_js_1 = require("./utils.js");
34
+ Object.defineProperty(exports, "getPackageId", { enumerable: true, get: function () { return utils_js_1.getPackageId; } });
35
+ Object.defineProperty(exports, "UPGRADE_CAP_TYPE", { enumerable: true, get: function () { return utils_js_1.UPGRADE_CAP_TYPE; } });
36
+ Object.defineProperty(exports, "uint8ArrayToBCS", { enumerable: true, get: function () { return utils_js_1.uint8ArrayToBCS; } });
37
+ Object.defineProperty(exports, "getOriginalPackageId", { enumerable: true, get: function () { return utils_js_1.getOriginalPackageId; } });
38
+ Object.defineProperty(exports, "getObjectFields", { enumerable: true, get: function () { return utils_js_1.getObjectFields; } });
39
+ Object.defineProperty(exports, "getOldestEmitterCapObjectId", { enumerable: true, get: function () { return utils_js_1.getOldestEmitterCapObjectId; } });
40
+ Object.defineProperty(exports, "getOwnedObjectId", { enumerable: true, get: function () { return utils_js_1.getOwnedObjectId; } });
41
+ Object.defineProperty(exports, "getOwnedObjectIdPaginated", { enumerable: true, get: function () { return utils_js_1.getOwnedObjectIdPaginated; } });
42
+ Object.defineProperty(exports, "getUpgradeCapObjectId", { enumerable: true, get: function () { return utils_js_1.getUpgradeCapObjectId; } });
43
+ Object.defineProperty(exports, "publishPackage", { enumerable: true, get: function () { return utils_js_1.publishPackage; } });
44
+ Object.defineProperty(exports, "newEmitterCap", { enumerable: true, get: function () { return utils_js_1.newEmitterCap; } });
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAUsB;AATpB,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,4GAAA,cAAc,OAAA;AACd,yGAAA,WAAW,OAAA;AACX,8GAAA,gBAAgB,OAAA;AAChB,sHAAA,wBAAwB,OAAA;AACxB,kHAAA,oBAAoB,OAAA;AACpB,6GAAA,eAAe,OAAA;AACf,wGAAA,UAAU,OAAA;AAEZ,2DAAyC;AACzC,gDAA8B;AAQ9B,6CAA2B;AAC3B,6CAA2B;AAC3B,8CAA4B;AAC5B,uCAYoB;AAXlB,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,gHAAA,oBAAoB,OAAA;AACpB,2GAAA,eAAe,OAAA;AACf,uHAAA,2BAA2B,OAAA;AAC3B,4GAAA,gBAAgB,OAAA;AAChB,qHAAA,yBAAyB,OAAA;AACzB,iHAAA,qBAAqB,OAAA;AACrB,0GAAA,cAAc,OAAA;AACd,yGAAA,aAAa,OAAA"}
@@ -0,0 +1,26 @@
1
+ import type { Balances, Chain, ChainsConfig, Network, SignedTx, StaticPlatformMethods, TokenId, TxHash } from "@wormhole-foundation/sdk-connect";
2
+ import { PlatformContext } from "@wormhole-foundation/sdk-connect";
3
+ import { SuiClient } from "@mysten/sui.js/client";
4
+ import { SuiChain } from "./chain.js";
5
+ import type { AnySuiAddress, SuiChains, SuiPlatformType } from "./types.js";
6
+ /**
7
+ * @category Sui
8
+ */
9
+ export declare class SuiPlatform<N extends Network> extends PlatformContext<N, SuiPlatformType> implements StaticPlatformMethods<SuiPlatformType, typeof SuiPlatform> {
10
+ static _platform: SuiPlatformType;
11
+ constructor(network: N, _config?: ChainsConfig<N, SuiPlatformType>);
12
+ getRpc<C extends SuiChains>(chain: C): SuiClient;
13
+ getChain<C extends SuiChains>(chain: C): SuiChain<N, C>;
14
+ static nativeTokenId<N extends Network, C extends SuiChains>(network: N, chain: C): TokenId<C>;
15
+ static isNativeTokenId<N extends Network, C extends SuiChains>(network: N, chain: C, tokenId: TokenId): boolean;
16
+ static isSupportedChain(chain: Chain): boolean;
17
+ static getDecimals(chain: Chain, rpc: SuiClient, token: AnySuiAddress): Promise<number>;
18
+ static getBalance(chain: Chain, rpc: SuiClient, walletAddr: string, token: AnySuiAddress): Promise<bigint | null>;
19
+ static getBalances(chain: Chain, rpc: SuiClient, walletAddr: string, tokens: AnySuiAddress[]): Promise<Balances>;
20
+ static sendWait(chain: Chain, rpc: SuiClient, stxns: SignedTx[]): Promise<TxHash[]>;
21
+ static getLatestBlock(rpc: SuiClient): Promise<number>;
22
+ static getLatestFinalizedBlock(rpc: SuiClient): Promise<number>;
23
+ static chainFromChainId(chainId: string): [Network, SuiChains];
24
+ static chainFromRpc(rpc: SuiClient): Promise<[Network, SuiChains]>;
25
+ }
26
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,qBAAqB,EACrB,OAAO,EACP,MAAM,EACP,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EAOhB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI5E;;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"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiPlatform = void 0;
4
+ const sdk_connect_1 = require("@wormhole-foundation/sdk-connect");
5
+ const client_1 = require("@mysten/sui.js/client");
6
+ const address_js_1 = require("./address.js");
7
+ const chain_js_1 = require("./chain.js");
8
+ const constants_js_1 = require("./constants.js");
9
+ const types_js_1 = require("./types.js");
10
+ const utils_js_1 = require("./utils.js");
11
+ /**
12
+ * @category Sui
13
+ */
14
+ class SuiPlatform extends sdk_connect_1.PlatformContext {
15
+ static _platform = types_js_1._platform;
16
+ constructor(network, _config) {
17
+ super(network, _config ?? (0, sdk_connect_1.networkPlatformConfigs)(network, SuiPlatform._platform));
18
+ }
19
+ getRpc(chain) {
20
+ if (chain in this.config)
21
+ return new client_1.SuiClient({ url: this.config[chain].rpc });
22
+ throw new Error("No configuration available for chain: " + chain);
23
+ }
24
+ getChain(chain) {
25
+ if (chain in this.config)
26
+ return new chain_js_1.SuiChain(chain, this);
27
+ throw new Error("No configuration available for chain: " + chain);
28
+ }
29
+ static nativeTokenId(network, chain) {
30
+ if (!SuiPlatform.isSupportedChain(chain))
31
+ throw new Error(`invalid chain for ${types_js_1._platform}: ${chain}`);
32
+ return sdk_connect_1.Wormhole.tokenId(chain, constants_js_1.SUI_COIN);
33
+ }
34
+ static isNativeTokenId(network, chain, tokenId) {
35
+ if (!SuiPlatform.isSupportedChain(chain))
36
+ return false;
37
+ if (tokenId.chain !== chain)
38
+ return false;
39
+ const native = this.nativeTokenId(network, chain);
40
+ return native === tokenId;
41
+ }
42
+ static isSupportedChain(chain) {
43
+ const platform = (0, sdk_connect_1.chainToPlatform)(chain);
44
+ return platform === SuiPlatform._platform;
45
+ }
46
+ static async getDecimals(chain, rpc, token) {
47
+ if ((0, sdk_connect_1.isNative)(token))
48
+ return sdk_connect_1.decimals.nativeDecimals(SuiPlatform._platform);
49
+ const parsedAddress = new address_js_1.SuiAddress(token);
50
+ try {
51
+ const fields = await (0, utils_js_1.getObjectFields)(rpc, parsedAddress.toString());
52
+ if (fields && "decimals" in fields)
53
+ return fields["decimals"];
54
+ }
55
+ catch { }
56
+ const metadata = await rpc.getCoinMetadata({ coinType: parsedAddress.getCoinType() });
57
+ if (metadata === null)
58
+ throw new Error(`Can't fetch decimals for token ${parsedAddress.toString()}`);
59
+ return metadata.decimals;
60
+ }
61
+ static async getBalance(chain, rpc, walletAddr, token) {
62
+ if ((0, sdk_connect_1.isNative)(token)) {
63
+ const { totalBalance } = await rpc.getBalance({
64
+ owner: walletAddr,
65
+ });
66
+ return BigInt(totalBalance);
67
+ }
68
+ const { totalBalance } = await rpc.getBalance({
69
+ owner: walletAddr,
70
+ coinType: token.toString(),
71
+ });
72
+ return BigInt(totalBalance);
73
+ }
74
+ static async getBalances(chain, rpc, walletAddr, tokens) {
75
+ const balancesArr = await Promise.all(tokens.map(async (token) => {
76
+ const balance = await this.getBalance(chain, rpc, walletAddr, token);
77
+ const address = (0, sdk_connect_1.isNative)(token) ? "native" : new address_js_1.SuiAddress(token).toString();
78
+ return { [address]: balance };
79
+ }));
80
+ return balancesArr.reduce((obj, item) => Object.assign(obj, item), {});
81
+ }
82
+ static async sendWait(chain, rpc, stxns) {
83
+ const txhashes = [];
84
+ for (const stxn of stxns) {
85
+ const pendingTx = await rpc.executeTransactionBlock(stxn);
86
+ await rpc.waitForTransactionBlock({ digest: pendingTx.digest });
87
+ txhashes.push(pendingTx.digest);
88
+ }
89
+ return txhashes;
90
+ }
91
+ static async getLatestBlock(rpc) {
92
+ return Number(await rpc.getLatestCheckpointSequenceNumber());
93
+ }
94
+ static async getLatestFinalizedBlock(rpc) {
95
+ return this.getLatestBlock(rpc);
96
+ }
97
+ static chainFromChainId(chainId) {
98
+ const networkChainPair = sdk_connect_1.nativeChainIds.platformNativeChainIdToNetworkChain(SuiPlatform._platform, chainId);
99
+ if (networkChainPair === undefined)
100
+ throw new Error(`Unknown native chain id ${chainId}`);
101
+ const [network, chain] = networkChainPair;
102
+ return [network, chain];
103
+ }
104
+ static async chainFromRpc(rpc) {
105
+ const result = await rpc.call("sui_getChainIdentifier", []);
106
+ return this.chainFromChainId(result);
107
+ }
108
+ }
109
+ exports.SuiPlatform = SuiPlatform;
110
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/platform.ts"],"names":[],"mappings":";;;AAUA,kEAQ0C;AAE1C,kDAAkD;AAClD,6CAA0C;AAC1C,yCAAsC;AACtC,iDAA0C;AAE1C,yCAAuC;AACvC,yCAA6C;AAE7C;;GAEG;AAEH,MAAa,WACX,SAAQ,6BAAmC;IAG3C,MAAM,CAAC,SAAS,GAAoB,oBAAS,CAAC;IAE9C,YAAY,OAAU,EAAE,OAA0C;QAChE,KAAK,CAAC,OAAO,EAAE,OAAO,IAAI,IAAA,oCAAsB,EAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAsB,KAAQ;QAClC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,kBAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ,CAAsB,KAAQ;QACpC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,mBAAQ,CAAO,KAAK,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,wCAAwC,GAAG,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,CAAC,aAAa,CAAyC,OAAU,EAAE,KAAQ;QAC/E,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,qBAAqB,oBAAS,KAAK,KAAK,EAAE,CAAC,CAAC;QAC9D,OAAO,sBAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,eAAe,CACpB,OAAU,EACV,KAAQ,EACR,OAAgB;QAEhB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,MAAM,KAAK,OAAO,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAY;QAClC,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,KAAK,CAAC,CAAC;QACxC,OAAO,QAAQ,KAAK,WAAW,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAY,EAAE,GAAc,EAAE,KAAoB;QACzE,IAAI,IAAA,sBAAQ,EAAC,KAAK,CAAC;YAAE,OAAO,sBAAc,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAEjF,MAAM,aAAa,GAAG,IAAI,uBAAU,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAe,EAAC,GAAG,EAAE,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpE,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC;SAC/D;QAAC,MAAM,GAAE;QAEV,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtF,IAAI,QAAQ,KAAK,IAAI;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhF,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CACrB,KAAY,EACZ,GAAc,EACd,UAAkB,EAClB,KAAoB;QAEpB,IAAI,IAAA,sBAAQ,EAAC,KAAK,CAAC,EAAE;YACnB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;gBAC5C,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;YAC5C,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,KAAY,EACZ,GAAc,EACd,UAAkB,EAClB,MAAuB;QAEvB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,IAAA,sBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,uBAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC9E,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC,CACH,CAAC;QACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAY,EAAE,GAAc,EAAE,KAAiB;QACnE,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,GAAG,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAChE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACjC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,GAAc;QACxC,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,iCAAiC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAc;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAe;QACrC,MAAM,gBAAgB,GAAG,4BAAc,CAAC,mCAAmC,CACzE,WAAW,CAAC,SAAS,EACrB,OAAO,CACR,CAAC;QAEF,IAAI,gBAAgB,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QAE1F,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC;QAC1C,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAc;QACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAgB,CAAC,CAAC;IACjD,CAAC;;AA/HH,kCAgIC"}
@@ -0,0 +1,15 @@
1
+ import type { SuiClient } from "@mysten/sui.js/client";
2
+ import { Ed25519Keypair } from "@mysten/sui.js/keypairs/ed25519";
3
+ import type { Network, SignAndSendSigner, Signer, TxHash, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
4
+ import type { SuiChains } from "./types.js";
5
+ export declare function getSuiSigner(rpc: SuiClient, privateKey: string): Promise<Signer>;
6
+ export declare class SuiSigner<N extends Network, C extends SuiChains> implements SignAndSendSigner<N, C> {
7
+ private _chain;
8
+ private _client;
9
+ private _signer;
10
+ constructor(_chain: C, _client: SuiClient, _signer: Ed25519Keypair);
11
+ chain(): C;
12
+ address(): string;
13
+ signAndSend(txns: UnsignedTransaction[]): Promise<TxHash[]>;
14
+ }
15
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EACV,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,MAAM,EACN,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,wBAAsB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGtF;AAGD,qBAAa,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,SAAS,CAAE,YAAW,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAE7F,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,OAAO;gBAFP,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,cAAc;IAGjC,KAAK,IAAI,CAAC;IAIV,OAAO,IAAI,MAAM;IAIX,WAAW,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAelE"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiSigner = exports.getSuiSigner = void 0;
4
+ const ed25519_1 = require("@mysten/sui.js/keypairs/ed25519");
5
+ const platform_js_1 = require("./platform.js");
6
+ async function getSuiSigner(rpc, privateKey) {
7
+ const [, chain] = await platform_js_1.SuiPlatform.chainFromRpc(rpc);
8
+ return new SuiSigner(chain, rpc, ed25519_1.Ed25519Keypair.deriveKeypair(privateKey, "m/44'/784'/0'/0'/0'"));
9
+ }
10
+ exports.getSuiSigner = getSuiSigner;
11
+ // SuiSigner implements SignOnlySender
12
+ class SuiSigner {
13
+ _chain;
14
+ _client;
15
+ _signer;
16
+ constructor(_chain, _client, _signer) {
17
+ this._chain = _chain;
18
+ this._client = _client;
19
+ this._signer = _signer;
20
+ }
21
+ chain() {
22
+ return this._chain;
23
+ }
24
+ address() {
25
+ return this._signer.toSuiAddress();
26
+ }
27
+ async signAndSend(txns) {
28
+ const txids = [];
29
+ for (const tx of txns) {
30
+ const { description, transaction } = tx;
31
+ console.log(`Signing ${description} for ${this.address()}`);
32
+ const result = await this._client.signAndExecuteTransactionBlock({
33
+ transactionBlock: transaction,
34
+ signer: this._signer,
35
+ });
36
+ txids.push(result.digest);
37
+ }
38
+ return txids;
39
+ }
40
+ }
41
+ exports.SuiSigner = SuiSigner;
42
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AACA,6DAAiE;AAQjE,+CAA4C;AAIrC,KAAK,UAAU,YAAY,CAAC,GAAc,EAAE,UAAkB;IACnE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,yBAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACtD,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,wBAAc,CAAC,aAAa,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;AACpG,CAAC;AAHD,oCAGC;AAED,sCAAsC;AACtC,MAAa,SAAS;IAEV;IACA;IACA;IAHV,YACU,MAAS,EACT,OAAkB,EAClB,OAAuB;QAFvB,WAAM,GAAN,MAAM,CAAG;QACT,YAAO,GAAP,OAAO,CAAW;QAClB,YAAO,GAAP,OAAO,CAAgB;IAC9B,CAAC;IAEJ,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAA2B;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE;YACrB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAkC,CAAC;YACxE,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,QAAQ,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAE5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC;gBAC/D,gBAAgB,EAAE,WAAW;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO;aACrB,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAC3B;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA9BD,8BA8BC"}
@@ -0,0 +1,30 @@
1
+ import type { MoveValue, SuiObjectResponse } from "@mysten/sui.js/client";
2
+ import type { PlatformToChains, UniversalOrNative } from "@wormhole-foundation/sdk-connect";
3
+ export declare const _platform: "Sui";
4
+ export type SuiPlatformType = typeof _platform;
5
+ export type SuiChains = PlatformToChains<SuiPlatformType>;
6
+ export type UniversalOrSui = UniversalOrNative<SuiChains>;
7
+ export type AnySuiAddress = UniversalOrSui | string | Uint8Array;
8
+ export type SuiBuildOutput = {
9
+ modules: string[];
10
+ dependencies: string[];
11
+ };
12
+ export declare const getFieldsFromObjectResponse: (object: SuiObjectResponse) => import("@mysten/sui.js/client").MoveStruct | null;
13
+ export declare const isSameType: (a: string, b: string) => boolean;
14
+ export declare const isSuiCreateEvent: <T extends import("@mysten/sui.js/client").SuiObjectChange, K extends Extract<T, {
15
+ type: "created";
16
+ }>>(event: T) => event is K;
17
+ export declare const isSuiPublishEvent: <T extends import("@mysten/sui.js/client").SuiObjectChange, K extends Extract<T, {
18
+ type: "published";
19
+ }>>(event: T) => event is K;
20
+ export declare function isMoveStructArray(value: any): value is MoveValue[];
21
+ export declare function isMoveStructStruct(value: any): value is {
22
+ fields: {
23
+ [key: string]: MoveValue;
24
+ };
25
+ type: string;
26
+ };
27
+ export declare function isMoveStructObject(value: any): value is {
28
+ [key: string]: MoveValue;
29
+ };
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAElB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG5F,eAAO,MAAM,SAAS,EAAE,KAAa,CAAC;AACtC,MAAM,MAAM,eAAe,GAAG,OAAO,SAAS,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAAY,iBAAiB,sDAGpE,CAAC;AAEF,eAAO,MAAM,UAAU,MAAO,MAAM,KAAK,MAAM,YAM9C,CAAC;AAGF,eAAO,MAAM,gBAAgB;UAEE,SAAS;2BAGE,CAAC;AAE3C,eAAO,MAAM,iBAAiB;UAEC,WAAW;2BAGE,CAAC;AAK7C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,EAAE,CAElE;AACD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,GACT,KAAK,IAAI;IAAE,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEjE;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAEpF"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMoveStructObject = exports.isMoveStructStruct = exports.isMoveStructArray = exports.isSuiPublishEvent = exports.isSuiCreateEvent = exports.isSameType = exports.getFieldsFromObjectResponse = exports._platform = void 0;
4
+ const address_js_1 = require("./address.js");
5
+ exports._platform = "Sui";
6
+ const getFieldsFromObjectResponse = (object) => {
7
+ const content = object.data?.content;
8
+ return content && content.dataType === "moveObject" ? content.fields : null;
9
+ };
10
+ exports.getFieldsFromObjectResponse = getFieldsFromObjectResponse;
11
+ const isSameType = (a, b) => {
12
+ try {
13
+ return (0, address_js_1.normalizeSuiType)(a) === (0, address_js_1.normalizeSuiType)(b);
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ };
19
+ exports.isSameType = isSameType;
20
+ // Event typeguard helpers
21
+ const isSuiCreateEvent = (event) => event?.type === "created";
22
+ exports.isSuiCreateEvent = isSuiCreateEvent;
23
+ const isSuiPublishEvent = (event) => event?.type === "published";
24
+ exports.isSuiPublishEvent = isSuiPublishEvent;
25
+ //
26
+ // MoveStruct typeguard helpers
27
+ //
28
+ function isMoveStructArray(value) {
29
+ return Array.isArray(value);
30
+ }
31
+ exports.isMoveStructArray = isMoveStructArray;
32
+ function isMoveStructStruct(value) {
33
+ return !Array.isArray(value) && typeof value === "object" && "fields" in value && "type" in value;
34
+ }
35
+ exports.isMoveStructStruct = isMoveStructStruct;
36
+ function isMoveStructObject(value) {
37
+ return typeof value === "object" && !isMoveStructArray(value) && !isMoveStructStruct(value);
38
+ }
39
+ exports.isMoveStructObject = isMoveStructObject;
40
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;AAMA,6CAAgD;AAEnC,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,6BAAgB,EAAC,CAAC,CAAC,KAAK,IAAA,6BAAgB,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 type { TransactionBlock } from "@mysten/sui.js/transactions";
2
+ import type { Network, UnsignedTransaction } from "@wormhole-foundation/sdk-connect";
3
+ import type { SuiChains } from "./types.js";
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,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,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 type { SuiClient } from "@mysten/sui.js/client";
2
+ import { TransactionBlock } from "@mysten/sui.js/transactions";
3
+ import type { SuiBuildOutput } from "./types.js";
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,KAAK,EAA4B,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAI/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASjD,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_js_1 = require("./types.js");
9
+ const address_js_1 = require("./address.js");
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_js_1.isMoveStructStruct)(data.content))
25
+ throw new Error(`Cannot get oject for state id ${stateObjectId}: ` + data);
26
+ return (0, address_js_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_js_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_js_1.getFieldsFromObjectResponse)(obj);
62
+ if (!fields || !(0, types_js_1.isMoveStructObject)(fields))
63
+ throw new Error("Unable to get fields from object response");
64
+ if (!("value" in fields) || !(0, types_js_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_js_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_js_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_js_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_js_1.getFieldsFromObjectResponse)(o);
178
+ return ((0, types_js_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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"}
@@ -1,9 +1,9 @@
1
1
  export { zpadSuiAddress, SuiZeroAddress, isValidSuiType, trimSuiType, normalizeSuiType, getCoinTypeFromPackageId, getPackageIdFromType, getTableKeyType, SuiAddress, } from "./address.js";
2
- export { SuiUnsignedTransaction } from "./unsignedTransaction.js";
3
- export { SuiPlatform } from "./platform.js";
4
- export type { SuiPlatformType, SuiChains, UniversalOrSui, AnySuiAddress, SuiBuildOutput } from './types.js';
5
- export { isMoveStructArray, isMoveStructStruct, isMoveStructObject, _platform, getFieldsFromObjectResponse, isSameType, isSuiCreateEvent, isSuiPublishEvent } from "./types.js";
6
- export { SuiChain } from "./chain.js";
7
- export { getSuiSigner, SuiSigner } from "./signer.js";
2
+ export * from "./unsignedTransaction.js";
3
+ export * from "./platform.js";
4
+ export type { SuiPlatformType, SuiChains, UniversalOrSui, AnySuiAddress, SuiBuildOutput, } from "./types.js";
5
+ export * from "./types.js";
6
+ export * from "./chain.js";
7
+ export * from "./signer.js";
8
8
  export { getPackageId, UPGRADE_CAP_TYPE, uint8ArrayToBCS, getOriginalPackageId, getObjectFields, getOldestEmitterCapObjectId, getOwnedObjectId, getOwnedObjectIdPaginated, getUpgradeCapObjectId, publishPackage, newEmitterCap, } from "./utils.js";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChL,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAC9B,YAAY,EACV,eAAe,EACf,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export { zpadSuiAddress, SuiZeroAddress, isValidSuiType, trimSuiType, normalizeSuiType, getCoinTypeFromPackageId, getPackageIdFromType, getTableKeyType, SuiAddress, } from "./address.js";
2
- export { SuiUnsignedTransaction } from "./unsignedTransaction.js";
3
- export { SuiPlatform } from "./platform.js";
4
- export { isMoveStructArray, isMoveStructStruct, isMoveStructObject, _platform, getFieldsFromObjectResponse, isSameType, isSuiCreateEvent, isSuiPublishEvent } from "./types.js";
5
- export { SuiChain } from "./chain.js";
6
- export { getSuiSigner, SuiSigner } from "./signer.js";
2
+ export * from "./unsignedTransaction.js";
3
+ export * from "./platform.js";
4
+ export * from "./types.js";
5
+ export * from "./chain.js";
6
+ export * from "./signer.js";
7
7
  export { getPackageId, UPGRADE_CAP_TYPE, uint8ArrayToBCS, getOriginalPackageId, getObjectFields, getOldestEmitterCapObjectId, getOwnedObjectId, getOwnedObjectIdPaginated, getUpgradeCapObjectId, publishPackage, newEmitterCap, } from "./utils.js";
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,SAAS,EAAE,2BAA2B,EAAE,UAAU,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChL,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC;AAQ9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wormhole-foundation/sdk-sui",
3
- "version": "0.5.0-alpha.2",
3
+ "version": "0.5.0-alpha.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/wormhole-foundation/connect-sdk.git"
@@ -18,7 +18,8 @@
18
18
  "module": "./dist/esm/index.js",
19
19
  "description": "SDK for EVM chains, used in conjunction with @wormhole-foundation/sdk",
20
20
  "files": [
21
- "dist/esm"
21
+ "dist/esm",
22
+ "dist/cjs"
22
23
  ],
23
24
  "keywords": [
24
25
  "wormhole",
@@ -33,15 +34,23 @@
33
34
  "sideEffects": true,
34
35
  "scripts": {
35
36
  "build:cjs": "tsc -p ./tsconfig.cjs.json",
36
- "build": "tsc -p ./tsconfig.esm.json",
37
+ "build": "npm run build:esm && npm run build:cjs",
37
38
  "rebuild": "npm run clean && npm run build",
38
39
  "clean": "rm -rf ./dist && rm -rf ./.turbo",
39
40
  "lint": "npm run prettier && eslint --fix ./src --ext .ts",
40
- "prettier": "prettier --write ./src"
41
+ "prettier": "prettier --write ./src",
42
+ "build:esm": "tsc -p ./tsconfig.esm.json"
41
43
  },
42
44
  "dependencies": {
43
- "@wormhole-foundation/sdk-connect": "0.5.0-alpha.2",
45
+ "@wormhole-foundation/sdk-connect": "0.5.0-alpha.4",
44
46
  "@mysten/sui.js": "^0.50.1"
45
47
  },
46
- "type": "module"
48
+ "type": "module",
49
+ "exports": {
50
+ ".": {
51
+ "import": "./dist/esm/index.js",
52
+ "types": "./dist/esm/index.d.ts",
53
+ "require": "./dist/cjs/index.js"
54
+ }
55
+ }
47
56
  }