@keplr-wallet/cosmos 0.9.7 → 0.9.10

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.
@@ -0,0 +1,12 @@
1
+ import { StdSignDoc } from "@cosmjs/launchpad";
2
+ /**
3
+ * Check the sign doc is for ADR-36.
4
+ * If the sign doc is expected to be ADR-36, validate the sign doc and throw an error if the sign doc is valid ADR-36.
5
+ * @param signDoc
6
+ * @param bech32PrefixAccAddr If this argument is provided, validate the signer in the `MsgSignData` with this prefix.
7
+ * If not, validate the signer in the `MsgSignData` without considering the bech32 prefix.
8
+ */
9
+ export declare function checkAndValidateADR36AminoSignDoc(signDoc: StdSignDoc, bech32PrefixAccAddr?: string): boolean;
10
+ export declare function makeADR36AminoSignDoc(signer: string, data: string | Uint8Array): StdSignDoc;
11
+ export declare function verifyADR36AminoSignDoc(bech32PrefixAccAddr: string, signDoc: StdSignDoc, pubKey: Uint8Array, signature: Uint8Array): boolean;
12
+ export declare function verifyADR36Amino(bech32PrefixAccAddr: string, signer: string, data: string | Uint8Array, pubKey: Uint8Array, signature: Uint8Array): boolean;
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyADR36Amino = exports.verifyADR36AminoSignDoc = exports.makeADR36AminoSignDoc = exports.checkAndValidateADR36AminoSignDoc = void 0;
4
+ const launchpad_1 = require("@cosmjs/launchpad");
5
+ const bech32_1 = require("../bech32");
6
+ const buffer_1 = require("buffer/");
7
+ const crypto_1 = require("@keplr-wallet/crypto");
8
+ /**
9
+ * Check the sign doc is for ADR-36.
10
+ * If the sign doc is expected to be ADR-36, validate the sign doc and throw an error if the sign doc is valid ADR-36.
11
+ * @param signDoc
12
+ * @param bech32PrefixAccAddr If this argument is provided, validate the signer in the `MsgSignData` with this prefix.
13
+ * If not, validate the signer in the `MsgSignData` without considering the bech32 prefix.
14
+ */
15
+ function checkAndValidateADR36AminoSignDoc(signDoc, bech32PrefixAccAddr) {
16
+ const hasOnlyMsgSignData = (() => {
17
+ if (signDoc &&
18
+ signDoc.msgs &&
19
+ Array.isArray(signDoc.msgs) &&
20
+ signDoc.msgs.length === 1) {
21
+ const msg = signDoc.msgs[0];
22
+ return msg.type === "sign/MsgSignData";
23
+ }
24
+ else {
25
+ return false;
26
+ }
27
+ })();
28
+ if (!hasOnlyMsgSignData) {
29
+ return false;
30
+ }
31
+ if (signDoc.chain_id !== "") {
32
+ throw new Error("Chain id should be empty string for ADR-36 signing");
33
+ }
34
+ if (signDoc.memo !== "") {
35
+ throw new Error("Memo should be empty string for ADR-36 signing");
36
+ }
37
+ if (signDoc.account_number !== "0") {
38
+ throw new Error('Account number should be "0" for ADR-36 signing');
39
+ }
40
+ if (signDoc.sequence !== "0") {
41
+ throw new Error('Sequence should be "0" for ADR-36 signing');
42
+ }
43
+ if (signDoc.fee.gas !== "0") {
44
+ throw new Error('Gas should be "0" for ADR-36 signing');
45
+ }
46
+ if (signDoc.fee.amount.length !== 0) {
47
+ throw new Error("Fee amount should be empty array for ADR-36 signing");
48
+ }
49
+ const msg = signDoc.msgs[0];
50
+ if (msg.type !== "sign/MsgSignData") {
51
+ throw new Error(`Invalid type of ADR-36 sign msg: ${msg.type}`);
52
+ }
53
+ if (!msg.value) {
54
+ throw new Error("Empty value in the msg");
55
+ }
56
+ const signer = msg.value.signer;
57
+ if (!signer) {
58
+ throw new Error("Empty signer in the ADR-36 msg");
59
+ }
60
+ bech32_1.Bech32Address.validate(signer, bech32PrefixAccAddr);
61
+ const data = msg.value.data;
62
+ if (!data) {
63
+ throw new Error("Empty data in the ADR-36 msg");
64
+ }
65
+ const rawData = buffer_1.Buffer.from(data, "base64");
66
+ // Validate the data is encoded as base64.
67
+ if (rawData.toString("base64") !== data) {
68
+ throw new Error("Data is not encoded by base64");
69
+ }
70
+ if (rawData.length === 0) {
71
+ throw new Error("Empty data in the ADR-36 msg");
72
+ }
73
+ return true;
74
+ }
75
+ exports.checkAndValidateADR36AminoSignDoc = checkAndValidateADR36AminoSignDoc;
76
+ function makeADR36AminoSignDoc(signer, data) {
77
+ if (typeof data === "string") {
78
+ data = buffer_1.Buffer.from(data).toString("base64");
79
+ }
80
+ else {
81
+ data = buffer_1.Buffer.from(data).toString("base64");
82
+ }
83
+ return {
84
+ chain_id: "",
85
+ account_number: "0",
86
+ sequence: "0",
87
+ fee: {
88
+ gas: "0",
89
+ amount: [],
90
+ },
91
+ msgs: [
92
+ {
93
+ type: "sign/MsgSignData",
94
+ value: {
95
+ signer,
96
+ data,
97
+ },
98
+ },
99
+ ],
100
+ memo: "",
101
+ };
102
+ }
103
+ exports.makeADR36AminoSignDoc = makeADR36AminoSignDoc;
104
+ function verifyADR36AminoSignDoc(bech32PrefixAccAddr, signDoc, pubKey, signature) {
105
+ if (!checkAndValidateADR36AminoSignDoc(signDoc, bech32PrefixAccAddr)) {
106
+ throw new Error("Invalid sign doc for ADR-36");
107
+ }
108
+ const cryptoPubKey = new crypto_1.PubKeySecp256k1(pubKey);
109
+ const expectedSigner = new bech32_1.Bech32Address(cryptoPubKey.getAddress()).toBech32(bech32PrefixAccAddr);
110
+ const signer = signDoc.msgs[0].value.signer;
111
+ if (expectedSigner !== signer) {
112
+ throw new Error("Unmatched signer");
113
+ }
114
+ const msg = launchpad_1.serializeSignDoc(signDoc);
115
+ return cryptoPubKey.verify(msg, signature);
116
+ }
117
+ exports.verifyADR36AminoSignDoc = verifyADR36AminoSignDoc;
118
+ function verifyADR36Amino(bech32PrefixAccAddr, signer, data, pubKey, signature) {
119
+ const signDoc = makeADR36AminoSignDoc(signer, data);
120
+ return verifyADR36AminoSignDoc(bech32PrefixAccAddr, signDoc, pubKey, signature);
121
+ }
122
+ exports.verifyADR36Amino = verifyADR36Amino;
123
+ //# sourceMappingURL=amino.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amino.js","sourceRoot":"","sources":["../../src/adr-36/amino.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,446 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const amino_1 = require("./amino");
4
+ const launchpad_1 = require("@cosmjs/launchpad");
5
+ const crypto_1 = require("@keplr-wallet/crypto");
6
+ const bech32_1 = require("../bech32");
7
+ describe("Test ADR-36 Amino Sign Doc", () => {
8
+ it("Check not ADR-36 Amino sign doc", () => {
9
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({
10
+ chain_id: "osmosis-1",
11
+ account_number: "4287",
12
+ sequence: "377",
13
+ fee: {
14
+ gas: "80000",
15
+ amount: [
16
+ {
17
+ denom: "uosmo",
18
+ amount: "0",
19
+ },
20
+ ],
21
+ },
22
+ msgs: [
23
+ {
24
+ type: "cosmos-sdk/MsgSend",
25
+ value: {
26
+ from_address: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
27
+ to_address: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
28
+ amount: [
29
+ {
30
+ denom: "uosmo",
31
+ amount: "1000000",
32
+ },
33
+ ],
34
+ },
35
+ },
36
+ ],
37
+ memo: "",
38
+ })).toBe(false);
39
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({
40
+ chain_id: "osmosis-1",
41
+ account_number: "4287",
42
+ sequence: "377",
43
+ fee: {
44
+ gas: "80000",
45
+ amount: [
46
+ {
47
+ denom: "uosmo",
48
+ amount: "0",
49
+ },
50
+ ],
51
+ },
52
+ msgs: [],
53
+ memo: "",
54
+ })).toBe(false);
55
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({
56
+ chain_id: "osmosis-1",
57
+ account_number: "4287",
58
+ sequence: "377",
59
+ fee: {
60
+ gas: "80000",
61
+ amount: [
62
+ {
63
+ denom: "uosmo",
64
+ amount: "0",
65
+ },
66
+ ],
67
+ },
68
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
69
+ // @ts-ignore
70
+ msgs: {},
71
+ memo: "",
72
+ })).toBe(false);
73
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
74
+ // @ts-ignore
75
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({})).toBe(false);
76
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
77
+ // @ts-ignore
78
+ expect(amino_1.checkAndValidateADR36AminoSignDoc(undefined)).toBe(false);
79
+ });
80
+ it("Check valid ADR-36 Amino sign doc", () => {
81
+ // Without bech32 prefix
82
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({
83
+ chain_id: "",
84
+ account_number: "0",
85
+ sequence: "0",
86
+ fee: {
87
+ gas: "0",
88
+ amount: [],
89
+ },
90
+ msgs: [
91
+ {
92
+ type: "sign/MsgSignData",
93
+ value: {
94
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
95
+ data: "cmFuZG9t",
96
+ },
97
+ },
98
+ ],
99
+ memo: "",
100
+ })).toBe(true);
101
+ // With bech32 prefix
102
+ expect(amino_1.checkAndValidateADR36AminoSignDoc({
103
+ chain_id: "",
104
+ account_number: "0",
105
+ sequence: "0",
106
+ fee: {
107
+ gas: "0",
108
+ amount: [],
109
+ },
110
+ msgs: [
111
+ {
112
+ type: "sign/MsgSignData",
113
+ value: {
114
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
115
+ data: "cmFuZG9t",
116
+ },
117
+ },
118
+ ],
119
+ memo: "",
120
+ }, "osmo")).toBe(true);
121
+ // With invalid bech32 prefix
122
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
123
+ chain_id: "",
124
+ account_number: "0",
125
+ sequence: "0",
126
+ fee: {
127
+ gas: "0",
128
+ amount: [],
129
+ },
130
+ msgs: [
131
+ {
132
+ type: "sign/MsgSignData",
133
+ value: {
134
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
135
+ data: "cmFuZG9t",
136
+ },
137
+ },
138
+ ],
139
+ memo: "",
140
+ }, "cosmos")).toThrow();
141
+ });
142
+ it("Check invalid ADR-36 Amino sign doc", () => {
143
+ // Chain id should be empty string
144
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
145
+ chain_id: "haha",
146
+ account_number: "0",
147
+ sequence: "0",
148
+ fee: {
149
+ gas: "0",
150
+ amount: [],
151
+ },
152
+ msgs: [
153
+ {
154
+ type: "sign/MsgSignData",
155
+ value: {
156
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
157
+ data: "cmFuZG9t",
158
+ },
159
+ },
160
+ ],
161
+ memo: "",
162
+ })).toThrow();
163
+ // Account number should be "0"
164
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
165
+ chain_id: "",
166
+ account_number: "1",
167
+ sequence: "0",
168
+ fee: {
169
+ gas: "0",
170
+ amount: [],
171
+ },
172
+ msgs: [
173
+ {
174
+ type: "sign/MsgSignData",
175
+ value: {
176
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
177
+ data: "cmFuZG9t",
178
+ },
179
+ },
180
+ ],
181
+ memo: "",
182
+ })).toThrow();
183
+ // Sequence should be "0"
184
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
185
+ chain_id: "",
186
+ account_number: "0",
187
+ sequence: "1",
188
+ fee: {
189
+ gas: "0",
190
+ amount: [],
191
+ },
192
+ msgs: [
193
+ {
194
+ type: "sign/MsgSignData",
195
+ value: {
196
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
197
+ data: "cmFuZG9t",
198
+ },
199
+ },
200
+ ],
201
+ memo: "",
202
+ })).toThrow();
203
+ // Gas should be "0"
204
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
205
+ chain_id: "",
206
+ account_number: "0",
207
+ sequence: "0",
208
+ fee: {
209
+ gas: "1",
210
+ amount: [],
211
+ },
212
+ msgs: [
213
+ {
214
+ type: "sign/MsgSignData",
215
+ value: {
216
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
217
+ data: "cmFuZG9t",
218
+ },
219
+ },
220
+ ],
221
+ memo: "",
222
+ })).toThrow();
223
+ // Amount should be empty string
224
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
225
+ chain_id: "",
226
+ account_number: "0",
227
+ sequence: "0",
228
+ fee: {
229
+ gas: "0",
230
+ amount: [
231
+ {
232
+ denom: "haha",
233
+ amount: "1",
234
+ },
235
+ ],
236
+ },
237
+ msgs: [
238
+ {
239
+ type: "sign/MsgSignData",
240
+ value: {
241
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
242
+ data: "cmFuZG9t",
243
+ },
244
+ },
245
+ ],
246
+ memo: "",
247
+ })).toThrow();
248
+ // Memo should be empty string
249
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
250
+ chain_id: "",
251
+ account_number: "0",
252
+ sequence: "0",
253
+ fee: {
254
+ gas: "0",
255
+ amount: [],
256
+ },
257
+ msgs: [
258
+ {
259
+ type: "sign/MsgSignData",
260
+ value: {
261
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
262
+ data: "cmFuZG9t",
263
+ },
264
+ },
265
+ ],
266
+ memo: "1",
267
+ })).toThrow();
268
+ // Should be value
269
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
270
+ chain_id: "",
271
+ account_number: "0",
272
+ sequence: "0",
273
+ fee: {
274
+ gas: "0",
275
+ amount: [],
276
+ },
277
+ msgs: [
278
+ {
279
+ type: "sign/MsgSignData",
280
+ },
281
+ ],
282
+ memo: "",
283
+ })).toThrow();
284
+ // Value should have signer
285
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
286
+ chain_id: "",
287
+ account_number: "0",
288
+ sequence: "0",
289
+ fee: {
290
+ gas: "0",
291
+ amount: [],
292
+ },
293
+ msgs: [
294
+ {
295
+ type: "sign/MsgSignData",
296
+ value: {
297
+ data: "cmFuZG9t",
298
+ },
299
+ },
300
+ ],
301
+ memo: "",
302
+ })).toThrow();
303
+ // Value should have valid signer
304
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
305
+ chain_id: "",
306
+ account_number: "0",
307
+ sequence: "0",
308
+ fee: {
309
+ gas: "0",
310
+ amount: [],
311
+ },
312
+ msgs: [
313
+ {
314
+ type: "sign/MsgSignData",
315
+ value: {
316
+ signer: "invalid1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
317
+ data: "cmFuZG9t",
318
+ },
319
+ },
320
+ ],
321
+ memo: "",
322
+ })).toThrow();
323
+ // Value should be data
324
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
325
+ chain_id: "",
326
+ account_number: "0",
327
+ sequence: "0",
328
+ fee: {
329
+ gas: "0",
330
+ amount: [],
331
+ },
332
+ msgs: [
333
+ {
334
+ type: "sign/MsgSignData",
335
+ value: {
336
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
337
+ },
338
+ },
339
+ ],
340
+ memo: "",
341
+ })).toThrow();
342
+ // Value should be base64 encoded data
343
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
344
+ chain_id: "",
345
+ account_number: "0",
346
+ sequence: "0",
347
+ fee: {
348
+ gas: "0",
349
+ amount: [],
350
+ },
351
+ msgs: [
352
+ {
353
+ type: "sign/MsgSignData",
354
+ value: {
355
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
356
+ data: "sc12v",
357
+ },
358
+ },
359
+ ],
360
+ memo: "",
361
+ })).toThrow();
362
+ // Value should not have the empty data
363
+ expect(() => amino_1.checkAndValidateADR36AminoSignDoc({
364
+ chain_id: "",
365
+ account_number: "0",
366
+ sequence: "0",
367
+ fee: {
368
+ gas: "0",
369
+ amount: [],
370
+ },
371
+ msgs: [
372
+ {
373
+ type: "sign/MsgSignData",
374
+ value: {
375
+ signer: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
376
+ data: "",
377
+ },
378
+ },
379
+ ],
380
+ memo: "",
381
+ })).toThrow();
382
+ });
383
+ it("Make ADR-36 Amino sign doc and validate", () => {
384
+ let signDoc = amino_1.makeADR36AminoSignDoc("osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h", new Uint8Array([1, 2, 3]));
385
+ expect(signDoc.msgs[0].type).toBe("sign/MsgSignData");
386
+ expect(signDoc.msgs[0].value.signer).toBe("osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h");
387
+ expect(signDoc.msgs[0].value.data).toBe(Buffer.from([1, 2, 3]).toString("base64"));
388
+ expect(amino_1.checkAndValidateADR36AminoSignDoc(signDoc)).toBe(true);
389
+ signDoc = amino_1.makeADR36AminoSignDoc("osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h", "test");
390
+ expect(signDoc.msgs[0].type).toBe("sign/MsgSignData");
391
+ expect(signDoc.msgs[0].value.signer).toBe("osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h");
392
+ expect(signDoc.msgs[0].value.data).toBe(Buffer.from("test").toString("base64"));
393
+ expect(amino_1.checkAndValidateADR36AminoSignDoc(signDoc)).toBe(true);
394
+ });
395
+ it("Verify ADR-36 Amino sign doc", () => {
396
+ const privKey = crypto_1.PrivKeySecp256k1.generateRandomKey();
397
+ const pubKey = privKey.getPubKey();
398
+ const signer = new bech32_1.Bech32Address(pubKey.getAddress()).toBech32("osmo");
399
+ const signDoc = amino_1.makeADR36AminoSignDoc(signer, new Uint8Array([1, 2, 3]));
400
+ const msg = launchpad_1.serializeSignDoc(signDoc);
401
+ const signature = privKey.sign(msg);
402
+ expect(amino_1.verifyADR36AminoSignDoc("osmo", signDoc, pubKey.toBytes(), signature)).toBe(true);
403
+ expect(() => amino_1.verifyADR36AminoSignDoc("osmo",
404
+ // Sign doc is not for ADR-36
405
+ {
406
+ chain_id: "osmosis-1",
407
+ account_number: "4287",
408
+ sequence: "377",
409
+ fee: {
410
+ gas: "80000",
411
+ amount: [
412
+ {
413
+ denom: "uosmo",
414
+ amount: "0",
415
+ },
416
+ ],
417
+ },
418
+ msgs: [
419
+ {
420
+ type: "cosmos-sdk/MsgSend",
421
+ value: {
422
+ from_address: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
423
+ to_address: "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h",
424
+ amount: [
425
+ {
426
+ denom: "uosmo",
427
+ amount: "1000000",
428
+ },
429
+ ],
430
+ },
431
+ },
432
+ ],
433
+ memo: "",
434
+ }, pubKey.toBytes(), signature)).toThrow();
435
+ expect(amino_1.verifyADR36Amino("osmo", signer, new Uint8Array([1, 2, 3]), pubKey.toBytes(), signature)).toBe(true);
436
+ expect(() => amino_1.verifyADR36Amino("osmo",
437
+ // Unmatched signer
438
+ "osmo1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h", new Uint8Array([1, 2, 3]), pubKey.toBytes(), signature)).toThrow();
439
+ expect(() => amino_1.verifyADR36Amino("osmo",
440
+ // Invalid signer
441
+ "invalid1ymk637a7wljvt4w7q9lnrw95mg9sr37yatxd9h", new Uint8Array([1, 2, 3]), pubKey.toBytes(), signature)).toThrow();
442
+ expect(amino_1.verifyADR36AminoSignDoc("osmo", signDoc, pubKey.toBytes(), signature.slice().filter((b) => (Math.random() > 0.5 ? 0 : b)))).toBe(false);
443
+ expect(amino_1.verifyADR36Amino("osmo", signer, new Uint8Array([1, 2]), pubKey.toBytes(), signature)).toBe(false);
444
+ });
445
+ });
446
+ //# sourceMappingURL=amino.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amino.spec.js","sourceRoot":"","sources":["../../src/adr-36/amino.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./amino";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./amino"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adr-36/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAwB"}
@@ -1,10 +1,26 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
4
20
  };
5
21
  Object.defineProperty(exports, "__esModule", { value: true });
6
22
  exports.Bech32Address = void 0;
7
- const bech32_1 = __importDefault(require("bech32"));
23
+ const bech32_1 = __importStar(require("bech32"));
8
24
  class Bech32Address {
9
25
  constructor(address) {
10
26
  this.address = address;
@@ -40,7 +56,7 @@ class Bech32Address {
40
56
  if (prefix && decoded.prefix !== prefix) {
41
57
  throw new Error("Unmatched prefix");
42
58
  }
43
- return new Bech32Address(new Uint8Array(decoded.words));
59
+ return new Bech32Address(new Uint8Array(bech32_1.fromWords(decoded.words)));
44
60
  }
45
61
  static validate(bech32Address, prefix) {
46
62
  const { prefix: decodedPrefix } = bech32_1.default.decode(bech32Address);