@wormhole-foundation/sdk-sui-ntt 2.0.1 → 2.0.2

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/utils.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.countSetBits = exports.extractGenericType = exports.getPackageIdFromObject = exports.getOriginalPackageId = exports.getTransceivers = exports.getPackageId = exports.getWormholePackageId = exports.getSuiObject = exports.getObjectFields = exports.getFieldsFromObjectResponse = exports.isNativeToken = void 0;
3
+ exports.parseInboxItemResult = exports.createNttManagerMessageObjects = exports.extractNttCommonPackageId = exports.parseInboxItemNative = exports.countSetBits = exports.extractGenericType = exports.getPackageIdFromObject = exports.getOriginalPackageId = exports.getTransceivers = exports.getPackageId = exports.getWormholePackageId = exports.getSuiObject = exports.getObjectFields = exports.getFieldsFromObjectResponse = exports.isNativeToken = void 0;
4
4
  const utils_1 = require("@mysten/sui/utils");
5
+ const bcs_1 = require("@mysten/bcs");
5
6
  const constants_js_1 = require("./constants.js");
7
+ const bcs_types_js_1 = require("./bcs-types.js");
6
8
  /**
7
9
  * Checks if a token is native SUI
8
10
  */
@@ -192,4 +194,91 @@ function countSetBits(n) {
192
194
  return count;
193
195
  }
194
196
  exports.countSetBits = countSetBits;
