@layerzerolabs/lz-corekit-initia 3.0.86 → 3.0.88
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 +20 -0
- package/dist/index.cjs +15 -22
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +11 -11
- package/dist/index.d.ts +11 -11
- package/dist/index.mjs +15 -18
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @layerzerolabs/lz-corekit-initia
|
|
2
2
|
|
|
3
|
+
## 3.0.88
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d0cda5e: ton sdk-tools refactored, added rawDispatch action to funC++
|
|
8
|
+
- Updated dependencies [d0cda5e]
|
|
9
|
+
- @layerzerolabs/lz-core@3.0.88
|
|
10
|
+
- @layerzerolabs/lz-utilities@3.0.88
|
|
11
|
+
- @layerzerolabs/move-definitions@3.0.88
|
|
12
|
+
|
|
13
|
+
## 3.0.87
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- e92c65d: Update initia.js version
|
|
18
|
+
- Updated dependencies [e92c65d]
|
|
19
|
+
- @layerzerolabs/lz-core@3.0.87
|
|
20
|
+
- @layerzerolabs/lz-utilities@3.0.87
|
|
21
|
+
- @layerzerolabs/move-definitions@3.0.87
|
|
22
|
+
|
|
3
23
|
## 3.0.86
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var initia_js = 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
|
-
|
|
11
7
|
// src/providers/initia.ts
|
|
12
8
|
var POLL_INTERVAL = 500;
|
|
13
9
|
var CONFIRM_TIMEOUT = 3e4;
|
|
@@ -19,7 +15,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
19
15
|
*/
|
|
20
16
|
constructor(url) {
|
|
21
17
|
this.url = url;
|
|
22
|
-
this.nativeProvider = new
|
|
18
|
+
this.nativeProvider = new initia_js.LCDClient(url);
|
|
23
19
|
}
|
|
24
20
|
static from(source) {
|
|
25
21
|
if (typeof source === "string") {
|
|
@@ -31,7 +27,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
31
27
|
/**
|
|
32
28
|
* Gets the native Initia provider instance.
|
|
33
29
|
*
|
|
34
|
-
* @returns {
|
|
30
|
+
* @returns {LCDClient} The native Initia provider instance.
|
|
35
31
|
*/
|
|
36
32
|
get native() {
|
|
37
33
|
return this.nativeProvider;
|
|
@@ -46,7 +42,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
46
42
|
async getBalance(address) {
|
|
47
43
|
let accAddress;
|
|
48
44
|
if (!lzUtilities.isHex(address)) {
|
|
49
|
-
accAddress =
|
|
45
|
+
accAddress = initia_js.AccAddress.fromHex(address);
|
|
50
46
|
} else if (address.startsWith("init")) {
|
|
51
47
|
accAddress = address;
|
|
52
48
|
} else {
|
|
@@ -161,7 +157,7 @@ var InitiaProvider = class _InitiaProvider {
|
|
|
161
157
|
const _addressOrName = await Promise.resolve(addressOrName);
|
|
162
158
|
let accAddress;
|
|
163
159
|
if (lzUtilities.isHex(_addressOrName)) {
|
|
164
|
-
accAddress =
|
|
160
|
+
accAddress = initia_js.AccAddress.fromHex(_addressOrName);
|
|
165
161
|
} else if (_addressOrName.startsWith("init")) {
|
|
166
162
|
accAddress = _addressOrName;
|
|
167
163
|
} else {
|
|
@@ -234,7 +230,7 @@ var InitiaSigner = class {
|
|
|
234
230
|
/**
|
|
235
231
|
* Creates an instance of InitiaSigner.
|
|
236
232
|
*
|
|
237
|
-
* @param {
|
|
233
|
+
* @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
|
|
238
234
|
*/
|
|
239
235
|
constructor(signer) {
|
|
240
236
|
this.nativeKey = signer;
|
|
@@ -242,19 +238,16 @@ var InitiaSigner = class {
|
|
|
242
238
|
/**
|
|
243
239
|
* Creates an instance of InitiaSigner from the given source.
|
|
244
240
|
*
|
|
245
|
-
* @param {string |
|
|
241
|
+
* @param {string | MnemonicKey} source - The source to create the signer from.
|
|
246
242
|
* @param {string} [path] - The derivation path (optional).
|
|
247
243
|
* @returns {Signer} The created InitiaSigner instance.
|
|
248
244
|
* @throws {Error} If the parameters are invalid.
|
|
249
245
|
*/
|
|
250
246
|
static from(source, pathOrCoinType) {
|
|
251
|
-
if (source instanceof
|
|
247
|
+
if (source instanceof initia_js.MnemonicKey) {
|
|
252
248
|
return new this(source);
|
|
253
249
|
} else if (typeof source === "string" && typeof pathOrCoinType === "number") {
|
|
254
|
-
const signer = new
|
|
255
|
-
Buffer.from(lzUtilities.trim0x(source), "hex"),
|
|
256
|
-
pathOrCoinType === initia2__default.default.INIT_COIN_TYPE
|
|
257
|
-
);
|
|
250
|
+
const signer = new initia_js.RawKey(Buffer.from(lzUtilities.trim0x(source), "hex"), pathOrCoinType === initia_js.INIT_COIN_TYPE);
|
|
258
251
|
return new this(signer);
|
|
259
252
|
} else if (typeof source === "string" && typeof pathOrCoinType === "string") {
|
|
260
253
|
if (pathOrCoinType.startsWith("m/")) {
|
|
@@ -266,12 +259,12 @@ var InitiaSigner = class {
|
|
|
266
259
|
0
|
|
267
260
|
];
|
|
268
261
|
const normalizeMnemonics = source.trim().split(/\s+/).map((part) => part.toLowerCase()).join(" ");
|
|
269
|
-
const key = new
|
|
262
|
+
const key = new initia_js.MnemonicKey({
|
|
270
263
|
mnemonic: normalizeMnemonics,
|
|
271
264
|
coinType,
|
|
272
265
|
account,
|
|
273
266
|
index,
|
|
274
|
-
eth: coinType ===
|
|
267
|
+
eth: coinType === initia_js.INIT_COIN_TYPE
|
|
275
268
|
});
|
|
276
269
|
return new this(key);
|
|
277
270
|
}
|
|
@@ -282,7 +275,7 @@ var InitiaSigner = class {
|
|
|
282
275
|
* Gets the native Initia wallet instance.
|
|
283
276
|
* Invoke connect method first to make sure the native provider is not undefined.
|
|
284
277
|
*
|
|
285
|
-
* @returns {
|
|
278
|
+
* @returns {Wallet} The native Initia wallet instance.
|
|
286
279
|
* @throws {Error} If the native provider is not connected.
|
|
287
280
|
*/
|
|
288
281
|
get native() {
|
|
@@ -303,7 +296,7 @@ var InitiaSigner = class {
|
|
|
303
296
|
throw new Error("Only InitiaProvider is supported.");
|
|
304
297
|
}
|
|
305
298
|
this.provider = provider;
|
|
306
|
-
this.nativeSigner = new
|
|
299
|
+
this.nativeSigner = new initia_js.Wallet(this.provider.native, this.nativeKey);
|
|
307
300
|
return this;
|
|
308
301
|
}
|
|
309
302
|
/**
|
|
@@ -312,7 +305,7 @@ var InitiaSigner = class {
|
|
|
312
305
|
* @returns {Promise<string>} A promise that resolves to the address of the signer.
|
|
313
306
|
*/
|
|
314
307
|
async getAddress() {
|
|
315
|
-
return Promise.resolve(
|
|
308
|
+
return Promise.resolve(initia_js.AccAddress.toHex(this.nativeKey.accAddress));
|
|
316
309
|
}
|
|
317
310
|
/**
|
|
318
311
|
* Gets the address of the signer.
|
|
@@ -320,7 +313,7 @@ var InitiaSigner = class {
|
|
|
320
313
|
* @returns {string} The address of the signer.
|
|
321
314
|
*/
|
|
322
315
|
get address() {
|
|
323
|
-
return
|
|
316
|
+
return initia_js.AccAddress.toHex(this.nativeKey.accAddress);
|
|
324
317
|
}
|
|
325
318
|
/**
|
|
326
319
|
* Sends a signed transaction and waits for confirmation.
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["initia","isHex","Block","TransactionResponse","TransactionReceipt","TransactionPending","trim0x","SignedTransaction"],"mappings":";;;;;;;;;;;AAeA,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,IAAA,IAAA,CAAK,cAAiB,GAAA,IAAIA,wBAAO,CAAA,SAAA,CAAU,GAAG,CAAA;AAAA;AAClD,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,MAA2B,GAAA;AAC3B,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,GAAAD,wBAAA,CAAO,UAAW,CAAA,OAAA,CAAQ,OAAO,CAAA;AAAA,KACvC,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,OAAAE,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,CAACD,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,OAAAE,0BAAA,CAAoB,KAAK,QAAQ,CAAA;AAAA;AAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,sBAAsB,MAA6C,EAAA;AACrE,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,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,IAAAH,iBAAA,CAAM,cAAc,CAAG,EAAA;AACvB,MAAa,UAAA,GAAAD,wBAAA,CAAO,UAAW,CAAA,OAAA,CAAQ,cAAc,CAAA;AAAA,KAC9C,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,OAAAK,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,MAA4C,EAAA;AAC5D,IAAA,IAAA,CAAK,SAAY,GAAA,MAAA;AAAA;AACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmCA,OAAO,IAAK,CAAA,MAAA,EAAqC,cAA0C,EAAA;AACvF,IAAI,IAAA,MAAA,YAAkBL,yBAAO,WAAa,EAAA;AACtC,MAAO,OAAA,IAAI,KAAK,MAAM,CAAA;AAAA,eACf,OAAO,MAAA,KAAW,QAAY,IAAA,OAAO,mBAAmB,QAAU,EAAA;AACzE,MAAM,MAAA,MAAA,GAAS,IAAIA,wBAAO,CAAA,MAAA;AAAA,QACtB,MAAO,CAAA,IAAA,CAAKM,kBAAO,CAAA,MAAM,GAAG,KAAK,CAAA;AAAA,QACjC,mBAAmBN,wBAAO,CAAA;AAAA,OAC9B;AACA,MAAO,OAAA,IAAI,KAAK,MAAM,CAAA;AAAA,eACf,OAAO,MAAA,KAAW,QAAY,IAAA,OAAO,mBAAmB,QAAU,EAAA;AACzE,MAAI,IAAA,cAAA,CAAe,UAAW,CAAA,IAAI,CAAG,EAAA;AACjC,QAAA,MAAM,CAAC,CAAA,EAAG,QAAU,EAAA,OAAA,EAAS,EAAI,EAAA,KAAK,CAAI,GAAA,cAAA,CAAe,KAAM,CAAA,MAAM,CAAG,EAAA,GAAA,CAAI,MAAM,CAAK,IAAA;AAAA,UACnF,EAAA;AAAA,UAAI,GAAA;AAAA,UAAK,CAAA;AAAA,UAAG,CAAA;AAAA,UAAG;AAAA,SACnB;AACA,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,IAAIA,wBAAAA,CAAO,WAAY,CAAA;AAAA,UAC/B,QAAU,EAAA,kBAAA;AAAA,UACV,QAAA;AAAA,UACA,OAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAA,EAAK,aAAaA,wBAAO,CAAA;AAAA,SAC5B,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,MAAwB,GAAA;AACxB,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,IAAK,IAAA,CAAA,YAAA,GAAe,IAAIA,wBAAO,CAAA,MAAA,CAAO,KAAK,QAAS,CAAA,MAAA,EAAQ,KAAK,SAAS,CAAA;AAC1E,IAAO,OAAA,IAAA;AAAA;AACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,UAA8B,GAAA;AAChC,IAAO,OAAA,OAAA,CAAQ,QAAQA,wBAAO,CAAA,UAAA,CAAW,MAAM,IAAK,CAAA,SAAA,CAAU,UAAU,CAAC,CAAA;AAAA;AAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,OAAkB,GAAA;AAClB,IAAA,OAAOA,wBAAO,CAAA,UAAA,CAAW,KAAM,CAAA,IAAA,CAAK,UAAU,UAAU,CAAA;AAAA;AAC5D;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,IAAOO,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":["// 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"]}
|
|
1
|
+
{"version":3,"sources":["../src/providers/initia.ts","../src/signers/initia.ts"],"names":["LCDClient","isHex","AccAddress","Block","TransactionResponse","TransactionReceipt","TransactionPending","MnemonicKey","RawKey","trim0x","INIT_COIN_TYPE","Wallet","SignedTransaction"],"mappings":"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","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, INIT_COIN_TYPE, 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, 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 | 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, pathOrCoinType?: string | number): Signer {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'number') {\n const signer = new RawKey(Buffer.from(trim0x(source), 'hex'), pathOrCoinType === INIT_COIN_TYPE) // 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 MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n eth: coinType === 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 {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"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { LCDClient, MnemonicKey, RawKey, Wallet } 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:
|
|
10
|
+
readonly nativeProvider: 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 {
|
|
28
|
+
* @returns {LCDClient} The native Initia provider instance.
|
|
29
29
|
*/
|
|
30
|
-
get native():
|
|
30
|
+
get native(): LCDClient;
|
|
31
31
|
/**
|
|
32
32
|
* Gets the balance of the specified address.
|
|
33
33
|
*
|
|
@@ -132,22 +132,22 @@ 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:
|
|
136
|
-
nativeSigner:
|
|
135
|
+
nativeKey: MnemonicKey | RawKey;
|
|
136
|
+
nativeSigner: Wallet | undefined;
|
|
137
137
|
provider: InitiaProvider | undefined;
|
|
138
138
|
/**
|
|
139
139
|
* Creates an instance of InitiaSigner.
|
|
140
140
|
*
|
|
141
|
-
* @param {
|
|
141
|
+
* @param {MnemonicKey | 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 {
|
|
147
|
+
* @param {MnemonicKey} signer - The MnemonicKey to create the signer from.
|
|
148
148
|
* @returns {Signer} The created InitiaSigner instance.
|
|
149
149
|
*/
|
|
150
|
-
static from(signer:
|
|
150
|
+
static from(signer: MnemonicKey): Signer;
|
|
151
151
|
/**
|
|
152
152
|
* Creates an instance of InitiaSigner from a private key.
|
|
153
153
|
*
|
|
@@ -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 {
|
|
170
|
+
* @returns {Wallet} The native Initia wallet instance.
|
|
171
171
|
* @throws {Error} If the native provider is not connected.
|
|
172
172
|
*/
|
|
173
|
-
get native():
|
|
173
|
+
get native(): 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
|
|
1
|
+
import { LCDClient, MnemonicKey, RawKey, Wallet } 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:
|
|
10
|
+
readonly nativeProvider: 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 {
|
|
28
|
+
* @returns {LCDClient} The native Initia provider instance.
|
|
29
29
|
*/
|
|
30
|
-
get native():
|
|
30
|
+
get native(): LCDClient;
|
|
31
31
|
/**
|
|
32
32
|
* Gets the balance of the specified address.
|
|
33
33
|
*
|
|
@@ -132,22 +132,22 @@ 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:
|
|
136
|
-
nativeSigner:
|
|
135
|
+
nativeKey: MnemonicKey | RawKey;
|
|
136
|
+
nativeSigner: Wallet | undefined;
|
|
137
137
|
provider: InitiaProvider | undefined;
|
|
138
138
|
/**
|
|
139
139
|
* Creates an instance of InitiaSigner.
|
|
140
140
|
*
|
|
141
|
-
* @param {
|
|
141
|
+
* @param {MnemonicKey | 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 {
|
|
147
|
+
* @param {MnemonicKey} signer - The MnemonicKey to create the signer from.
|
|
148
148
|
* @returns {Signer} The created InitiaSigner instance.
|
|
149
149
|
*/
|
|
150
|
-
static from(signer:
|
|
150
|
+
static from(signer: MnemonicKey): Signer;
|
|
151
151
|
/**
|
|
152
152
|
* Creates an instance of InitiaSigner from a private key.
|
|
153
153
|
*
|
|
@@ -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 {
|
|
170
|
+
* @returns {Wallet} The native Initia wallet instance.
|
|
171
171
|
* @throws {Error} If the native provider is not connected.
|
|
172
172
|
*/
|
|
173
|
-
get native():
|
|
173
|
+
get native(): Wallet;
|
|
174
174
|
/**
|
|
175
175
|
* Connects the signer to a provider.
|
|
176
176
|
*
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { LCDClient, AccAddress, MnemonicKey, RawKey, INIT_COIN_TYPE, Wallet } 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
|
|
16
|
+
this.nativeProvider = new 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 {
|
|
28
|
+
* @returns {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 =
|
|
43
|
+
accAddress = 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 =
|
|
158
|
+
accAddress = 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 {
|
|
231
|
+
* @param {MnemonicKey | RawKey} signer - The Initia key to use as the signer.
|
|
232
232
|
*/
|
|
233
233
|
constructor(signer) {
|
|
234
234
|
this.nativeKey = signer;
|
|
@@ -236,19 +236,16 @@ var InitiaSigner = class {
|
|
|
236
236
|
/**
|
|
237
237
|
* Creates an instance of InitiaSigner from the given source.
|
|
238
238
|
*
|
|
239
|
-
* @param {string |
|
|
239
|
+
* @param {string | 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
244
|
static from(source, pathOrCoinType) {
|
|
245
|
-
if (source instanceof
|
|
245
|
+
if (source instanceof MnemonicKey) {
|
|
246
246
|
return new this(source);
|
|
247
247
|
} else if (typeof source === "string" && typeof pathOrCoinType === "number") {
|
|
248
|
-
const signer = new
|
|
249
|
-
Buffer.from(trim0x(source), "hex"),
|
|
250
|
-
pathOrCoinType === initia2.INIT_COIN_TYPE
|
|
251
|
-
);
|
|
248
|
+
const signer = new RawKey(Buffer.from(trim0x(source), "hex"), pathOrCoinType === INIT_COIN_TYPE);
|
|
252
249
|
return new this(signer);
|
|
253
250
|
} else if (typeof source === "string" && typeof pathOrCoinType === "string") {
|
|
254
251
|
if (pathOrCoinType.startsWith("m/")) {
|
|
@@ -260,12 +257,12 @@ var InitiaSigner = class {
|
|
|
260
257
|
0
|
|
261
258
|
];
|
|
262
259
|
const normalizeMnemonics = source.trim().split(/\s+/).map((part) => part.toLowerCase()).join(" ");
|
|
263
|
-
const key = new
|
|
260
|
+
const key = new MnemonicKey({
|
|
264
261
|
mnemonic: normalizeMnemonics,
|
|
265
262
|
coinType,
|
|
266
263
|
account,
|
|
267
264
|
index,
|
|
268
|
-
eth: coinType ===
|
|
265
|
+
eth: coinType === INIT_COIN_TYPE
|
|
269
266
|
});
|
|
270
267
|
return new this(key);
|
|
271
268
|
}
|
|
@@ -276,7 +273,7 @@ var InitiaSigner = class {
|
|
|
276
273
|
* Gets the native Initia wallet instance.
|
|
277
274
|
* Invoke connect method first to make sure the native provider is not undefined.
|
|
278
275
|
*
|
|
279
|
-
* @returns {
|
|
276
|
+
* @returns {Wallet} The native Initia wallet instance.
|
|
280
277
|
* @throws {Error} If the native provider is not connected.
|
|
281
278
|
*/
|
|
282
279
|
get native() {
|
|
@@ -297,7 +294,7 @@ var InitiaSigner = class {
|
|
|
297
294
|
throw new Error("Only InitiaProvider is supported.");
|
|
298
295
|
}
|
|
299
296
|
this.provider = provider;
|
|
300
|
-
this.nativeSigner = new
|
|
297
|
+
this.nativeSigner = new Wallet(this.provider.native, this.nativeKey);
|
|
301
298
|
return this;
|
|
302
299
|
}
|
|
303
300
|
/**
|
|
@@ -306,7 +303,7 @@ var InitiaSigner = class {
|
|
|
306
303
|
* @returns {Promise<string>} A promise that resolves to the address of the signer.
|
|
307
304
|
*/
|
|
308
305
|
async getAddress() {
|
|
309
|
-
return Promise.resolve(
|
|
306
|
+
return Promise.resolve(AccAddress.toHex(this.nativeKey.accAddress));
|
|
310
307
|
}
|
|
311
308
|
/**
|
|
312
309
|
* Gets the address of the signer.
|
|
@@ -314,7 +311,7 @@ var InitiaSigner = class {
|
|
|
314
311
|
* @returns {string} The address of the signer.
|
|
315
312
|
*/
|
|
316
313
|
get address() {
|
|
317
|
-
return
|
|
314
|
+
return AccAddress.toHex(this.nativeKey.accAddress);
|
|
318
315
|
}
|
|
319
316
|
/**
|
|
320
317
|
* Sends a signed transaction and waits for confirmation.
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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"]}
|
|
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, INIT_COIN_TYPE, 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, 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 | 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, pathOrCoinType?: string | number): Signer {\n if (source instanceof MnemonicKey) {\n return new this(source)\n } else if (typeof source === 'string' && typeof pathOrCoinType === 'number') {\n const signer = new RawKey(Buffer.from(trim0x(source), 'hex'), pathOrCoinType === INIT_COIN_TYPE) // 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 MnemonicKey({\n mnemonic: normalizeMnemonics,\n coinType,\n account,\n index,\n eth: coinType === 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 {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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/lz-corekit-initia",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.88",
|
|
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": "
|
|
27
|
-
"@layerzerolabs/lz-core": "^3.0.
|
|
28
|
-
"@layerzerolabs/lz-utilities": "^3.0.
|
|
29
|
-
"@layerzerolabs/move-definitions": "^3.0.
|
|
26
|
+
"@initia/initia.js": "1.0.4",
|
|
27
|
+
"@layerzerolabs/lz-core": "^3.0.88",
|
|
28
|
+
"@layerzerolabs/lz-utilities": "^3.0.88",
|
|
29
|
+
"@layerzerolabs/move-definitions": "^3.0.88"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@jest/globals": "^29.7.0",
|
|
33
|
-
"@layerzerolabs/tsup-config-next": "^3.0.
|
|
34
|
-
"@layerzerolabs/typescript-config-next": "^3.0.
|
|
33
|
+
"@layerzerolabs/tsup-config-next": "^3.0.88",
|
|
34
|
+
"@layerzerolabs/typescript-config-next": "^3.0.88",
|
|
35
35
|
"@types/jest": "^29.5.10",
|
|
36
36
|
"jest": "^29.7.0",
|
|
37
37
|
"jest-extended": "^4.0.2",
|