@layerzerolabs/lz-corekit-initia 3.0.81 → 3.0.82

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/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @layerzerolabs/lz-corekit-initia
2
2
 
3
+ ## 3.0.82
4
+
5
+ ### Patch Changes
6
+
7
+ - e0e402e: animechain
8
+ - Updated dependencies [e0e402e]
9
+ - @layerzerolabs/lz-core@3.0.82
10
+ - @layerzerolabs/lz-utilities@3.0.82
11
+ - @layerzerolabs/move-definitions@3.0.82
12
+
3
13
  ## 3.0.81
4
14
 
5
15
  ### Patch Changes
package/dist/index.cjs CHANGED
@@ -1,9 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var initia_js = require('@initia/initia.js');
3
+ var initia2 = require('@initia/initia.js');
4
4
  var lzCore = require('@layerzerolabs/lz-core');
5
5
  var lzUtilities = require('@layerzerolabs/lz-utilities');
6
6
 
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var initia2__default = /*#__PURE__*/_interopDefault(initia2);
10
+
7
11
  // src/providers/initia.ts
8
12
  var POLL_INTERVAL = 500;
9
13
  var CONFIRM_TIMEOUT = 3e4;
@@ -15,7 +19,7 @@ var InitiaProvider = class _InitiaProvider {
15
19
  */
16
20
  constructor(url) {
17
21
  this.url = url;
18
- this.nativeProvider = new initia_js.LCDClient(url);
22
+ this.nativeProvider = new initia2__default.default.LCDClient(url);
19
23
  }
20
24
  static from(source) {
21
25
  if (typeof source === "string") {
@@ -27,7 +31,7 @@ var InitiaProvider = class _InitiaProvider {
27
31
  /**
28
32
  * Gets the native Initia provider instance.
29
33
  *
30
- * @returns {LCDClient} The native Initia provider instance.
34
+ * @returns {initia.LCDClient} The native Initia provider instance.
31
35
  */
32
36
  get native() {
33
37
  return this.nativeProvider;
@@ -42,7 +46,7 @@ var InitiaProvider = class _InitiaProvider {
42
46
  async getBalance(address) {
43
47
  let accAddress;
44
48
  if (!lzUtilities.isHex(address)) {
45
- accAddress = initia_js.AccAddress.fromHex(address);
49
+ accAddress = initia2__default.default.AccAddress.fromHex(address);
46
50
  } else if (address.startsWith("init")) {
47
51
  accAddress = address;
48
52
  } else {
@@ -157,7 +161,7 @@ var InitiaProvider = class _InitiaProvider {
157
161
  const _addressOrName = await Promise.resolve(addressOrName);
158
162
  let accAddress;
159
163
  if (lzUtilities.isHex(_addressOrName)) {
160
- accAddress = initia_js.AccAddress.fromHex(_addressOrName);
164
+ accAddress = initia2__default.default.AccAddress.fromHex(_addressOrName);
161
165
  } else if (_addressOrName.startsWith("init")) {
162
166
  accAddress = _addressOrName;
163
167
  } else {
@@ -230,7 +234,7 @@ var InitiaSigner = class {
230
234
  /**
231
235
  * Creates an instance of InitiaSigner.
232
236
  *
233
- * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
237
+ * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.
234
238
  */
235
239
  constructor(signer) {
236
240
  this.nativeKey = signer;
@@ -238,26 +242,36 @@ var InitiaSigner = class {
238
242
  /**
239
243
  * Creates an instance of InitiaSigner from the given source.
240
244
  *
241
- * @param {string | MnemonicKey} source - The source to create the signer from.
245
+ * @param {string | initia.MnemonicKey} source - The source to create the signer from.
242
246
  * @param {string} [path] - The derivation path (optional).
243
247
  * @returns {Signer} The created InitiaSigner instance.
244
248
  * @throws {Error} If the parameters are invalid.
245
249
  */
246
- static from(source, path) {
247
- if (source instanceof initia_js.MnemonicKey) {
250
+ static from(source, pathOrCoinType) {
251
+ if (source instanceof initia2__default.default.MnemonicKey) {
248
252
  return new this(source);
249
- } else if (typeof source === "string" && path === void 0) {
250
- const signer = new initia_js.RawKey(Buffer.from(lzUtilities.trim0x(source), "hex"));
253
+ } else if (typeof source === "string" && typeof pathOrCoinType === "number") {
254
+ const signer = new initia2__default.default.RawKey(
255
+ Buffer.from(lzUtilities.trim0x(source), "hex"),
256
+ pathOrCoinType === initia2__default.default.INIT_COIN_TYPE
257
+ );
251
258
  return new this(signer);
252
- } else if (typeof source === "string" && path !== void 0) {
253
- if (path.startsWith("m/")) {
254
- const [_, coinType, account, __, index] = path.match(/\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0];
259
+ } else if (typeof source === "string" && typeof pathOrCoinType === "string") {
260
+ if (pathOrCoinType.startsWith("m/")) {
261
+ const [_, coinType, account, __, index] = pathOrCoinType.match(/\d+/g)?.map(Number) ?? [
262
+ 44,
263
+ 118,
264
+ 0,
265
+ 0,
266
+ 0
267
+ ];
255
268
  const normalizeMnemonics = source.trim().split(/\s+/).map((part) => part.toLowerCase()).join(" ");
256
- const key = new initia_js.MnemonicKey({
269
+ const key = new initia2__default.default.MnemonicKey({
257
270
  mnemonic: normalizeMnemonics,
258
271
  coinType,
259
272
  account,
260
- index
273
+ index,
274
+ eth: coinType === initia2__default.default.INIT_COIN_TYPE
261
275
  });
262
276
  return new this(key);
263
277
  }
@@ -268,7 +282,7 @@ var InitiaSigner = class {
268
282
  * Gets the native Initia wallet instance.
269
283
  * Invoke connect method first to make sure the native provider is not undefined.
270
284
  *
271
- * @returns {Wallet} The native Initia wallet instance.
285
+ * @returns {initia.Wallet} The native Initia wallet instance.
272
286
  * @throws {Error} If the native provider is not connected.
273
287
  */
274
288
  get native() {
@@ -289,7 +303,7 @@ var InitiaSigner = class {
289
303
  throw new Error("Only InitiaProvider is supported.");
290
304
  }
291
305
  this.provider = provider;
292
- this.nativeSigner = new initia_js.Wallet(this.provider.native, this.nativeKey);
306
+ this.nativeSigner = new initia2__default.default.Wallet(this.provider.native, this.nativeKey);
293
307
  return this;
294
308
  }
295
309
  /**
@@ -298,7 +312,7 @@ var InitiaSigner = class {
298
312
  * @returns {Promise<string>} A promise that resolves to the address of the signer.
299
313
  */
300
314
  async getAddress() {
301
- return Promise.resolve(initia_js.AccAddress.toHex(this.nativeKey.accAddress));
315
+ return Promise.resolve(initia2__default.default.AccAddress.toHex(this.nativeKey.accAddress));
302
316
  }
303
317
  /**
304
318
  * Gets the address of the signer.
@@ -306,7 +320,7 @@ var InitiaSigner = class {
306
320
  * @returns {string} The address of the signer.
307
321
  */
308
322
  get address() {
309
- return initia_js.AccAddress.toHex(this.nativeKey.accAddress);
323
+ return initia2__default.default.AccAddress.toHex(this.nativeKey.accAddress);
310
324
  }
311
325
  /**
312
326
  * Sends a signed transaction and waits for confirmation.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["LCDClient","isHex","AccAddress","Block","TransactionResponse","TransactionReceipt","TransactionPending","MnemonicKey","RawKey","trim0x","Wallet","SignedTransaction"],"mappings":";;;;;;;AAcA,IAAM,aAAgB,GAAA,GAAA;AACtB,IAAM,eAAkB,GAAA,GAAA;AAKX,IAAA,cAAA,GAAN,MAAM,eAAmC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQpC,YAAmB,GAAa,EAAA;AAAb,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA;AACvB,IAAK,IAAA,CAAA,cAAA,GAAiB,IAAIA,mBAAA,CAAU,GAAG,CAAA;AAAA;AAC3C,EAUA,OAAO,KAAK,MAAgC,EAAA;AACxC,IAAI,IAAA,OAAO,WAAW,QAAU,EAAA;AAC5B,MAAO,OAAA,IAAI,gBAAe,MAAM,CAAA;AAAA,KAC7B,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,oBAAoB,CAAA;AAAA;AACxC;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,MAAoB,GAAA;AACpB,IAAA,OAAO,IAAK,CAAA,cAAA;AAAA;AAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,WAAW,OAAkC,EAAA;AAC/C,IAAI,IAAA,UAAA;AACJ,IAAI,IAAA,CAACC,iBAAM,CAAA,OAAO,CAAG,EAAA;AACjB,MAAa,UAAA,GAAAC,oBAAA,CAAW,QAAQ,OAAO,CAAA;AAAA,KAChC,MAAA,IAAA,OAAA,CAAQ,UAAW,CAAA,MAAM,CAAG,EAAA;AACnC,MAAa,UAAA,GAAA,OAAA;AAAA,KACV,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAI5C,IAAA,MAAM,YAAY,MAAM,IAAA,CAAK,cAAe,CAAA,IAAA,CAAK,QAAQ,UAAU,CAAA;AACnE,IAAM,MAAA,KAAA,GAAQ,UAAU,CAAC,CAAA;AACzB,IAAA,OAAO,MAAM,QAAS,EAAA;AAAA;AAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,SAAS,QAA2C,EAAA;AACtD,IAAA,IAAI,WAAc,GAAA,CAAA;AAClB,IAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAC9B,MAAc,WAAA,GAAA,QAAA;AAAA,KAClB,MAAA,IAAW,aAAa,QAAU,EAAA;AAC9B,MAAA,WAAA,GAAc,MAAM,IAAA,CAAK,cAAe,CAAA,UAAA,CACnC,WACA,CAAA,IAAA,CAAK,CAAC,UAAA,KAAe,MAAO,CAAA,UAAA,CAAW,KAAM,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,KAC7D,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,kBAAkB,CAAA;AAAA;AAGtC,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,UAAA,CAAW,UAAU,WAAW,CAAA;AAC3E,IAAO,OAAAC,YAAA,CAAM,KAAK,QAAQ,CAAA;AAAA;AAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,yBAAyB,QAA2D,EAAA;AACtF,IAAA,OAAO,OAAQ,CAAA,MAAA,CAAO,IAAI,KAAA,CAAM,yBAAyB,CAAC,CAAA;AAAA;AAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,cAAkC,GAAA;AACpC,IAAA,OAAO,IAAK,CAAA,cAAA,CAAe,UAAW,CAAA,SAAA,EAAY,CAAA,IAAA,CAAK,CAAC,UAAA,KAAe,MAAO,CAAA,UAAA,CAAW,KAAM,CAAA,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA;AACjH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,QAAQ,SAAuC,EAAA;AACjD,IAAA,MAAM,QAAQ,OAAQ,EAAA;AACtB,IAAM,MAAA,IAAI,MAAM,yBAAyB,CAAA;AAAA;AAC7C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,kBAAkB,QAA4C,EAAA;AAChE,IAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAC9B,MAAA,OAAO,IAAK,CAAA,cAAA,CAAe,UAAW,CAAA,SAAA,CAAU,QAAQ,CAAE,CAAA,IAAA,CAAK,CAAC,KAAA,KAAU,MAAO,CAAA,KAAA,CAAM,KAAM,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,KAC7G,MAAA,IAAW,aAAa,QAAU,EAAA;AAC9B,MAAA,OAAO,IAAK,CAAA,cAAA,CAAe,UAAW,CAAA,SAAA,EAAY,CAAA,IAAA,CAAK,CAAC,KAAA,KAAU,MAAO,CAAA,KAAA,CAAM,KAAM,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,KAC9F,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,kBAAkB,CAAA;AAAA;AACtC;AACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,eAAe,MAA8C,EAAA;AAC/D,IAAI,IAAA,CAACF,iBAAM,CAAA,MAAM,CAAG,EAAA;AAChB,MAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA;AAAA;AAGrD,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,EAAA,CAAG,OAAO,MAAM,CAAA;AAC3D,IAAO,OAAAG,0BAAA,CAAoB,KAAK,QAAQ,CAAA;AAAA;AAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,sBAAsB,MAA6C,EAAA;AACrE,IAAI,IAAA,CAACH,iBAAM,CAAA,MAAM,CAAG,EAAA;AAChB,MAAM,MAAA,IAAI,MAAM,iCAAiC,CAAA;AAAA;AAGrD,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,EAAA,CAAG,OAAO,MAAM,CAAA;AAC3D,IAAO,OAAAI,yBAAA,CAAmB,KAAK,QAAQ,CAAA;AAAA;AAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,mBACF,CAAA,aAAA,EACA,SACe,EAAA;AACf,IAAA,MAAM,cAAiB,GAAA,MAAM,OAAQ,CAAA,OAAA,CAAQ,aAAa,CAAA;AAE1D,IAAI,IAAA,UAAA;AACJ,IAAI,IAAAJ,iBAAA,CAAM,cAAc,CAAG,EAAA;AACvB,MAAa,UAAA,GAAAC,oBAAA,CAAW,QAAQ,cAAc,CAAA;AAAA,KACvC,MAAA,IAAA,cAAA,CAAe,UAAW,CAAA,MAAM,CAAG,EAAA;AAC1C,MAAa,UAAA,GAAA,cAAA;AAAA,KACV,MAAA;AACH,MAAA,MAAM,IAAI,KAAA,CAAM,CAA0B,uBAAA,EAAA,cAAc,CAAE,CAAA,CAAA;AAAA;AAG9D,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,IAAA,CAAK,YAAY,UAAU,CAAA;AACtE,IAAA,OAAO,SAAS,iBAAkB,EAAA;AAAA;AACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,eAAgB,CAAA,WAAA,EAAgC,YAAoD,EAAA;AAEtG,IAAA,MAAM,MAAM,WAAY,CAAA,MAAA;AAExB,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,EAAA,CAAG,eAAe,GAAG,CAAA;AAChE,IAAO,OAAAI,yBAAA,CAAmB,KAAK,QAAQ,CAAA;AAAA;AAC3C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,kBAAmB,CAAA,OAAA,EAA6B,KAA6C,EAAA;AAC/F,IAAI,IAAA,OAAA;AACJ,IAAI,IAAA,MAAA;AACJ,IAAI,IAAA,OAAO,OAAQ,CAAA,OAAA,KAAY,QAAU,EAAA;AACrC,MAAA,MAAA,GAAS,OAAQ,CAAA,OAAA;AAAA,KAEjB,MAAA,IAAA,OAAO,OAAQ,CAAA,OAAA,KAAY,YAC3B,OAAQ,CAAA,OAAA,KAAY,IACpB,IAAA,QAAA,IAAY,QAAQ,OACpB,IAAA,OAAO,OAAQ,CAAA,OAAA,CAAQ,WAAW,QACpC,EAAA;AAEE,MAAA,MAAA,GAAS,QAAQ,OAAQ,CAAA,MAAA;AAAA,KACtB,MAAA;AACH,MAAM,MAAA,IAAI,MAAM,CAAgC,6BAAA,EAAA,IAAA,CAAK,UAAU,OAAS,EAAA,IAAA,EAAM,CAAC,CAAC,CAAE,CAAA,CAAA;AAAA;AAEtF,IAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAK,IAAA,eAAA,GAAkB,eAAe,CAAK,EAAA,EAAA;AACvD,MAAI,IAAA;AACA,QAAA,OAAA,GAAU,MAAM,IAAA,CAAK,cAAe,CAAA,EAAA,CAAG,OAAO,MAAM,CAAA;AAAA,eAC/C,KAAO,EAAA;AAAA;AAGhB,MAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACvB,QAAA;AAAA;AAEJ,MAAA,MAAM,IAAI,OAAQ,CAAA,CAAC,YAAY,UAAW,CAAA,OAAA,EAAS,aAAa,CAAC,CAAA;AAAA;AAErE,IAAA,IAAI,YAAY,KAAW,CAAA,EAAA;AACvB,MAAA,MAAM,IAAI,KAAA,CAAM,CAAe,YAAA,EAAA,MAAM,CAAY,UAAA,CAAA,CAAA;AAAA,KACrD,MAAA,IAAW,OAAQ,CAAA,IAAA,KAAS,CAAG,EAAA;AAC3B,MAAM,MAAA,IAAI,KAAM,CAAA,OAAA,CAAQ,OAAO,CAAA;AAAA;AAEnC,IAAA,OAAO,OAAQ,CAAA,OAAA,CAAQD,yBAAmB,CAAA,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA;AAC3D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cAAe,CAAA,WAAA,EAAgC,IAA4C,EAAA;AAE7F,IAAA,MAAM,MAAM,WAAY,CAAA,MAAA;AACxB,IAAA,MAAM,WAAW,MAAM,IAAA,CAAK,cAAe,CAAA,EAAA,CAAG,UAAU,GAAG,CAAA;AAC3D,IAAA,OAAO,KAAK,kBAAmB,CAAAC,yBAAA,CAAmB,IAAK,CAAA,QAAQ,GAAG,IAAI,CAAA;AAAA;AAE9E;ACzQO,IAAM,eAAN,MAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhC,YAAY,MAA8B,EAAA;AAC9C,IAAA,IAAA,CAAK,SAAY,GAAA,MAAA;AAAA;AACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCA,OAAO,IAAK,CAAA,MAAA,EAA8B,IAAuB,EAAA;AAC7D,IAAA,IAAI,kBAAkBC,qBAAa,EAAA;AAC/B,MAAO,OAAA,IAAI,KAAK,MAAM,CAAA;AAAA,KACf,MAAA,IAAA,OAAO,MAAW,KAAA,QAAA,IAAY,SAAS,KAAW,CAAA,EAAA;AACzD,MAAM,MAAA,MAAA,GAAS,IAAIC,gBAAO,CAAA,MAAA,CAAO,KAAKC,kBAAO,CAAA,MAAM,CAAG,EAAA,KAAK,CAAC,CAAA;AAC5D,MAAO,OAAA,IAAI,KAAK,MAAM,CAAA;AAAA,KACf,MAAA,IAAA,OAAO,MAAW,KAAA,QAAA,IAAY,SAAS,KAAW,CAAA,EAAA;AACzD,MAAI,IAAA,IAAA,CAAK,UAAW,CAAA,IAAI,CAAG,EAAA;AACvB,QAAA,MAAM,CAAC,CAAG,EAAA,QAAA,EAAU,SAAS,EAAI,EAAA,KAAK,IAAI,IAAK,CAAA,KAAA,CAAM,MAAM,CAAG,EAAA,GAAA,CAAI,MAAM,CAAK,IAAA,CAAC,IAAI,GAAK,EAAA,CAAA,EAAG,GAAG,CAAC,CAAA;AAC9F,QAAA,MAAM,kBAAqB,GAAA,MAAA,CACtB,IAAK,EAAA,CACL,MAAM,KAAK,CAAA,CACX,GAAI,CAAA,CAAC,SAAS,IAAK,CAAA,WAAA,EAAa,CAAA,CAChC,KAAK,GAAG,CAAA;AACb,QAAM,MAAA,GAAA,GAAM,IAAIF,qBAAY,CAAA;AAAA,UACxB,QAAU,EAAA,kBAAA;AAAA,UACV,QAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACH,CAAA;AACD,QAAO,OAAA,IAAI,KAAK,GAAG,CAAA;AAAA;AACvB;AAEJ,IAAM,MAAA,IAAI,MAAM,oBAAoB,CAAA;AAAA;AACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,MAAiB,GAAA;AACjB,IAAI,IAAA,CAAC,KAAK,YAAc,EAAA;AACpB,MAAM,MAAA,IAAI,MAAM,+DAA+D,CAAA;AAAA;AAEnF,IAAA,OAAO,IAAK,CAAA,YAAA;AAAA;AAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,QAA4B,EAAA;AAChC,IAAI,IAAA,EAAE,oBAAoB,cAAiB,CAAA,EAAA;AACvC,MAAM,MAAA,IAAI,MAAM,mCAAmC,CAAA;AAAA;AAGvD,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA;AAChB,IAAA,IAAA,CAAK,eAAe,IAAIG,gBAAA,CAAO,KAAK,QAAS,CAAA,MAAA,EAAQ,KAAK,SAAS,CAAA;AACnE,IAAO,OAAA,IAAA;AAAA;AACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,UAA8B,GAAA;AAChC,IAAA,OAAO,QAAQ,OAAQR,CAAAA,oBAAAA,CAAW,MAAM,IAAK,CAAA,SAAA,CAAU,UAAU,CAAC,CAAA;AAAA;AACtE;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,OAAkB,GAAA;AAClB,IAAA,OAAOA,oBAAW,CAAA,KAAA,CAAM,IAAK,CAAA,SAAA,CAAU,UAAU,CAAA;AAAA;AACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,cAAe,CAAA,WAAA,EAAgC,IAA4C,EAAA;AAC7F,IAAI,IAAA,IAAA,CAAK,aAAa,KAAW,CAAA,EAAA;AAC7B,MAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA;AAE1C,IAAA,OAAO,IAAK,CAAA,QAAA,CAAS,cAAe,CAAA,WAAA,EAAa,IAAI,CAAA;AAAA;AACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,eAAgB,CAAA,WAAA,EAAgC,WAAmD,EAAA;AACrG,IAAI,IAAA,IAAA,CAAK,aAAa,KAAW,CAAA,EAAA;AAC7B,MAAM,MAAA,IAAI,MAAM,sBAAsB,CAAA;AAAA;AAG1C,IAAA,OAAO,IAAK,CAAA,QAAA,CAAS,eAAgB,CAAA,WAAA,EAAa,WAAW,CAAA;AAAA;AACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,gBAAgB,WAA6D,EAAA;AAC/E,IAAI,IAAA,CAAC,KAAK,YAAc,EAAA;AACpB,MAAM,MAAA,IAAI,MAAM,+DAA+D,CAAA;AAAA;AAEnF,IAAA,MAAM,UAAU,WAAY,CAAA,OAAA;AAC5B,IAAA,MAAM,QAAW,GAAA,MAAM,IAAK,CAAA,YAAA,CAAa,gBAAgB,OAAO,CAAA;AAChE,IAAOS,OAAAA,wBAAAA,CAAkB,KAAK,QAAQ,CAAA;AAAA;AAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,WAAW,MAAyC,EAAA;AACtD,IAAA,OAAO,KAAK,SAAU,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA;AAEtD","file":"index.cjs","sourcesContent":["import { AccAddress, LCDClient, TxInfo } from '@initia/initia.js'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\nimport { isHex } from '@layerzerolabs/lz-utilities'\nconst POLL_INTERVAL = 500\nconst CONFIRM_TIMEOUT = 30000\n/**\n * Represents an Initia blockchain provider.\n * Implements the Provider interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n /**\n * Creates an instance of InitiaProvider.\n *\n * @param {string} url - The URL of the Initia node.\n */\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n /**\n * Creates an instance of InitiaProvider from the given URL.\n *\n * @param {string} url - The URL of the Initia node.\n * @returns {InitiaProvider} The created InitiaProvider instance.\n * @throws {Error} If the URL parameter is invalid.\n */\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n /**\n * Gets the native Initia provider instance.\n *\n * @returns {LCDClient} The native Initia provider instance.\n */\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n /**\n * Gets the balance of the specified address.\n *\n * @param {string} address - The address to get the balance of.\n * @returns {Promise<string>} A promise that resolves to the balance of the address.\n * @throws {Error} If the address is not a valid Initia address.\n */\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHex(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Initia address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.toString()\n }\n\n /**\n * Gets the block specified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<Block>} A promise that resolves to the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n /**\n * Gets the block with transactions specified by blockTag.\n * Later: could invoke txInfosByHeight method in TxAPI\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<BlockWithTransactions>} A promise that resolves to the block with transactions.\n * @throws {Error} Method not implemented.\n */\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n /**\n * Gets the current block number.\n *\n * @returns {Promise<number>} A promise that resolves to the current block number.\n */\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n }\n\n /**\n * Gets the current slot number for commitment, not suitable for Initia.\n *\n * @param {Finality} [finality] - The commitment level (optional).\n * @returns {Promise<number>} A promise that resolves to the current slot number.\n * @throws {Error} Method not implemented.\n */\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n /**\n * Gets the UNIX timestamp for the block identified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<number>} A promise that resolves to the UNIX timestamp of the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n if (typeof blockTag === 'number') {\n return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n /**\n * Gets information about a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionResponse>} A promise that resolves to the transaction response.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n /**\n * Gets the receipt of a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionReceipt.from(response)\n }\n\n /**\n * Gets the number of transactions sent from the specified address.\n *\n * @param {string | Promise<string>} addressOrName - The address to get the number of transactions from.\n * @param {BlockTag | Promise<BlockTag>} [blockTag] - The block tag to get the number of transactions from (optional).\n * @returns {Promise<number>} A promise that resolves to the number of transactions sent from the address.\n * @throws {Error} If the address is invalid.\n */\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n _blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n const _addressOrName = await Promise.resolve(addressOrName)\n\n let accAddress: AccAddress\n if (isHex(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error(`Invalid Initia address ${_addressOrName}`)\n }\n\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n /**\n * Sends a signed transaction to the blockchain.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n */\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcastAsync>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcastAsync(stx)\n return TransactionPending.from(response)\n }\n\n /**\n * Confirms a pending transaction.\n *\n * @param {TransactionPending} pending - The pending transaction to confirm.\n * @param {object} [opts] - Optional parameters for the confirmation.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction fails.\n */\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n let reponse: TxInfo | undefined\n let txhash: string\n if (typeof pending.pending === 'string') {\n txhash = pending.pending\n } else if (\n typeof pending.pending === 'object' &&\n pending.pending !== null &&\n 'txhash' in pending.pending &&\n typeof pending.pending.txhash === 'string'\n ) {\n // eslint-disable-next-line @typescript-eslint/prefer-destructuring\n txhash = pending.pending.txhash\n } else {\n throw new Error(`Invalid pending transaction: ${JSON.stringify(pending, null, 2)}`)\n }\n for (let i = 0; i <= CONFIRM_TIMEOUT / POLL_INTERVAL; i++) {\n try {\n reponse = await this.nativeProvider.tx.txInfo(txhash)\n } catch (error) {\n /* empty */\n }\n if (reponse !== undefined) {\n break\n }\n await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))\n }\n if (reponse === undefined) {\n throw new Error(`Transaction ${txhash} not found`)\n } else if (reponse.code !== 0) {\n throw new Error(reponse.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(reponse))\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n return this.confirmTransaction(TransactionPending.from(response), opts)\n }\n}\n","import { AccAddress, CreateTxOptions, MnemonicKey, RawKey, Wallet } from '@initia/initia.js'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { InitiaProvider } from '../providers'\n\n/**\n * Represents an Initia blockchain signer.\n * Implements the Signer interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaSigner implements Signer {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n /**\n * Creates an instance of InitiaSigner.\n *\n * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.\n */\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n /**\n * Creates an instance of InitiaSigner from a MnemonicKey.\n *\n * @param {MnemonicKey} signer - The MnemonicKey to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(signer: MnemonicKey): Signer\n\n /**\n * Creates an instance of InitiaSigner from a private key.\n *\n * @param {string} privKey - The private key to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(privKey: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from a mnemonic and derivation path.\n *\n * @param {string} mnemonic - The mnemonic to create the signer from.\n * @param {string} path - The derivation path (e.g., m/44'/637'/0'/0'/0').\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(mnemonic: string, path: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from the given source.\n *\n * @param {string | MnemonicKey} source - The source to create the signer from.\n * @param {string} [path] - The derivation path (optional).\n * @returns {Signer} The created InitiaSigner instance.\n * @throws {Error} If the parameters are invalid.\n */\n static from(source: string | MnemonicKey, path?: string): Signer {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source), 'hex')) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n /**\n * Gets the native Initia wallet instance.\n * Invoke connect method first to make sure the native provider is not undefined.\n *\n * @returns {Wallet} The native Initia wallet instance.\n * @throws {Error} If the native provider is not connected.\n */\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n /**\n * Connects the signer to a provider.\n *\n * @param {Provider} provider - The provider to connect to.\n * @returns {Signer} The connected signer.\n * @throws {Error} If the provider is not an instance of InitiaProvider.\n */\n connect(provider: Provider): Signer {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {Promise<string>} A promise that resolves to the address of the signer.\n */\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {string} The address of the signer.\n */\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the provider is not connected.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n /**\n * Sends a signed transaction.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n * @throws {Error} If the provider is not connected.\n */\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n /**\n * Signs a transaction.\n *\n * @param {TransactionRequest} transaction - The transaction request to sign.\n * @returns {Promise<SignedTransaction>} A promise that resolves to the signed transaction.\n * @throws {Error} If the native provider is not connected.\n */\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n const request = transaction.request as CreateTxOptions\n const response = await this.nativeSigner.createAndSignTx(request)\n return SignedTransaction.from(response)\n }\n\n /**\n * Signs a buffer (e.g., a message hash) using the native Initia signer.\n *\n * @param {Uint8Array} buffer - The buffer to sign.\n * @returns {Promise<Uint8Array>} A promise that resolves to the signed buffer as a Uint8Array.\n */\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["initia","isHex","Block","TransactionResponse","TransactionReceipt","TransactionPending","trim0x","SignedTransaction"],"mappings":"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","file":"index.cjs","sourcesContent":["// eslint-disable-next-line import/default\nimport initia from '@initia/initia.js'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\nimport { isHex } from '@layerzerolabs/lz-utilities'\nconst POLL_INTERVAL = 500\nconst CONFIRM_TIMEOUT = 30000\n/**\n * Represents an Initia blockchain provider.\n * Implements the Provider interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaProvider implements Provider {\n readonly nativeProvider: initia.LCDClient\n\n /**\n * Creates an instance of InitiaProvider.\n *\n * @param {string} url - The URL of the Initia node.\n */\n private constructor(public url: string) {\n this.nativeProvider = new initia.LCDClient(url)\n }\n\n /**\n * Creates an instance of InitiaProvider from the given URL.\n *\n * @param {string} url - The URL of the Initia node.\n * @returns {InitiaProvider} The created InitiaProvider instance.\n * @throws {Error} If the URL parameter is invalid.\n */\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n /**\n * Gets the native Initia provider instance.\n *\n * @returns {initia.LCDClient} The native Initia provider instance.\n */\n get native(): initia.LCDClient {\n return this.nativeProvider\n }\n\n /**\n * Gets the balance of the specified address.\n *\n * @param {string} address - The address to get the balance of.\n * @returns {Promise<string>} A promise that resolves to the balance of the address.\n * @throws {Error} If the address is not a valid Initia address.\n */\n async getBalance(address: string): Promise<string> {\n let accAddress: initia.AccAddress\n if (!isHex(address)) {\n accAddress = initia.AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Initia address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.toString()\n }\n\n /**\n * Gets the block specified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<Block>} A promise that resolves to the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n /**\n * Gets the block with transactions specified by blockTag.\n * Later: could invoke txInfosByHeight method in TxAPI\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<BlockWithTransactions>} A promise that resolves to the block with transactions.\n * @throws {Error} Method not implemented.\n */\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n /**\n * Gets the current block number.\n *\n * @returns {Promise<number>} A promise that resolves to the current block number.\n */\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n }\n\n /**\n * Gets the current slot number for commitment, not suitable for Initia.\n *\n * @param {Finality} [finality] - The commitment level (optional).\n * @returns {Promise<number>} A promise that resolves to the current slot number.\n * @throws {Error} Method not implemented.\n */\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n /**\n * Gets the UNIX timestamp for the block identified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<number>} A promise that resolves to the UNIX timestamp of the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n if (typeof blockTag === 'number') {\n return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n /**\n * Gets information about a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionResponse>} A promise that resolves to the transaction response.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n /**\n * Gets the receipt of a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionReceipt.from(response)\n }\n\n /**\n * Gets the number of transactions sent from the specified address.\n *\n * @param {string | Promise<string>} addressOrName - The address to get the number of transactions from.\n * @param {BlockTag | Promise<BlockTag>} [blockTag] - The block tag to get the number of transactions from (optional).\n * @returns {Promise<number>} A promise that resolves to the number of transactions sent from the address.\n * @throws {Error} If the address is invalid.\n */\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n _blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n const _addressOrName = await Promise.resolve(addressOrName)\n\n let accAddress: initia.AccAddress\n if (isHex(_addressOrName)) {\n accAddress = initia.AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error(`Invalid Initia address ${_addressOrName}`)\n }\n\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n /**\n * Sends a signed transaction to the blockchain.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n */\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcastAsync>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcastAsync(stx)\n return TransactionPending.from(response)\n }\n\n /**\n * Confirms a pending transaction.\n *\n * @param {TransactionPending} pending - The pending transaction to confirm.\n * @param {object} [opts] - Optional parameters for the confirmation.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction fails.\n */\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n let reponse: initia.TxInfo | undefined\n let txhash: string\n if (typeof pending.pending === 'string') {\n txhash = pending.pending\n } else if (\n typeof pending.pending === 'object' &&\n pending.pending !== null &&\n 'txhash' in pending.pending &&\n typeof pending.pending.txhash === 'string'\n ) {\n // eslint-disable-next-line @typescript-eslint/prefer-destructuring\n txhash = pending.pending.txhash\n } else {\n throw new Error(`Invalid pending transaction: ${JSON.stringify(pending, null, 2)}`)\n }\n for (let i = 0; i <= CONFIRM_TIMEOUT / POLL_INTERVAL; i++) {\n try {\n reponse = await this.nativeProvider.tx.txInfo(txhash)\n } catch (error) {\n /* empty */\n }\n if (reponse !== undefined) {\n break\n }\n await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))\n }\n if (reponse === undefined) {\n throw new Error(`Transaction ${txhash} not found`)\n } else if (reponse.code !== 0) {\n throw new Error(reponse.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(reponse))\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n return this.confirmTransaction(TransactionPending.from(response), opts)\n }\n}\n","// eslint-disable-next-line import/default\nimport initia from '@initia/initia.js'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { InitiaProvider } from '../providers'\n\n/**\n * Represents an Initia blockchain signer.\n * Implements the Signer interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaSigner implements Signer {\n public nativeKey: initia.MnemonicKey | initia.RawKey\n public nativeSigner: initia.Wallet | undefined\n public provider: InitiaProvider | undefined\n\n /**\n * Creates an instance of InitiaSigner.\n *\n * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.\n */\n private constructor(signer: initia.MnemonicKey | initia.RawKey) {\n this.nativeKey = signer\n }\n\n /**\n * Creates an instance of InitiaSigner from a MnemonicKey.\n *\n * @param {initia.MnemonicKey} signer - The MnemonicKey to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(signer: initia.MnemonicKey): Signer\n\n /**\n * Creates an instance of InitiaSigner from a private key.\n *\n * @param {string} privKey - The private key to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(privKey: string, coinType: number): Signer\n\n /**\n * Creates an instance of InitiaSigner from a mnemonic and derivation path.\n *\n * @param {string} mnemonic - The mnemonic to create the signer from.\n * @param {string} path - The derivation path (e.g., m/44'/637'/0'/0'/0').\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(mnemonic: string, path: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from the given source.\n *\n * @param {string | initia.MnemonicKey} source - The source to create the signer from.\n * @param {string} [path] - The derivation path (optional).\n * @returns {Signer} The created InitiaSigner instance.\n * @throws {Error} If the parameters are invalid.\n */\n static from(source: string | initia.MnemonicKey, pathOrCoinType?: string | number): Signer {\n if (source instanceof initia.MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'number') {\n const signer = new initia.RawKey(\n Buffer.from(trim0x(source), 'hex'),\n pathOrCoinType === initia.INIT_COIN_TYPE\n ) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'string') {\n if (pathOrCoinType.startsWith('m/')) {\n const [_, coinType, account, __, index] = pathOrCoinType.match(/\\d+/g)?.map(Number) ?? [\n 44, 118, 0, 0, 0,\n ]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new initia.MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n eth: coinType === initia.INIT_COIN_TYPE,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n /**\n * Gets the native Initia wallet instance.\n * Invoke connect method first to make sure the native provider is not undefined.\n *\n * @returns {initia.Wallet} The native Initia wallet instance.\n * @throws {Error} If the native provider is not connected.\n */\n get native(): initia.Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n /**\n * Connects the signer to a provider.\n *\n * @param {Provider} provider - The provider to connect to.\n * @returns {Signer} The connected signer.\n * @throws {Error} If the provider is not an instance of InitiaProvider.\n */\n connect(provider: Provider): Signer {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new initia.Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {Promise<string>} A promise that resolves to the address of the signer.\n */\n async getAddress(): Promise<string> {\n return Promise.resolve(initia.AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {string} The address of the signer.\n */\n get address(): string {\n return initia.AccAddress.toHex(this.nativeKey.accAddress)\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the provider is not connected.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n /**\n * Sends a signed transaction.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n * @throws {Error} If the provider is not connected.\n */\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n /**\n * Signs a transaction.\n *\n * @param {TransactionRequest} transaction - The transaction request to sign.\n * @returns {Promise<SignedTransaction>} A promise that resolves to the signed transaction.\n * @throws {Error} If the native provider is not connected.\n */\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n const request = transaction.request as initia.CreateTxOptions\n const response = await this.nativeSigner.createAndSignTx(request)\n return SignedTransaction.from(response)\n }\n\n /**\n * Signs a buffer (e.g., a message hash) using the native Initia signer.\n *\n * @param {Uint8Array} buffer - The buffer to sign.\n * @returns {Promise<Uint8Array>} A promise that resolves to the signed buffer as a Uint8Array.\n */\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n}\n"]}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { LCDClient, MnemonicKey, RawKey, Wallet } from '@initia/initia.js';
1
+ import initia from '@initia/initia.js';
2
2
  import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
3
3
 
4
4
  /**
@@ -7,7 +7,7 @@ import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse,
7
7
  */
8
8
  declare class InitiaProvider implements Provider {
9
9
  url: string;
10
- readonly nativeProvider: LCDClient;
10
+ readonly nativeProvider: initia.LCDClient;
11
11
  /**
12
12
  * Creates an instance of InitiaProvider.
13
13
  *
@@ -25,9 +25,9 @@ declare class InitiaProvider implements Provider {
25
25
  /**
26
26
  * Gets the native Initia provider instance.
27
27
  *
28
- * @returns {LCDClient} The native Initia provider instance.
28
+ * @returns {initia.LCDClient} The native Initia provider instance.
29
29
  */
30
- get native(): LCDClient;
30
+ get native(): initia.LCDClient;
31
31
  /**
32
32
  * Gets the balance of the specified address.
33
33
  *
@@ -132,29 +132,29 @@ declare class InitiaProvider implements Provider {
132
132
  * Implements the Signer interface for interacting with Initia-compatible blockchains.
133
133
  */
134
134
  declare class InitiaSigner implements Signer {
135
- nativeKey: MnemonicKey | RawKey;
136
- nativeSigner: Wallet | undefined;
135
+ nativeKey: initia.MnemonicKey | initia.RawKey;
136
+ nativeSigner: initia.Wallet | undefined;
137
137
  provider: InitiaProvider | undefined;
138
138
  /**
139
139
  * Creates an instance of InitiaSigner.
140
140
  *
141
- * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
141
+ * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.
142
142
  */
143
143
  private constructor();
144
144
  /**
145
145
  * Creates an instance of InitiaSigner from a MnemonicKey.
146
146
  *
147
- * @param {MnemonicKey} signer - The MnemonicKey to create the signer from.
147
+ * @param {initia.MnemonicKey} signer - The MnemonicKey to create the signer from.
148
148
  * @returns {Signer} The created InitiaSigner instance.
149
149
  */
150
- static from(signer: MnemonicKey): Signer;
150
+ static from(signer: initia.MnemonicKey): Signer;
151
151
  /**
152
152
  * Creates an instance of InitiaSigner from a private key.
153
153
  *
154
154
  * @param {string} privKey - The private key to create the signer from.
155
155
  * @returns {Signer} The created InitiaSigner instance.
156
156
  */
157
- static from(privKey: string): Signer;
157
+ static from(privKey: string, coinType: number): Signer;
158
158
  /**
159
159
  * Creates an instance of InitiaSigner from a mnemonic and derivation path.
160
160
  *
@@ -167,10 +167,10 @@ declare class InitiaSigner implements Signer {
167
167
  * Gets the native Initia wallet instance.
168
168
  * Invoke connect method first to make sure the native provider is not undefined.
169
169
  *
170
- * @returns {Wallet} The native Initia wallet instance.
170
+ * @returns {initia.Wallet} The native Initia wallet instance.
171
171
  * @throws {Error} If the native provider is not connected.
172
172
  */
173
- get native(): Wallet;
173
+ get native(): initia.Wallet;
174
174
  /**
175
175
  * Connects the signer to a provider.
176
176
  *
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { LCDClient, MnemonicKey, RawKey, Wallet } from '@initia/initia.js';
1
+ import initia from '@initia/initia.js';
2
2
  import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse, TransactionReceipt, BlockTag, SignedTransaction, TransactionPending, Signer, TransactionRequest } from '@layerzerolabs/lz-core';
3
3
 
4
4
  /**
@@ -7,7 +7,7 @@ import { Provider, Block, BlockWithTransactions, Finality, TransactionResponse,
7
7
  */
8
8
  declare class InitiaProvider implements Provider {
9
9
  url: string;
10
- readonly nativeProvider: LCDClient;
10
+ readonly nativeProvider: initia.LCDClient;
11
11
  /**
12
12
  * Creates an instance of InitiaProvider.
13
13
  *
@@ -25,9 +25,9 @@ declare class InitiaProvider implements Provider {
25
25
  /**
26
26
  * Gets the native Initia provider instance.
27
27
  *
28
- * @returns {LCDClient} The native Initia provider instance.
28
+ * @returns {initia.LCDClient} The native Initia provider instance.
29
29
  */
30
- get native(): LCDClient;
30
+ get native(): initia.LCDClient;
31
31
  /**
32
32
  * Gets the balance of the specified address.
33
33
  *
@@ -132,29 +132,29 @@ declare class InitiaProvider implements Provider {
132
132
  * Implements the Signer interface for interacting with Initia-compatible blockchains.
133
133
  */
134
134
  declare class InitiaSigner implements Signer {
135
- nativeKey: MnemonicKey | RawKey;
136
- nativeSigner: Wallet | undefined;
135
+ nativeKey: initia.MnemonicKey | initia.RawKey;
136
+ nativeSigner: initia.Wallet | undefined;
137
137
  provider: InitiaProvider | undefined;
138
138
  /**
139
139
  * Creates an instance of InitiaSigner.
140
140
  *
141
- * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
141
+ * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.
142
142
  */
143
143
  private constructor();
144
144
  /**
145
145
  * Creates an instance of InitiaSigner from a MnemonicKey.
146
146
  *
147
- * @param {MnemonicKey} signer - The MnemonicKey to create the signer from.
147
+ * @param {initia.MnemonicKey} signer - The MnemonicKey to create the signer from.
148
148
  * @returns {Signer} The created InitiaSigner instance.
149
149
  */
150
- static from(signer: MnemonicKey): Signer;
150
+ static from(signer: initia.MnemonicKey): Signer;
151
151
  /**
152
152
  * Creates an instance of InitiaSigner from a private key.
153
153
  *
154
154
  * @param {string} privKey - The private key to create the signer from.
155
155
  * @returns {Signer} The created InitiaSigner instance.
156
156
  */
157
- static from(privKey: string): Signer;
157
+ static from(privKey: string, coinType: number): Signer;
158
158
  /**
159
159
  * Creates an instance of InitiaSigner from a mnemonic and derivation path.
160
160
  *
@@ -167,10 +167,10 @@ declare class InitiaSigner implements Signer {
167
167
  * Gets the native Initia wallet instance.
168
168
  * Invoke connect method first to make sure the native provider is not undefined.
169
169
  *
170
- * @returns {Wallet} The native Initia wallet instance.
170
+ * @returns {initia.Wallet} The native Initia wallet instance.
171
171
  * @throws {Error} If the native provider is not connected.
172
172
  */
173
- get native(): Wallet;
173
+ get native(): initia.Wallet;
174
174
  /**
175
175
  * Connects the signer to a provider.
176
176
  *
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { LCDClient, AccAddress, MnemonicKey, RawKey, Wallet } from '@initia/initia.js';
1
+ import initia2 from '@initia/initia.js';
2
2
  import { Block, TransactionResponse, TransactionReceipt, TransactionPending, SignedTransaction } from '@layerzerolabs/lz-core';
3
3
  import { isHex, trim0x } from '@layerzerolabs/lz-utilities';
4
4
 
@@ -13,7 +13,7 @@ var InitiaProvider = class _InitiaProvider {
13
13
  */
14
14
  constructor(url) {
15
15
  this.url = url;
16
- this.nativeProvider = new LCDClient(url);
16
+ this.nativeProvider = new initia2.LCDClient(url);
17
17
  }
18
18
  static from(source) {
19
19
  if (typeof source === "string") {
@@ -25,7 +25,7 @@ var InitiaProvider = class _InitiaProvider {
25
25
  /**
26
26
  * Gets the native Initia provider instance.
27
27
  *
28
- * @returns {LCDClient} The native Initia provider instance.
28
+ * @returns {initia.LCDClient} The native Initia provider instance.
29
29
  */
30
30
  get native() {
31
31
  return this.nativeProvider;
@@ -40,7 +40,7 @@ var InitiaProvider = class _InitiaProvider {
40
40
  async getBalance(address) {
41
41
  let accAddress;
42
42
  if (!isHex(address)) {
43
- accAddress = AccAddress.fromHex(address);
43
+ accAddress = initia2.AccAddress.fromHex(address);
44
44
  } else if (address.startsWith("init")) {
45
45
  accAddress = address;
46
46
  } else {
@@ -155,7 +155,7 @@ var InitiaProvider = class _InitiaProvider {
155
155
  const _addressOrName = await Promise.resolve(addressOrName);
156
156
  let accAddress;
157
157
  if (isHex(_addressOrName)) {
158
- accAddress = AccAddress.fromHex(_addressOrName);
158
+ accAddress = initia2.AccAddress.fromHex(_addressOrName);
159
159
  } else if (_addressOrName.startsWith("init")) {
160
160
  accAddress = _addressOrName;
161
161
  } else {
@@ -228,7 +228,7 @@ var InitiaSigner = class {
228
228
  /**
229
229
  * Creates an instance of InitiaSigner.
230
230
  *
231
- * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
231
+ * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.
232
232
  */
233
233
  constructor(signer) {
234
234
  this.nativeKey = signer;
@@ -236,26 +236,36 @@ var InitiaSigner = class {
236
236
  /**
237
237
  * Creates an instance of InitiaSigner from the given source.
238
238
  *
239
- * @param {string | MnemonicKey} source - The source to create the signer from.
239
+ * @param {string | initia.MnemonicKey} source - The source to create the signer from.
240
240
  * @param {string} [path] - The derivation path (optional).
241
241
  * @returns {Signer} The created InitiaSigner instance.
242
242
  * @throws {Error} If the parameters are invalid.
243
243
  */
244
- static from(source, path) {
245
- if (source instanceof MnemonicKey) {
244
+ static from(source, pathOrCoinType) {
245
+ if (source instanceof initia2.MnemonicKey) {
246
246
  return new this(source);
247
- } else if (typeof source === "string" && path === void 0) {
248
- const signer = new RawKey(Buffer.from(trim0x(source), "hex"));
247
+ } else if (typeof source === "string" && typeof pathOrCoinType === "number") {
248
+ const signer = new initia2.RawKey(
249
+ Buffer.from(trim0x(source), "hex"),
250
+ pathOrCoinType === initia2.INIT_COIN_TYPE
251
+ );
249
252
  return new this(signer);
250
- } else if (typeof source === "string" && path !== void 0) {
251
- if (path.startsWith("m/")) {
252
- const [_, coinType, account, __, index] = path.match(/\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0];
253
+ } else if (typeof source === "string" && typeof pathOrCoinType === "string") {
254
+ if (pathOrCoinType.startsWith("m/")) {
255
+ const [_, coinType, account, __, index] = pathOrCoinType.match(/\d+/g)?.map(Number) ?? [
256
+ 44,
257
+ 118,
258
+ 0,
259
+ 0,
260
+ 0
261
+ ];
253
262
  const normalizeMnemonics = source.trim().split(/\s+/).map((part) => part.toLowerCase()).join(" ");
254
- const key = new MnemonicKey({
263
+ const key = new initia2.MnemonicKey({
255
264
  mnemonic: normalizeMnemonics,
256
265
  coinType,
257
266
  account,
258
- index
267
+ index,
268
+ eth: coinType === initia2.INIT_COIN_TYPE
259
269
  });
260
270
  return new this(key);
261
271
  }
@@ -266,7 +276,7 @@ var InitiaSigner = class {
266
276
  * Gets the native Initia wallet instance.
267
277
  * Invoke connect method first to make sure the native provider is not undefined.
268
278
  *
269
- * @returns {Wallet} The native Initia wallet instance.
279
+ * @returns {initia.Wallet} The native Initia wallet instance.
270
280
  * @throws {Error} If the native provider is not connected.
271
281
  */
272
282
  get native() {
@@ -287,7 +297,7 @@ var InitiaSigner = class {
287
297
  throw new Error("Only InitiaProvider is supported.");
288
298
  }
289
299
  this.provider = provider;
290
- this.nativeSigner = new Wallet(this.provider.native, this.nativeKey);
300
+ this.nativeSigner = new initia2.Wallet(this.provider.native, this.nativeKey);
291
301
  return this;
292
302
  }
293
303
  /**
@@ -296,7 +306,7 @@ var InitiaSigner = class {
296
306
  * @returns {Promise<string>} A promise that resolves to the address of the signer.
297
307
  */
298
308
  async getAddress() {
299
- return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress));
309
+ return Promise.resolve(initia2.AccAddress.toHex(this.nativeKey.accAddress));
300
310
  }
301
311
  /**
302
312
  * Gets the address of the signer.
@@ -304,7 +314,7 @@ var InitiaSigner = class {
304
314
  * @returns {string} The address of the signer.
305
315
  */
306
316
  get address() {
307
- return AccAddress.toHex(this.nativeKey.accAddress);
317
+ return initia2.AccAddress.toHex(this.nativeKey.accAddress);
308
318
  }
309
319
  /**
310
320
  * Sends a signed transaction and waits for confirmation.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["AccAddress","SignedTransaction"],"mappings":"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","file":"index.mjs","sourcesContent":["import { AccAddress, LCDClient, TxInfo } from '@initia/initia.js'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\nimport { isHex } from '@layerzerolabs/lz-utilities'\nconst POLL_INTERVAL = 500\nconst CONFIRM_TIMEOUT = 30000\n/**\n * Represents an Initia blockchain provider.\n * Implements the Provider interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaProvider implements Provider {\n readonly nativeProvider: LCDClient\n\n /**\n * Creates an instance of InitiaProvider.\n *\n * @param {string} url - The URL of the Initia node.\n */\n private constructor(public url: string) {\n this.nativeProvider = new LCDClient(url)\n }\n\n /**\n * Creates an instance of InitiaProvider from the given URL.\n *\n * @param {string} url - The URL of the Initia node.\n * @returns {InitiaProvider} The created InitiaProvider instance.\n * @throws {Error} If the URL parameter is invalid.\n */\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n /**\n * Gets the native Initia provider instance.\n *\n * @returns {LCDClient} The native Initia provider instance.\n */\n get native(): LCDClient {\n return this.nativeProvider\n }\n\n /**\n * Gets the balance of the specified address.\n *\n * @param {string} address - The address to get the balance of.\n * @returns {Promise<string>} A promise that resolves to the balance of the address.\n * @throws {Error} If the address is not a valid Initia address.\n */\n async getBalance(address: string): Promise<string> {\n let accAddress: AccAddress\n if (!isHex(address)) {\n accAddress = AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Initia address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.toString()\n }\n\n /**\n * Gets the block specified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<Block>} A promise that resolves to the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n /**\n * Gets the block with transactions specified by blockTag.\n * Later: could invoke txInfosByHeight method in TxAPI\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<BlockWithTransactions>} A promise that resolves to the block with transactions.\n * @throws {Error} Method not implemented.\n */\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n /**\n * Gets the current block number.\n *\n * @returns {Promise<number>} A promise that resolves to the current block number.\n */\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n }\n\n /**\n * Gets the current slot number for commitment, not suitable for Initia.\n *\n * @param {Finality} [finality] - The commitment level (optional).\n * @returns {Promise<number>} A promise that resolves to the current slot number.\n * @throws {Error} Method not implemented.\n */\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n /**\n * Gets the UNIX timestamp for the block identified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<number>} A promise that resolves to the UNIX timestamp of the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n if (typeof blockTag === 'number') {\n return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n /**\n * Gets information about a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionResponse>} A promise that resolves to the transaction response.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n /**\n * Gets the receipt of a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionReceipt.from(response)\n }\n\n /**\n * Gets the number of transactions sent from the specified address.\n *\n * @param {string | Promise<string>} addressOrName - The address to get the number of transactions from.\n * @param {BlockTag | Promise<BlockTag>} [blockTag] - The block tag to get the number of transactions from (optional).\n * @returns {Promise<number>} A promise that resolves to the number of transactions sent from the address.\n * @throws {Error} If the address is invalid.\n */\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n _blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n const _addressOrName = await Promise.resolve(addressOrName)\n\n let accAddress: AccAddress\n if (isHex(_addressOrName)) {\n accAddress = AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error(`Invalid Initia address ${_addressOrName}`)\n }\n\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n /**\n * Sends a signed transaction to the blockchain.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n */\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcastAsync>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcastAsync(stx)\n return TransactionPending.from(response)\n }\n\n /**\n * Confirms a pending transaction.\n *\n * @param {TransactionPending} pending - The pending transaction to confirm.\n * @param {object} [opts] - Optional parameters for the confirmation.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction fails.\n */\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n let reponse: TxInfo | undefined\n let txhash: string\n if (typeof pending.pending === 'string') {\n txhash = pending.pending\n } else if (\n typeof pending.pending === 'object' &&\n pending.pending !== null &&\n 'txhash' in pending.pending &&\n typeof pending.pending.txhash === 'string'\n ) {\n // eslint-disable-next-line @typescript-eslint/prefer-destructuring\n txhash = pending.pending.txhash\n } else {\n throw new Error(`Invalid pending transaction: ${JSON.stringify(pending, null, 2)}`)\n }\n for (let i = 0; i <= CONFIRM_TIMEOUT / POLL_INTERVAL; i++) {\n try {\n reponse = await this.nativeProvider.tx.txInfo(txhash)\n } catch (error) {\n /* empty */\n }\n if (reponse !== undefined) {\n break\n }\n await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))\n }\n if (reponse === undefined) {\n throw new Error(`Transaction ${txhash} not found`)\n } else if (reponse.code !== 0) {\n throw new Error(reponse.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(reponse))\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n return this.confirmTransaction(TransactionPending.from(response), opts)\n }\n}\n","import { AccAddress, CreateTxOptions, MnemonicKey, RawKey, Wallet } from '@initia/initia.js'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { InitiaProvider } from '../providers'\n\n/**\n * Represents an Initia blockchain signer.\n * Implements the Signer interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaSigner implements Signer {\n public nativeKey: MnemonicKey | RawKey\n public nativeSigner: Wallet | undefined\n public provider: InitiaProvider | undefined\n\n /**\n * Creates an instance of InitiaSigner.\n *\n * @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.\n */\n private constructor(signer: MnemonicKey | RawKey) {\n this.nativeKey = signer\n }\n\n /**\n * Creates an instance of InitiaSigner from a MnemonicKey.\n *\n * @param {MnemonicKey} signer - The MnemonicKey to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(signer: MnemonicKey): Signer\n\n /**\n * Creates an instance of InitiaSigner from a private key.\n *\n * @param {string} privKey - The private key to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(privKey: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from a mnemonic and derivation path.\n *\n * @param {string} mnemonic - The mnemonic to create the signer from.\n * @param {string} path - The derivation path (e.g., m/44'/637'/0'/0'/0').\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(mnemonic: string, path: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from the given source.\n *\n * @param {string | MnemonicKey} source - The source to create the signer from.\n * @param {string} [path] - The derivation path (optional).\n * @returns {Signer} The created InitiaSigner instance.\n * @throws {Error} If the parameters are invalid.\n */\n static from(source: string | MnemonicKey, path?: string): Signer {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && path === undefined) {\n const signer = new RawKey(Buffer.from(trim0x(source), 'hex')) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && path !== undefined) {\n if (path.startsWith('m/')) {\n const [_, coinType, account, __, index] = path.match(/\\d+/g)?.map(Number) ?? [44, 118, 0, 0, 0]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n /**\n * Gets the native Initia wallet instance.\n * Invoke connect method first to make sure the native provider is not undefined.\n *\n * @returns {Wallet} The native Initia wallet instance.\n * @throws {Error} If the native provider is not connected.\n */\n get native(): Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n /**\n * Connects the signer to a provider.\n *\n * @param {Provider} provider - The provider to connect to.\n * @returns {Signer} The connected signer.\n * @throws {Error} If the provider is not an instance of InitiaProvider.\n */\n connect(provider: Provider): Signer {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {Promise<string>} A promise that resolves to the address of the signer.\n */\n async getAddress(): Promise<string> {\n return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {string} The address of the signer.\n */\n get address(): string {\n return AccAddress.toHex(this.nativeKey.accAddress)\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the provider is not connected.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n /**\n * Sends a signed transaction.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n * @throws {Error} If the provider is not connected.\n */\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n /**\n * Signs a transaction.\n *\n * @param {TransactionRequest} transaction - The transaction request to sign.\n * @returns {Promise<SignedTransaction>} A promise that resolves to the signed transaction.\n * @throws {Error} If the native provider is not connected.\n */\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n const request = transaction.request as CreateTxOptions\n const response = await this.nativeSigner.createAndSignTx(request)\n return SignedTransaction.from(response)\n }\n\n /**\n * Signs a buffer (e.g., a message hash) using the native Initia signer.\n *\n * @param {Uint8Array} buffer - The buffer to sign.\n * @returns {Promise<Uint8Array>} A promise that resolves to the signed buffer as a Uint8Array.\n */\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["initia","SignedTransaction"],"mappings":"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","file":"index.mjs","sourcesContent":["// eslint-disable-next-line import/default\nimport initia from '@initia/initia.js'\n\nimport {\n Block,\n BlockTag,\n BlockWithTransactions,\n Finality,\n Provider,\n SignedTransaction,\n TransactionPending,\n TransactionReceipt,\n TransactionResponse,\n} from '@layerzerolabs/lz-core'\nimport { isHex } from '@layerzerolabs/lz-utilities'\nconst POLL_INTERVAL = 500\nconst CONFIRM_TIMEOUT = 30000\n/**\n * Represents an Initia blockchain provider.\n * Implements the Provider interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaProvider implements Provider {\n readonly nativeProvider: initia.LCDClient\n\n /**\n * Creates an instance of InitiaProvider.\n *\n * @param {string} url - The URL of the Initia node.\n */\n private constructor(public url: string) {\n this.nativeProvider = new initia.LCDClient(url)\n }\n\n /**\n * Creates an instance of InitiaProvider from the given URL.\n *\n * @param {string} url - The URL of the Initia node.\n * @returns {InitiaProvider} The created InitiaProvider instance.\n * @throws {Error} If the URL parameter is invalid.\n */\n static from(url: string): InitiaProvider\n static from(source: string): InitiaProvider {\n if (typeof source === 'string') {\n return new InitiaProvider(source)\n } else {\n throw new Error('Invalid parameters')\n }\n }\n\n /**\n * Gets the native Initia provider instance.\n *\n * @returns {initia.LCDClient} The native Initia provider instance.\n */\n get native(): initia.LCDClient {\n return this.nativeProvider\n }\n\n /**\n * Gets the balance of the specified address.\n *\n * @param {string} address - The address to get the balance of.\n * @returns {Promise<string>} A promise that resolves to the balance of the address.\n * @throws {Error} If the address is not a valid Initia address.\n */\n async getBalance(address: string): Promise<string> {\n let accAddress: initia.AccAddress\n if (!isHex(address)) {\n accAddress = initia.AccAddress.fromHex(address)\n } else if (address.startsWith('init')) {\n accAddress = address\n } else {\n throw new Error('Invalid Initia address')\n }\n\n //todo convert all address to aclAddress\n const resources = await this.nativeProvider.bank.balance(accAddress)\n const coins = resources[0]\n return coins.toString()\n }\n\n /**\n * Gets the block specified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<Block>} A promise that resolves to the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlock(blockTag: string | number): Promise<Block> {\n let blockNumber = 0\n if (typeof blockTag === 'number') {\n blockNumber = blockTag\n } else if (blockTag === 'latest') {\n blockNumber = await this.nativeProvider.tendermint\n .blockInfo()\n .then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n } else {\n throw new Error('Invalid blockTag')\n }\n\n const response = await this.nativeProvider.tendermint.blockInfo(blockNumber)\n return Block.from(response)\n }\n\n /**\n * Gets the block with transactions specified by blockTag.\n * Later: could invoke txInfosByHeight method in TxAPI\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<BlockWithTransactions>} A promise that resolves to the block with transactions.\n * @throws {Error} Method not implemented.\n */\n async getBlockWithTransactions(blockTag: string | number): Promise<BlockWithTransactions> {\n return Promise.reject(new Error('Method not implemented.'))\n }\n\n /**\n * Gets the current block number.\n *\n * @returns {Promise<number>} A promise that resolves to the current block number.\n */\n async getBlockNumber(): Promise<number> {\n return this.nativeProvider.tendermint.blockInfo().then((ledgerInfo) => Number(ledgerInfo.block.header.height))\n }\n\n /**\n * Gets the current slot number for commitment, not suitable for Initia.\n *\n * @param {Finality} [finality] - The commitment level (optional).\n * @returns {Promise<number>} A promise that resolves to the current slot number.\n * @throws {Error} Method not implemented.\n */\n async getSlot(_finality?: Finality): Promise<number> {\n await Promise.resolve()\n throw new Error('Method not implemented.')\n }\n\n /**\n * Gets the UNIX timestamp for the block identified by blockTag.\n *\n * @param {BlockTag} blockTag - The block tag to specify the block.\n * @returns {Promise<number>} A promise that resolves to the UNIX timestamp of the block.\n * @throws {Error} If the blockTag is invalid.\n */\n async getBlockTimestamp(blockTag: string | number): Promise<number> {\n if (typeof blockTag === 'number') {\n return this.nativeProvider.tendermint.blockInfo(blockTag).then((block) => Number(block.block.header.time))\n } else if (blockTag === 'latest') {\n return this.nativeProvider.tendermint.blockInfo().then((block) => Number(block.block.header.time))\n } else {\n throw new Error('Invalid blockTag')\n }\n }\n\n /**\n * Gets information about a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionResponse>} A promise that resolves to the transaction response.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransaction(txHash: string): Promise<TransactionResponse> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionResponse.from(response)\n }\n\n /**\n * Gets the receipt of a transaction.\n *\n * @param {string} txHash - The hash of the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction hash is invalid.\n */\n async getTransactionReceipt(txHash: string): Promise<TransactionReceipt> {\n if (!isHex(txHash)) {\n throw new Error('Invalid Initia transaction hash')\n }\n\n const response = await this.nativeProvider.tx.txInfo(txHash)\n return TransactionReceipt.from(response)\n }\n\n /**\n * Gets the number of transactions sent from the specified address.\n *\n * @param {string | Promise<string>} addressOrName - The address to get the number of transactions from.\n * @param {BlockTag | Promise<BlockTag>} [blockTag] - The block tag to get the number of transactions from (optional).\n * @returns {Promise<number>} A promise that resolves to the number of transactions sent from the address.\n * @throws {Error} If the address is invalid.\n */\n async getTransactionCount(\n addressOrName: string | Promise<string>,\n _blockTag?: BlockTag | Promise<BlockTag>\n ): Promise<number> {\n const _addressOrName = await Promise.resolve(addressOrName)\n\n let accAddress: initia.AccAddress\n if (isHex(_addressOrName)) {\n accAddress = initia.AccAddress.fromHex(_addressOrName)\n } else if (_addressOrName.startsWith('init')) {\n accAddress = _addressOrName\n } else {\n throw new Error(`Invalid Initia address ${_addressOrName}`)\n }\n\n const response = await this.nativeProvider.auth.accountInfo(accAddress)\n return response.getSequenceNumber()\n }\n\n /**\n * Sends a signed transaction to the blockchain.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n */\n async sendTransaction(transaction: SignedTransaction, _sendOptions?: object): Promise<TransactionPending> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcastAsync>[0]\n const stx = transaction.signed as NativeSignedTransaction\n\n const response = await this.nativeProvider.tx.broadcastAsync(stx)\n return TransactionPending.from(response)\n }\n\n /**\n * Confirms a pending transaction.\n *\n * @param {TransactionPending} pending - The pending transaction to confirm.\n * @param {object} [opts] - Optional parameters for the confirmation.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the transaction fails.\n */\n async confirmTransaction(pending: TransactionPending, _opts?: object): Promise<TransactionReceipt> {\n let reponse: initia.TxInfo | undefined\n let txhash: string\n if (typeof pending.pending === 'string') {\n txhash = pending.pending\n } else if (\n typeof pending.pending === 'object' &&\n pending.pending !== null &&\n 'txhash' in pending.pending &&\n typeof pending.pending.txhash === 'string'\n ) {\n // eslint-disable-next-line @typescript-eslint/prefer-destructuring\n txhash = pending.pending.txhash\n } else {\n throw new Error(`Invalid pending transaction: ${JSON.stringify(pending, null, 2)}`)\n }\n for (let i = 0; i <= CONFIRM_TIMEOUT / POLL_INTERVAL; i++) {\n try {\n reponse = await this.nativeProvider.tx.txInfo(txhash)\n } catch (error) {\n /* empty */\n }\n if (reponse !== undefined) {\n break\n }\n await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL))\n }\n if (reponse === undefined) {\n throw new Error(`Transaction ${txhash} not found`)\n } else if (reponse.code !== 0) {\n throw new Error(reponse.raw_log)\n }\n return Promise.resolve(TransactionReceipt.from(reponse))\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n type NativeSignedTransaction = Parameters<typeof this.nativeProvider.tx.broadcast>[0]\n const stx = transaction.signed as NativeSignedTransaction\n const response = await this.nativeProvider.tx.broadcast(stx)\n return this.confirmTransaction(TransactionPending.from(response), opts)\n }\n}\n","// eslint-disable-next-line import/default\nimport initia from '@initia/initia.js'\n\nimport {\n Provider,\n SignedTransaction,\n Signer,\n TransactionPending,\n TransactionReceipt,\n TransactionRequest,\n} from '@layerzerolabs/lz-core'\nimport { trim0x } from '@layerzerolabs/lz-utilities'\n\nimport { InitiaProvider } from '../providers'\n\n/**\n * Represents an Initia blockchain signer.\n * Implements the Signer interface for interacting with Initia-compatible blockchains.\n */\nexport class InitiaSigner implements Signer {\n public nativeKey: initia.MnemonicKey | initia.RawKey\n public nativeSigner: initia.Wallet | undefined\n public provider: InitiaProvider | undefined\n\n /**\n * Creates an instance of InitiaSigner.\n *\n * @param {initia.MnemonicKey | initia.RawKey} signer - The Initia key to use as the signer.\n */\n private constructor(signer: initia.MnemonicKey | initia.RawKey) {\n this.nativeKey = signer\n }\n\n /**\n * Creates an instance of InitiaSigner from a MnemonicKey.\n *\n * @param {initia.MnemonicKey} signer - The MnemonicKey to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(signer: initia.MnemonicKey): Signer\n\n /**\n * Creates an instance of InitiaSigner from a private key.\n *\n * @param {string} privKey - The private key to create the signer from.\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(privKey: string, coinType: number): Signer\n\n /**\n * Creates an instance of InitiaSigner from a mnemonic and derivation path.\n *\n * @param {string} mnemonic - The mnemonic to create the signer from.\n * @param {string} path - The derivation path (e.g., m/44'/637'/0'/0'/0').\n * @returns {Signer} The created InitiaSigner instance.\n */\n static from(mnemonic: string, path: string): Signer\n\n /**\n * Creates an instance of InitiaSigner from the given source.\n *\n * @param {string | initia.MnemonicKey} source - The source to create the signer from.\n * @param {string} [path] - The derivation path (optional).\n * @returns {Signer} The created InitiaSigner instance.\n * @throws {Error} If the parameters are invalid.\n */\n static from(source: string | initia.MnemonicKey, pathOrCoinType?: string | number): Signer {\n if (source instanceof initia.MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'number') {\n const signer = new initia.RawKey(\n Buffer.from(trim0x(source), 'hex'),\n pathOrCoinType === initia.INIT_COIN_TYPE\n ) // todo double check\n return new this(signer)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'string') {\n if (pathOrCoinType.startsWith('m/')) {\n const [_, coinType, account, __, index] = pathOrCoinType.match(/\\d+/g)?.map(Number) ?? [\n 44, 118, 0, 0, 0,\n ]\n const normalizeMnemonics = source\n .trim()\n .split(/\\s+/)\n .map((part) => part.toLowerCase())\n .join(' ')\n const key = new initia.MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n eth: coinType === initia.INIT_COIN_TYPE,\n })\n return new this(key)\n }\n }\n throw new Error('Invalid parameters')\n }\n\n /**\n * Gets the native Initia wallet instance.\n * Invoke connect method first to make sure the native provider is not undefined.\n *\n * @returns {initia.Wallet} The native Initia wallet instance.\n * @throws {Error} If the native provider is not connected.\n */\n get native(): initia.Wallet {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n return this.nativeSigner\n }\n\n /**\n * Connects the signer to a provider.\n *\n * @param {Provider} provider - The provider to connect to.\n * @returns {Signer} The connected signer.\n * @throws {Error} If the provider is not an instance of InitiaProvider.\n */\n connect(provider: Provider): Signer {\n if (!(provider instanceof InitiaProvider)) {\n throw new Error('Only InitiaProvider is supported.')\n }\n\n this.provider = provider\n this.nativeSigner = new initia.Wallet(this.provider.native, this.nativeKey)\n return this\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {Promise<string>} A promise that resolves to the address of the signer.\n */\n async getAddress(): Promise<string> {\n return Promise.resolve(initia.AccAddress.toHex(this.nativeKey.accAddress))\n }\n\n /**\n * Gets the address of the signer.\n *\n * @returns {string} The address of the signer.\n */\n get address(): string {\n return initia.AccAddress.toHex(this.nativeKey.accAddress)\n }\n\n /**\n * Sends a signed transaction and waits for confirmation.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [opts] - Optional parameters for sending and confirming the transaction.\n * @returns {Promise<TransactionReceipt>} A promise that resolves to the transaction receipt.\n * @throws {Error} If the provider is not connected.\n */\n async sendAndConfirm(transaction: SignedTransaction, opts?: object): Promise<TransactionReceipt> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n return this.provider.sendAndConfirm(transaction, opts)\n }\n\n /**\n * Sends a signed transaction.\n *\n * @param {SignedTransaction} transaction - The signed transaction to send.\n * @param {object} [sendOptions] - Optional parameters for sending the transaction.\n * @returns {Promise<TransactionPending>} A promise that resolves to the pending transaction.\n * @throws {Error} If the provider is not connected.\n */\n async sendTransaction(transaction: SignedTransaction, sendOptions?: object): Promise<TransactionPending> {\n if (this.provider === undefined) {\n throw new Error('provider is required')\n }\n\n return this.provider.sendTransaction(transaction, sendOptions)\n }\n\n /**\n * Signs a transaction.\n *\n * @param {TransactionRequest} transaction - The transaction request to sign.\n * @returns {Promise<SignedTransaction>} A promise that resolves to the signed transaction.\n * @throws {Error} If the native provider is not connected.\n */\n async signTransaction(transaction: TransactionRequest): Promise<SignedTransaction> {\n if (!this.nativeSigner) {\n throw new Error('Connect the native provider first with InitiaSigner.connect()')\n }\n const request = transaction.request as initia.CreateTxOptions\n const response = await this.nativeSigner.createAndSignTx(request)\n return SignedTransaction.from(response)\n }\n\n /**\n * Signs a buffer (e.g., a message hash) using the native Initia signer.\n *\n * @param {Uint8Array} buffer - The buffer to sign.\n * @returns {Promise<Uint8Array>} A promise that resolves to the signed buffer as a Uint8Array.\n */\n async signBuffer(buffer: Uint8Array): Promise<Uint8Array> {\n return this.nativeKey.sign(Buffer.from(buffer))\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/lz-corekit-initia",
3
- "version": "3.0.81",
3
+ "version": "3.0.82",
4
4
  "description": "LayerZero Core Library",
5
5
  "license": "BUSL-1.1",
6
6
  "exports": {
@@ -23,15 +23,15 @@
23
23
  "clean-prebuild": "rm -rf dist"
24
24
  },
25
25
  "dependencies": {
26
- "@initia/initia.js": "^0.2.11",
27
- "@layerzerolabs/lz-core": "^3.0.81",
28
- "@layerzerolabs/lz-utilities": "^3.0.81",
29
- "@layerzerolabs/move-definitions": "^3.0.81"
26
+ "@initia/initia.js": "^1.0.2",
27
+ "@layerzerolabs/lz-core": "^3.0.82",
28
+ "@layerzerolabs/lz-utilities": "^3.0.82",
29
+ "@layerzerolabs/move-definitions": "^3.0.82"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@jest/globals": "^29.7.0",
33
- "@layerzerolabs/tsup-config-next": "^3.0.81",
34
- "@layerzerolabs/typescript-config-next": "^3.0.81",
33
+ "@layerzerolabs/tsup-config-next": "^3.0.82",
34
+ "@layerzerolabs/typescript-config-next": "^3.0.82",
35
35
  "@types/jest": "^29.5.10",
36
36
  "jest": "^29.7.0",
37
37
  "jest-extended": "^4.0.2",