197
+ /**
198
+ * BCS parsing function for inbox items
199
+ */
200
+ function parseInboxItemNative(base64VecU8) {
201
+ const outer = (0, bcs_1.fromBase64)(base64VecU8); // bytes of vector<u8>
202
+ const inner = bcs_1.bcs.vector(bcs_1.bcs.u8()).parse(outer); // extract inner bytes[]
203
+ return bcs_types_js_1.InboxItemNative.parse(Uint8Array.from(inner)); // fully parsed struct
204
+ }
205
+ exports.parseInboxItemNative = parseInboxItemNative;
206
+ /**
207
+ * Extracts the NTT common package ID from a manager state's inbox type
208
+ * The inbox type format is: "0x<packageId>::ntt_manager_message::NttManagerMessage<...>"
209
+ */
210
+ function extractNttCommonPackageId(inboxType) {
211
+ const match = inboxType.match("<(.+)>")?.[1]?.split("::")[0];
212
+ if (!match) {
213
+ throw new Error(`Unable to extract NTT common package ID from inbox type: ${inboxType}`);
214
+ }
215
+ return match;
216
+ }
217
+ exports.extractNttCommonPackageId = extractNttCommonPackageId;
218
+ /**
219
+ * Creates Move objects for NttManagerMessage construction in a Sui transaction
220
+ */
221
+ function createNttManagerMessageObjects(txb, nttCommonPackageId, wormholeCoreBridgePackageId, messageBytes, messageId, senderAddress) {
222
+ // Create the native token transfer object from the serialized payload
223
+ const [native_token_transfer] = txb.moveCall({
224
+ target: `${nttCommonPackageId}::native_token_transfer::parse`,
225
+ arguments: [txb.pure.vector("u8", messageBytes)],
226
+ });
227
+ // Create the message ID from bytes
228
+ const [id] = txb.moveCall({
229
+ target: `${wormholeCoreBridgePackageId}::bytes32::from_bytes`,
230
+ arguments: [txb.pure.vector("u8", messageId)],
231
+ });
232
+ // Create the sender external address
233
+ const [sender] = txb.moveCall({
234
+ target: `${wormholeCoreBridgePackageId}::external_address::from_address`,
235
+ arguments: [
236
+ txb.pure.address("0x" + Buffer.from(senderAddress).toString("hex")),
237
+ ],
238
+ });
239
+ // Create the NttManagerMessage object
240
+ const [manager_message] = txb.moveCall({
241
+ target: `${nttCommonPackageId}::ntt_manager_message::new`,
242
+ typeArguments: [
243
+ `${nttCommonPackageId}::native_token_transfer::NativeTokenTransfer`,
244
+ ],
245
+ arguments: [id, sender, native_token_transfer],
246
+ });
247
+ return manager_message;
248
+ }
249
+ exports.createNttManagerMessageObjects = createNttManagerMessageObjects;
250
+ /**
251
+ * Parses the result of devInspectTransactionBlock to extract and deserialize inbox item data
252
+ */
253
+ function parseInboxItemResult(inspectResult, threshold) {
254
+ if (!inspectResult.results || inspectResult.results.length === 0) {
255
+ throw new Error("No results returned from devInspectTransactionBlock");
256
+ }
257
+ // Get the last result which contains the serialized inbox item bytes from bcs::to_bytes call
258
+ const lastResult = inspectResult.results[inspectResult.results.length - 1];
259
+ const serializedInboxItem = lastResult?.returnValues?.[0];
260
+ if (!Array.isArray(serializedInboxItem)) {
261
+ throw new Error("Invalid result format from devInspectTransactionBlock");
262
+ }
263
+ const [bytesData, type] = serializedInboxItem;
264
+ if (type !== "vector<u8>" || !Array.isArray(bytesData)) {
265
+ throw new Error(`Expected vector<u8> but got ${type}`);
266
+ }
267
+ // Parse the serialized InboxItem using BCS
268
+ // The data is wrapped as vector<u8>, so we need to unwrap it first
269
+ const outerBytes = new Uint8Array(bytesData);
270
+ const innerBytes = bcs_1.bcs.vector(bcs_1.bcs.u8()).parse(outerBytes);
271
+ const parsedInboxItem = bcs_types_js_1.InboxItemNative.parse(Uint8Array.from(innerBytes));
272
+ const inboxItemFields = {
273
+ votes: {
274
+ fields: {
275
+ bitmap: parsedInboxItem.votes.bitmap.toString(),
276
+ },
277
+ },
278
+ release_status: parsedInboxItem.release_status,
279
+ data: parsedInboxItem.data,
280
+ };
281
+ return { inboxItemFields, threshold };
282
+ }
283
+ exports.parseInboxItemResult = parseInboxItemResult;
195
284
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type BcsType } from "@mysten/bcs";
2
+ export declare const InboxItemNative: import("@mysten/bcs").BcsStruct<{
3
+ votes: import("@mysten/bcs").BcsStruct<{
4
+ bitmap: BcsType<string, string | number | bigint, "u128">;
5
+ }, string>;
6
+ release_status: import("@mysten/bcs").BcsEnum<{
7
+ NotApproved: null;
8
+ ReleaseAfter: BcsType<string, string | number | bigint, "u64">;
9
+ Released: null;
10
+ }, "ReleaseStatus">;
11
+ data: import("@mysten/bcs").BcsStruct<{
12
+ amount: import("@mysten/bcs").BcsStruct<{
13
+ amount: BcsType<string, string | number | bigint, "u64">;
14
+ decimals: BcsType<number, number, "u8">;
15
+ }, string>;
16
+ source_token: import("@mysten/bcs").BcsStruct<{
17
+ value: import("@mysten/bcs").BcsStruct<{
18
+ data: BcsType<number[], Iterable<number> & {
19
+ length: number;
20
+ }, string>;
21
+ }, string>;
22
+ }, string>;
23
+ to: import("@mysten/bcs").BcsStruct<{
24
+ value: import("@mysten/bcs").BcsStruct<{
25
+ data: BcsType<number[], Iterable<number> & {
26
+ length: number;
27
+ }, string>;
28
+ }, string>;
29
+ }, string>;
30
+ to_chain: BcsType<number, number, "u16">;
31
+ payload: BcsType<number[] | null, (Iterable<number> & {
32
+ length: number;
33
+ }) | null | undefined, "Option<vector<u8>>">;
34
+ }, string>;
35
+ }, string>;
36
+ //# sourceMappingURL=bcs-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs-types.d.ts","sourceRoot":"","sources":["../../src/bcs-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,OAAO,EAAE,MAAM,aAAa,CAAC;AAyChD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiC,CAAC"}
@@ -0,0 +1,36 @@
1
+ // BCS type definitions for NTT inbox items
2
+ import { bcs } from "@mysten/bcs";
3
+ const Bitmap = bcs.struct("Bitmap", {
4
+ bitmap: bcs.u128(),
5
+ });
6
+ const ReleaseStatus = bcs.enum("ReleaseStatus", {
7
+ NotApproved: null,
8
+ ReleaseAfter: bcs.u64(),
9
+ Released: null,
10
+ });
11
+ const TrimmedAmount = bcs.struct("TrimmedAmount", {
12
+ amount: bcs.u64(),
13
+ decimals: bcs.u8(),
14
+ });
15
+ const Bytes32 = bcs.struct("Bytes32", {
16
+ data: bcs.vector(bcs.u8()),
17
+ });
18
+ const ExternalAddress = bcs.struct("ExternalAddress", {
19
+ value: Bytes32,
20
+ });
21
+ const NativeTokenTransfer = bcs.struct("NativeTokenTransfer", {
22
+ amount: TrimmedAmount,
23
+ source_token: ExternalAddress,
24
+ to: ExternalAddress,
25
+ to_chain: bcs.u16(),
26
+ payload: bcs.option(bcs.vector(bcs.u8())),
27
+ });
28
+ function InboxItem(T) {
29
+ return bcs.struct(`InboxItem<${T.name}>`, {
30
+ votes: Bitmap,
31
+ release_status: ReleaseStatus,
32
+ data: T,
33
+ });
34
+ }
35
+ export const InboxItemNative = InboxItem(NativeTokenTransfer);
36
+ //# sourceMappingURL=bcs-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs-types.js","sourceRoot":"","sources":["../../src/bcs-types.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,OAAO,EAAE,GAAG,EAAgB,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;IAC9C,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE;IACvB,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE;IAChD,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE;IACjB,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE;CACnB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;IACpC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,EAAE;IACpD,KAAK,EAAE,OAAO;CACf,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE;IAC5D,MAAM,EAAE,aAAa;IACrB,YAAY,EAAE,eAAe;IAC7B,EAAE,EAAE,eAAe;IACnB,QAAQ,EAAE,GAAG,CAAC,GAAG,EAAE;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;CAC1C,CAAC,CAAC;AAEH,SAAS,SAAS,CAAyB,CAAI;IAC7C,OAAO,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,EAAE;QACxC,KAAK,EAAE,MAAM;QACb,cAAc,EAAE,aAAa;QAC7B,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ntt.d.ts","sourceRoot":"","sources":["../../src/ntt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ntt.d.ts","sourceRoot":"","sources":["../../src/ntt.ts"],"names":[],"mappings":"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"}
package/dist/esm/ntt.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import { toUniversal, serialize, } from "@wormhole-foundation/sdk-definitions";
2
- import { chainToChainId, serializeLayout, encoding, } from "@wormhole-foundation/sdk-base";
2
+ import { chainToChainId, serializeLayout } from "@wormhole-foundation/sdk-base";
3
3
  import { nativeTokenTransferLayout, } from "@wormhole-foundation/sdk-definitions-ntt";
4
4
  import { SuiAddress, SuiPlatform, SuiUnsignedTransaction, } from "@wormhole-foundation/sdk-sui";
5
5
  import { Transaction } from "@mysten/sui/transactions";
6
6
  import { SUI_CLOCK_OBJECT_ID } from "@mysten/sui/utils";
7
7
  import { SUI_ADDRESSES, RATE_LIMIT_DURATION } from "./constants.js";
8
- import { isNativeToken, getSuiObject, getWormholePackageId, getPackageIdFromObject, countSetBits, } from "./utils.js";
8
+ import { isNativeToken, getSuiObject, getWormholePackageId, getPackageIdFromObject, countSetBits, extractNttCommonPackageId, createNttManagerMessageObjects, parseInboxItemResult, } from "./utils.js";
9
9
  export class SuiNtt {
10
10
  contracts;
11
11
  coreBridgeStateId;
@@ -781,13 +781,12 @@ export class SuiNtt {
781
781
  async getIsExecuted(attestation) {
782
782
  const releaseStatus = await this.getTransferReleaseStatus(attestation);
783
783
  // Check if release_status is Released
784
- // In Move, this would be an enum variant, so we check for the Released variant
785
- return releaseStatus?.variant === "Released";
784
+ return releaseStatus?.$kind === "Released";
786
785
  }
787
786
  async getIsTransferInboundQueued(attestation) {
788
787
  const releaseStatus = await this.getTransferReleaseStatus(attestation);
789
- // Check if release_status is ReleaseAfter(timestamp)
790
- return releaseStatus?.variant === "ReleaseAfter";
788
+ // Check if release_status is ReleaseAfter
789
+ return releaseStatus?.$kind === "ReleaseAfter";
791
790
  }
792
791
  async getInboundQueuedTransfer(fromChain, transceiverMessage) {
793
792
  // Create an attestation object from the transceiver message
@@ -801,11 +800,11 @@ export class SuiNtt {
801
800
  // Get the release status
802
801
  const releaseStatus = await this.getTransferReleaseStatus(attestation);
803
802
  // Check if it's queued (ReleaseAfter)
804
- if (releaseStatus?.variant !== "ReleaseAfter") {
803
+ if (releaseStatus?.$kind !== "ReleaseAfter") {
805
804
  return null;
806
805
  }
807
- // The timestamp should be in the fields of the enum variant
808
- const releaseTimestamp = parseInt(releaseStatus.fields?.["pos0"]);
806
+ // The timestamp should be in the ReleaseAfter field
807
+ const releaseTimestamp = parseInt(releaseStatus.ReleaseAfter);
809
808
  // Get the full inbox item to access the transfer data
810
809
  const inboxItem = await this.getInboxItem(attestation);
811
810
  if (!inboxItem) {
@@ -1119,13 +1118,8 @@ export class SuiNtt {
1119
1118
  throw new Error("Failed to fetch manager state");
1120
1119
  }
1121
1120
  const managerStateObject = managerState.data.content;
1122
- // Extract nttCommonPackageId from manager object
1123
- const nttCommonPackageId = managerStateObject.fields.inbox.type
1124
- .match("<(.+)>")?.[1]
1125
- ?.split("::")[0];
1126
- if (!nttCommonPackageId) {
1127
- throw new Error(`Unable to parse inbox type from manager state: ${managerStateObject.fields.inbox.type}`);
1128
- }
1121
+ // Extract nttCommonPackageId from manager object's inbox type
1122
+ const nttCommonPackageId = extractNttCommonPackageId(managerStateObject.fields.inbox.type);
1129
1123
  // Get manager payload
1130
1124
  const nttPayload = wormholeAttestation.payload.nttManagerPayload;
1131
1125
  // Get NTT object
@@ -1137,41 +1131,9 @@ export class SuiNtt {
1137
1131
  catch (error) {
1138
1132
  throw new Error(`Failed to serialize native token transfer payload: ${error instanceof Error ? error.message : String(error)}`);
1139
1133
  }
1140
- const [native_token_transfer] = txb.moveCall({
1141
- target: `${nttCommonPackageId}::native_token_transfer::parse`,
1142
- arguments: [txb.pure.vector("u8", payloadBytes)],
1143
- });
1144
- if (!native_token_transfer) {
1145
- throw new Error("Failed to parse native token transfer");
1146
- }
1147
1134
  const wormholeCoreBridgePackageId = await getWormholePackageId(this.provider, this.coreBridgeStateId);
1148
- const [id] = txb.moveCall({
1149
- target: `${wormholeCoreBridgePackageId}::bytes32::from_bytes`,
1150
- arguments: [txb.pure.vector("u8", nttPayload.id)],
1151
- });
1152
- if (!id) {
1153
- throw new Error("Failed to create message ID from bytes");
1154
- }
1155
- const [sender] = txb.moveCall({
1156
- target: `${wormholeCoreBridgePackageId}::external_address::from_address`,
1157
- arguments: [
1158
- txb.pure.address(encoding.hex.encode(nttPayload.sender.toUint8Array(), true)),
1159
- ],
1160
- });
1161
- if (!sender) {
1162
- throw new Error("Failed to create external address from sender");
1163
- }
1164
- // Get NttManagerMessage
1165
- const [manager_message] = txb.moveCall({
1166
- target: `${nttCommonPackageId}::ntt_manager_message::new`,
1167
- typeArguments: [
1168
- `${nttCommonPackageId}::native_token_transfer::NativeTokenTransfer`,
1169
- ],
1170
- arguments: [id, sender, native_token_transfer],
1171
- });
1172
- if (!manager_message) {
1173
- throw new Error("Failed to create manager message");
1174
- }
1135
+ // Create the NttManagerMessage object using the utility function
1136
+ const manager_message = createNttManagerMessageObjects(txb, nttCommonPackageId, wormholeCoreBridgePackageId, payloadBytes, nttPayload.id, nttPayload.sender.toUint8Array());
1175
1137
  // Create version gated object for release
1176
1138
  const [versionGated] = txb.moveCall({
1177
1139
  target: `${packageId}::upgrades::new_version_gated`,
@@ -1264,82 +1226,63 @@ export class SuiNtt {
1264
1226
  }
1265
1227
  // Helper function to get inbox item from an NTT attestation
1266
1228
  async getInboxItem(attestation) {
1229
+ const nttState = await this.getNttState();
1230
+ const threshold = parseInt(nttState.threshold);
1231
+ const nttCommonPackageId = extractNttCommonPackageId(nttState.inbox.type);
1232
+ // Get the coin type from the contracts configuration
1233
+ const coinType = this.contracts.ntt["token"];
1234
+ // Get chain ID
1235
+ const sourceChain = attestation.emitterChain;
1236
+ if (!sourceChain) {
1237
+ throw new Error("No emitter chain found in attestation");
1238
+ }
1239
+ const sourceChainId = chainToChainId(sourceChain);
1240
+ // Get the NTT package ID
1241
+ const nttPackageId = await this.getPackageId();
1242
+ // Extract the NTT message from attestation
1243
+ const nttManagerPayload = attestation.payload.nttManagerPayload;
1244
+ if (!nttManagerPayload) {
1245
+ throw new Error("No NTT manager payload found in attestation");
1246
+ }
1247
+ // Prepare the message bytes for the Move call
1248
+ let messageBytes;
1267
1249
  try {
1268
- // Get the NTT state to access inbox and threshold
1269
- const state = await this.provider.getObject({
1270
- id: this.contracts.ntt["manager"],
1271
- options: {
1272
- showContent: true,
1273
- },
1274
- });
1275
- if (!state.data?.content ||
1276
- state.data.content.dataType !== "moveObject") {
1277
- throw new Error("Failed to fetch NTT state object");
1278
- }
1279
- const fields = state.data.content.fields;
1280
- const inboxTable = fields.inbox.fields.entries;
1281
- const threshold = parseInt(fields.threshold);
1282
- // Get chain ID
1283
- const sourceChain = attestation.emitterChain;
1284
- if (!sourceChain) {
1285
- return null;
1286
- }
1287
- const sourceChainId = chainToChainId(sourceChain);
1288
- // Since we can't easily query by the complex key structure,
1289
- // let's get all dynamic fields and find the matching one
1290
- const dynamicFields = await this.provider.getDynamicFields({
1291
- parentId: inboxTable.fields.id.id,
1292
- });
1293
- // Look for an inbox entry that matches our chain and message
1294
- let inboxEntry = null;
1295
- for (const field of dynamicFields.data) {
1296
- try {
1297
- // Check if this field matches our criteria
1298
- if (field.name?.value) {
1299
- const keyValue = field.name.value;
1300
- // Check if chain_id matches
1301
- if (keyValue?.chain_id === sourceChainId) {
1302
- // Get the first matching chain_id
1303
- const inboxEntryObject = await this.provider.getObject({
1304
- id: field.objectId,
1305
- options: { showContent: true },
1306
- });
1307
- // Verify this is the right message by checking the message ID if available
1308
- if (inboxEntryObject.data?.content?.dataType === "moveObject") {
1309
- // Check if the message ID matches (if we have it in the attestation)
1310
- if (attestation.payload.nttManagerPayload?.id &&
1311
- keyValue?.message?.id?.data) {
1312
- // Compare the message ID from the key with our expected hash
1313
- // Convert both Uint8Arrays to hex strings for proper comparison
1314
- const msgIdStr = Buffer.from(keyValue.message.id.data).toString("hex");
1315
- const attestationMsgIdStr = Buffer.from(attestation.payload.nttManagerPayload?.id).toString("hex");
1316
- if (msgIdStr === attestationMsgIdStr) {
1317
- // Found the exact match
1318
- inboxEntry = inboxEntryObject;
1319
- break;
1320
- }
1321
- }
1322
- }
1323
- }
1324
- }
1325
- }
1326
- catch (e) {
1327
- // Skip this field if we can't read it
1328
- continue;
1329
- }
1330
- }
1331
- // Check if we found a matching inbox entry
1332
- if (!inboxEntry) {
1333
- return null;
1334
- }
1335
- const inboxItemFields = inboxEntry.data.content.fields
1336
- .value.fields;
1337
- return { inboxItemFields, threshold };
1250
+ messageBytes = serializeLayout(nativeTokenTransferLayout, nttManagerPayload.payload);
1338
1251
  }
1339
1252
  catch (error) {
1340
- // Entry not found or there was an error
1341
- return null;
1253
+ throw new Error(`Failed to serialize native token transfer payload: ${error instanceof Error ? error.message : String(error)}`);
1342
1254
  }
1255
+ // Create transaction to call borrow_inbox_item
1256
+ const txb = new Transaction();
1257
+ // Get the wormhole core bridge package ID for creating message components
1258
+ const wormholeCoreBridgePackageId = await getWormholePackageId(this.provider, this.contracts.coreBridge);
1259
+ // Create the NttManagerMessage object using the utility function
1260
+ const manager_message = createNttManagerMessageObjects(txb, nttCommonPackageId, wormholeCoreBridgePackageId, messageBytes, nttManagerPayload.id, nttManagerPayload.sender.toUint8Array());
1261
+ // Now call borrow_inbox_item with the properly constructed message object
1262
+ const [inboxItemRef] = txb.moveCall({
1263
+ target: `${nttPackageId}::state::borrow_inbox_item`,
1264
+ typeArguments: [coinType],
1265
+ arguments: [
1266
+ txb.object(this.contracts.ntt["manager"]), // State object
1267
+ txb.pure.u16(sourceChainId), // Chain ID
1268
+ manager_message,
1269
+ ],
1270
+ });
1271
+ // Then serialize the inbox item reference to bytes
1272
+ txb.moveCall({
1273
+ target: `0x2::bcs::to_bytes`,
1274
+ typeArguments: [
1275
+ `${nttPackageId}::inbox::InboxItem<${nttCommonPackageId}::native_token_transfer::NativeTokenTransfer>`,
1276
+ ],
1277
+ arguments: [inboxItemRef],
1278
+ });
1279
+ // Execute the transaction in dev inspect mode to read the result
1280
+ const inspectResult = await this.provider.devInspectTransactionBlock({
1281
+ transactionBlock: txb,
1282
+ sender: "0x0000000000000000000000000000000000000000000000000000000000000000",
1283
+ });
1284
+ // Parse and return the result
1285
+ return parseInboxItemResult(inspectResult, threshold);
1343
1286
  }
1344
1287
  }
1345
1288
  //# sourceMappingURL=ntt.js.map