koilib 5.1.1 → 5.2.0

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.
@@ -60,6 +60,44 @@ export declare function bitcoinDecode(value: string): Uint8Array;
60
60
  * address = bitcoinEncode( ripemd160 ( sha256 ( publicKey ) ) )
61
61
  */
62
62
  export declare function bitcoinAddress(publicKey: Uint8Array): string;
63
+ /**
64
+ * Checks if the last 4 bytes matches with the double sha256
65
+ * of the first part
66
+ */
67
+ export declare function isChecksum(buffer: Uint8Array): boolean;
68
+ /**
69
+ * Checks if the checksum of an address is correct.
70
+ *
71
+ * The address has 3 parts in this order:
72
+ * - prefix: 1 byte
73
+ * - data: 20 bytes
74
+ * - checksum: 4 bytes
75
+ *
76
+ * checks:
77
+ * - It must be "pay to public key hash" (P2PKH). That is prefix 0
78
+ * - checksum = first 4 bytes of sha256(sha256(prefix + data))
79
+ *
80
+ * See [How to generate a bitcoin address step by step](https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by-step-9d7fcbf1ad0b).
81
+ */
82
+ export declare function isChecksumAddress(address: string | Uint8Array): boolean;
83
+ /**
84
+ * Checks if the checksum of an private key WIF is correct.
85
+ *
86
+ * The private key WIF has 3 parts in this order:
87
+ * - prefix: 1 byte
88
+ * - private key: 32 bytes
89
+ * - compressed: 1 byte for compressed public key (no byte for uncompressed)
90
+ * - checksum: 4 bytes
91
+ *
92
+ * checks:
93
+ * - It must use version 0x80 in the prefix
94
+ * - If the corresponding public key is compressed the byte 33 must be 0x01
95
+ * - checksum = first 4 bytes of
96
+ * sha256(sha256(prefix + private key + compressed))
97
+ *
98
+ * See [Bitcoin WIF](https://en.bitcoin.it/wiki/Wallet_import_format).
99
+ */
100
+ export declare function isChecksumWif(wif: string | Uint8Array): boolean;
63
101
  /**
64
102
  * Function to format a number in a decimal point number
65
103
  * @example
@@ -80,10 +118,10 @@ export declare function formatUnits(value: string | number | bigint, decimals: n
80
118
  * ```
81
119
  */
82
120
  export declare function parseUnits(value: string, decimals: number): string;
83
- export declare function btypeDecodeValue(valueEncoded: unknown, typeField: TypeField): unknown;
84
- export declare function btypeEncodeValue(valueDecoded: unknown, typeField: TypeField): unknown;
85
- export declare function btypeDecode(valueEncoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>): Record<string, unknown>;
86
- export declare function btypeEncode(valueDecoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>): Record<string, unknown>;
121
+ export declare function btypeDecodeValue(valueEncoded: unknown, typeField: TypeField, verifyChecksum: boolean): unknown;
122
+ export declare function btypeEncodeValue(valueDecoded: unknown, typeField: TypeField, verifyChecksum: boolean): unknown;
123
+ export declare function btypeDecode(valueEncoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>, verifyChecksum: boolean): Record<string, unknown>;
124
+ export declare function btypeEncode(valueDecoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>, verifyChecksum: boolean): Record<string, unknown>;
87
125
  /**
88
126
  * ABI for tokens
89
127
  */
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.tokenAbi = exports.btypeEncode = exports.btypeDecode = exports.btypeEncodeValue = exports.btypeDecodeValue = exports.parseUnits = exports.formatUnits = exports.bitcoinAddress = exports.bitcoinDecode = exports.bitcoinEncode = exports.calculateMerkleRoot = exports.decodeBase64 = exports.multihash = exports.encodeBase64 = exports.decodeBase64url = exports.encodeBase64url = exports.decodeBase58 = exports.encodeBase58 = exports.toHexString = exports.toUint8Array = void 0;
29
+ exports.tokenAbi = exports.btypeEncode = exports.btypeDecode = exports.btypeEncodeValue = exports.btypeDecodeValue = exports.parseUnits = exports.formatUnits = exports.isChecksumWif = exports.isChecksumAddress = exports.isChecksum = exports.bitcoinAddress = exports.bitcoinDecode = exports.bitcoinEncode = exports.calculateMerkleRoot = exports.decodeBase64 = exports.multihash = exports.encodeBase64 = exports.decodeBase64url = exports.encodeBase64url = exports.decodeBase58 = exports.encodeBase58 = exports.toHexString = exports.toUint8Array = void 0;
30
30
  const multibase = __importStar(require("multibase"));
31
31
  const sha256_1 = require("@noble/hashes/sha256");
32
32
  const ripemd160_1 = require("@noble/hashes/ripemd160");
@@ -207,6 +207,82 @@ function bitcoinAddress(publicKey) {
207
207
  return bitcoinEncode(hash160, "public");
208
208
  }
209
209
  exports.bitcoinAddress = bitcoinAddress;
210
+ /**
211
+ * Checks if the last 4 bytes matches with the double sha256
212
+ * of the first part
213
+ */
214
+ function isChecksum(buffer) {
215
+ const dataLength = buffer.length - 4;
216
+ const data = new Uint8Array(dataLength);
217
+ data.set(buffer.slice(0, dataLength));
218
+ const checksum = new Uint8Array(4);
219
+ checksum.set(buffer.slice(dataLength));
220
+ const doubleHash = (0, sha256_1.sha256)((0, sha256_1.sha256)(data));
221
+ // checksum must be the first 4 bytes of the double hash
222
+ for (let i = 0; i < 4; i += 1) {
223
+ if (checksum[i] !== doubleHash[i])
224
+ return false;
225
+ }
226
+ return true;
227
+ }
228
+ exports.isChecksum = isChecksum;
229
+ /**
230
+ * Checks if the checksum of an address is correct.
231
+ *
232
+ * The address has 3 parts in this order:
233
+ * - prefix: 1 byte
234
+ * - data: 20 bytes
235
+ * - checksum: 4 bytes
236
+ *
237
+ * checks:
238
+ * - It must be "pay to public key hash" (P2PKH). That is prefix 0
239
+ * - checksum = first 4 bytes of sha256(sha256(prefix + data))
240
+ *
241
+ * See [How to generate a bitcoin address step by step](https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by-step-9d7fcbf1ad0b).
242
+ */
243
+ function isChecksumAddress(address) {
244
+ const bufferAddress = typeof address === "string" ? decodeBase58(address) : address;
245
+ // it must have 25 bytes
246
+ if (bufferAddress.length !== 25)
247
+ return false;
248
+ // it must have prefix 0 (P2PKH address)
249
+ if (bufferAddress[0] !== 0)
250
+ return false;
251
+ return isChecksum(bufferAddress);
252
+ }
253
+ exports.isChecksumAddress = isChecksumAddress;
254
+ /**
255
+ * Checks if the checksum of an private key WIF is correct.
256
+ *
257
+ * The private key WIF has 3 parts in this order:
258
+ * - prefix: 1 byte
259
+ * - private key: 32 bytes
260
+ * - compressed: 1 byte for compressed public key (no byte for uncompressed)
261
+ * - checksum: 4 bytes
262
+ *
263
+ * checks:
264
+ * - It must use version 0x80 in the prefix
265
+ * - If the corresponding public key is compressed the byte 33 must be 0x01
266
+ * - checksum = first 4 bytes of
267
+ * sha256(sha256(prefix + private key + compressed))
268
+ *
269
+ * See [Bitcoin WIF](https://en.bitcoin.it/wiki/Wallet_import_format).
270
+ */
271
+ function isChecksumWif(wif) {
272
+ const bufferWif = typeof wif === "string" ? decodeBase58(wif) : wif;
273
+ // it must have 37 or 38 bytes
274
+ if (bufferWif.length !== 37 && bufferWif.length !== 38)
275
+ return false;
276
+ const compressed = bufferWif.length === 38;
277
+ // if compressed then the last byte must be 0x01
278
+ if (compressed && bufferWif[33] !== 1)
279
+ return false;
280
+ // it must have prefix version for private keys (0x80)
281
+ if (bufferWif[0] !== 128)
282
+ return false;
283
+ return isChecksum(bufferWif);
284
+ }
285
+ exports.isChecksumWif = isChecksumWif;
210
286
  /**
211
287
  * Function to format a number in a decimal point number
212
288
  * @example
@@ -264,7 +340,7 @@ function copyValue(value) {
264
340
  }
265
341
  return JSON.parse(JSON.stringify(value));
266
342
  }
267
- function btypeDecodeValue(valueEncoded, typeField) {
343
+ function btypeDecodeValue(valueEncoded, typeField, verifyChecksum) {
268
344
  // No byte conversion
269
345
  if (typeField.type !== "bytes")
270
346
  return copyValue(valueEncoded);
@@ -276,9 +352,14 @@ function btypeDecodeValue(valueEncoded, typeField) {
276
352
  // Specific byte conversion
277
353
  switch (typeField.btype) {
278
354
  case "BASE58":
355
+ return decodeBase58(value);
279
356
  case "CONTRACT_ID":
280
357
  case "ADDRESS":
281
- return decodeBase58(value);
358
+ const valueDecoded = decodeBase58(value);
359
+ if (verifyChecksum && !isChecksumAddress(valueDecoded)) {
360
+ throw new Error(`${value} is an invalid address`);
361
+ }
362
+ return valueDecoded;
282
363
  case "BASE64":
283
364
  return decodeBase64url(value);
284
365
  case "HEX":
@@ -290,7 +371,7 @@ function btypeDecodeValue(valueEncoded, typeField) {
290
371
  }
291
372
  }
292
373
  exports.btypeDecodeValue = btypeDecodeValue;
293
- function btypeEncodeValue(valueDecoded, typeField) {
374
+ function btypeEncodeValue(valueDecoded, typeField, verifyChecksum) {
294
375
  // No byte conversion
295
376
  if (typeField.type !== "bytes")
296
377
  return copyValue(valueDecoded);
@@ -302,9 +383,14 @@ function btypeEncodeValue(valueDecoded, typeField) {
302
383
  // Specific byte conversion
303
384
  switch (typeField.btype) {
304
385
  case "BASE58":
386
+ return encodeBase58(value);
305
387
  case "CONTRACT_ID":
306
388
  case "ADDRESS":
307
- return encodeBase58(value);
389
+ const valueEncoded = encodeBase58(value);
390
+ if (verifyChecksum && !isChecksumAddress(value)) {
391
+ throw new Error(`${valueEncoded} is an invalid address`);
392
+ }
393
+ return valueEncoded;
308
394
  case "BASE64":
309
395
  return encodeBase64url(value);
310
396
  case "HEX":
@@ -316,7 +402,7 @@ function btypeEncodeValue(valueDecoded, typeField) {
316
402
  }
317
403
  }
318
404
  exports.btypeEncodeValue = btypeEncodeValue;
319
- function btypeDecode(valueEncoded, fields) {
405
+ function btypeDecode(valueEncoded, fields, verifyChecksum) {
320
406
  if (typeof valueEncoded !== "object")
321
407
  return valueEncoded;
322
408
  const valueDecoded = {};
@@ -326,18 +412,18 @@ function btypeDecode(valueEncoded, fields) {
326
412
  if (fields[name].rule === "repeated")
327
413
  valueDecoded[name] = valueEncoded[name].map((itemEncoded) => {
328
414
  if (fields[name].subtypes)
329
- return btypeDecode(itemEncoded, fields[name].subtypes);
330
- return btypeDecodeValue(itemEncoded, fields[name]);
415
+ return btypeDecode(itemEncoded, fields[name].subtypes, verifyChecksum);
416
+ return btypeDecodeValue(itemEncoded, fields[name], verifyChecksum);
331
417
  });
332
418
  else if (fields[name].subtypes)
333
- valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes);
419
+ valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes, verifyChecksum);
334
420
  else
335
- valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name]);
421
+ valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name], verifyChecksum);
336
422
  });
337
423
  return valueDecoded;
338
424
  }
339
425
  exports.btypeDecode = btypeDecode;
340
- function btypeEncode(valueDecoded, fields) {
426
+ function btypeEncode(valueDecoded, fields, verifyChecksum) {
341
427
  if (typeof valueDecoded !== "object")
342
428
  return valueDecoded;
343
429
  const valueEncoded = {};
@@ -347,13 +433,13 @@ function btypeEncode(valueDecoded, fields) {
347
433
  if (fields[name].rule === "repeated")
348
434
  valueEncoded[name] = valueDecoded[name].map((itemDecoded) => {
349
435
  if (fields[name].subtypes)
350
- return btypeEncode(itemDecoded, fields[name].subtypes);
351
- return btypeEncodeValue(itemDecoded, fields[name]);
436
+ return btypeEncode(itemDecoded, fields[name].subtypes, verifyChecksum);
437
+ return btypeEncodeValue(itemDecoded, fields[name], verifyChecksum);
352
438
  });
353
439
  else if (fields[name].subtypes)
354
- valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes);
440
+ valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes, verifyChecksum);
355
441
  else
356
- valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name]);
442
+ valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name], verifyChecksum);
357
443
  });
358
444
  return valueEncoded;
359
445
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -60,6 +60,44 @@ export declare function bitcoinDecode(value: string): Uint8Array;
60
60
  * address = bitcoinEncode( ripemd160 ( sha256 ( publicKey ) ) )
61
61
  */
62
62
  export declare function bitcoinAddress(publicKey: Uint8Array): string;
63
+ /**
64
+ * Checks if the last 4 bytes matches with the double sha256
65
+ * of the first part
66
+ */
67
+ export declare function isChecksum(buffer: Uint8Array): boolean;
68
+ /**
69
+ * Checks if the checksum of an address is correct.
70
+ *
71
+ * The address has 3 parts in this order:
72
+ * - prefix: 1 byte
73
+ * - data: 20 bytes
74
+ * - checksum: 4 bytes
75
+ *
76
+ * checks:
77
+ * - It must be "pay to public key hash" (P2PKH). That is prefix 0
78
+ * - checksum = first 4 bytes of sha256(sha256(prefix + data))
79
+ *
80
+ * See [How to generate a bitcoin address step by step](https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by-step-9d7fcbf1ad0b).
81
+ */
82
+ export declare function isChecksumAddress(address: string | Uint8Array): boolean;
83
+ /**
84
+ * Checks if the checksum of an private key WIF is correct.
85
+ *
86
+ * The private key WIF has 3 parts in this order:
87
+ * - prefix: 1 byte
88
+ * - private key: 32 bytes
89
+ * - compressed: 1 byte for compressed public key (no byte for uncompressed)
90
+ * - checksum: 4 bytes
91
+ *
92
+ * checks:
93
+ * - It must use version 0x80 in the prefix
94
+ * - If the corresponding public key is compressed the byte 33 must be 0x01
95
+ * - checksum = first 4 bytes of
96
+ * sha256(sha256(prefix + private key + compressed))
97
+ *
98
+ * See [Bitcoin WIF](https://en.bitcoin.it/wiki/Wallet_import_format).
99
+ */
100
+ export declare function isChecksumWif(wif: string | Uint8Array): boolean;
63
101
  /**
64
102
  * Function to format a number in a decimal point number
65
103
  * @example
@@ -80,10 +118,10 @@ export declare function formatUnits(value: string | number | bigint, decimals: n
80
118
  * ```
81
119
  */
82
120
  export declare function parseUnits(value: string, decimals: number): string;
83
- export declare function btypeDecodeValue(valueEncoded: unknown, typeField: TypeField): unknown;
84
- export declare function btypeEncodeValue(valueDecoded: unknown, typeField: TypeField): unknown;
85
- export declare function btypeDecode(valueEncoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>): Record<string, unknown>;
86
- export declare function btypeEncode(valueDecoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>): Record<string, unknown>;
121
+ export declare function btypeDecodeValue(valueEncoded: unknown, typeField: TypeField, verifyChecksum: boolean): unknown;
122
+ export declare function btypeEncodeValue(valueDecoded: unknown, typeField: TypeField, verifyChecksum: boolean): unknown;
123
+ export declare function btypeDecode(valueEncoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>, verifyChecksum: boolean): Record<string, unknown>;
124
+ export declare function btypeEncode(valueDecoded: Record<string, unknown> | unknown[], fields: Record<string, TypeField>, verifyChecksum: boolean): Record<string, unknown>;
87
125
  /**
88
126
  * ABI for tokens
89
127
  */
package/lib/utils.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.tokenAbi = exports.btypeEncode = exports.btypeDecode = exports.btypeEncodeValue = exports.btypeDecodeValue = exports.parseUnits = exports.formatUnits = exports.bitcoinAddress = exports.bitcoinDecode = exports.bitcoinEncode = exports.calculateMerkleRoot = exports.decodeBase64 = exports.multihash = exports.encodeBase64 = exports.decodeBase64url = exports.encodeBase64url = exports.decodeBase58 = exports.encodeBase58 = exports.toHexString = exports.toUint8Array = void 0;
29
+ exports.tokenAbi = exports.btypeEncode = exports.btypeDecode = exports.btypeEncodeValue = exports.btypeDecodeValue = exports.parseUnits = exports.formatUnits = exports.isChecksumWif = exports.isChecksumAddress = exports.isChecksum = exports.bitcoinAddress = exports.bitcoinDecode = exports.bitcoinEncode = exports.calculateMerkleRoot = exports.decodeBase64 = exports.multihash = exports.encodeBase64 = exports.decodeBase64url = exports.encodeBase64url = exports.decodeBase58 = exports.encodeBase58 = exports.toHexString = exports.toUint8Array = void 0;
30
30
  const multibase = __importStar(require("multibase"));
31
31
  const sha256_1 = require("@noble/hashes/sha256");
32
32
  const ripemd160_1 = require("@noble/hashes/ripemd160");
@@ -207,6 +207,82 @@ function bitcoinAddress(publicKey) {
207
207
  return bitcoinEncode(hash160, "public");
208
208
  }
209
209
  exports.bitcoinAddress = bitcoinAddress;
210
+ /**
211
+ * Checks if the last 4 bytes matches with the double sha256
212
+ * of the first part
213
+ */
214
+ function isChecksum(buffer) {
215
+ const dataLength = buffer.length - 4;
216
+ const data = new Uint8Array(dataLength);
217
+ data.set(buffer.slice(0, dataLength));
218
+ const checksum = new Uint8Array(4);
219
+ checksum.set(buffer.slice(dataLength));
220
+ const doubleHash = (0, sha256_1.sha256)((0, sha256_1.sha256)(data));
221
+ // checksum must be the first 4 bytes of the double hash
222
+ for (let i = 0; i < 4; i += 1) {
223
+ if (checksum[i] !== doubleHash[i])
224
+ return false;
225
+ }
226
+ return true;
227
+ }
228
+ exports.isChecksum = isChecksum;
229
+ /**
230
+ * Checks if the checksum of an address is correct.
231
+ *
232
+ * The address has 3 parts in this order:
233
+ * - prefix: 1 byte
234
+ * - data: 20 bytes
235
+ * - checksum: 4 bytes
236
+ *
237
+ * checks:
238
+ * - It must be "pay to public key hash" (P2PKH). That is prefix 0
239
+ * - checksum = first 4 bytes of sha256(sha256(prefix + data))
240
+ *
241
+ * See [How to generate a bitcoin address step by step](https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by-step-9d7fcbf1ad0b).
242
+ */
243
+ function isChecksumAddress(address) {
244
+ const bufferAddress = typeof address === "string" ? decodeBase58(address) : address;
245
+ // it must have 25 bytes
246
+ if (bufferAddress.length !== 25)
247
+ return false;
248
+ // it must have prefix 0 (P2PKH address)
249
+ if (bufferAddress[0] !== 0)
250
+ return false;
251
+ return isChecksum(bufferAddress);
252
+ }
253
+ exports.isChecksumAddress = isChecksumAddress;
254
+ /**
255
+ * Checks if the checksum of an private key WIF is correct.
256
+ *
257
+ * The private key WIF has 3 parts in this order:
258
+ * - prefix: 1 byte
259
+ * - private key: 32 bytes
260
+ * - compressed: 1 byte for compressed public key (no byte for uncompressed)
261
+ * - checksum: 4 bytes
262
+ *
263
+ * checks:
264
+ * - It must use version 0x80 in the prefix
265
+ * - If the corresponding public key is compressed the byte 33 must be 0x01
266
+ * - checksum = first 4 bytes of
267
+ * sha256(sha256(prefix + private key + compressed))
268
+ *
269
+ * See [Bitcoin WIF](https://en.bitcoin.it/wiki/Wallet_import_format).
270
+ */
271
+ function isChecksumWif(wif) {
272
+ const bufferWif = typeof wif === "string" ? decodeBase58(wif) : wif;
273
+ // it must have 37 or 38 bytes
274
+ if (bufferWif.length !== 37 && bufferWif.length !== 38)
275
+ return false;
276
+ const compressed = bufferWif.length === 38;
277
+ // if compressed then the last byte must be 0x01
278
+ if (compressed && bufferWif[33] !== 1)
279
+ return false;
280
+ // it must have prefix version for private keys (0x80)
281
+ if (bufferWif[0] !== 128)
282
+ return false;
283
+ return isChecksum(bufferWif);
284
+ }
285
+ exports.isChecksumWif = isChecksumWif;
210
286
  /**
211
287
  * Function to format a number in a decimal point number
212
288
  * @example
@@ -264,7 +340,7 @@ function copyValue(value) {
264
340
  }
265
341
  return JSON.parse(JSON.stringify(value));
266
342
  }
267
- function btypeDecodeValue(valueEncoded, typeField) {
343
+ function btypeDecodeValue(valueEncoded, typeField, verifyChecksum) {
268
344
  // No byte conversion
269
345
  if (typeField.type !== "bytes")
270
346
  return copyValue(valueEncoded);
@@ -276,9 +352,14 @@ function btypeDecodeValue(valueEncoded, typeField) {
276
352
  // Specific byte conversion
277
353
  switch (typeField.btype) {
278
354
  case "BASE58":
355
+ return decodeBase58(value);
279
356
  case "CONTRACT_ID":
280
357
  case "ADDRESS":
281
- return decodeBase58(value);
358
+ const valueDecoded = decodeBase58(value);
359
+ if (verifyChecksum && !isChecksumAddress(valueDecoded)) {
360
+ throw new Error(`${value} is an invalid address`);
361
+ }
362
+ return valueDecoded;
282
363
  case "BASE64":
283
364
  return decodeBase64url(value);
284
365
  case "HEX":
@@ -290,7 +371,7 @@ function btypeDecodeValue(valueEncoded, typeField) {
290
371
  }
291
372
  }
292
373
  exports.btypeDecodeValue = btypeDecodeValue;
293
- function btypeEncodeValue(valueDecoded, typeField) {
374
+ function btypeEncodeValue(valueDecoded, typeField, verifyChecksum) {
294
375
  // No byte conversion
295
376
  if (typeField.type !== "bytes")
296
377
  return copyValue(valueDecoded);
@@ -302,9 +383,14 @@ function btypeEncodeValue(valueDecoded, typeField) {
302
383
  // Specific byte conversion
303
384
  switch (typeField.btype) {
304
385
  case "BASE58":
386
+ return encodeBase58(value);
305
387
  case "CONTRACT_ID":
306
388
  case "ADDRESS":
307
- return encodeBase58(value);
389
+ const valueEncoded = encodeBase58(value);
390
+ if (verifyChecksum && !isChecksumAddress(value)) {
391
+ throw new Error(`${valueEncoded} is an invalid address`);
392
+ }
393
+ return valueEncoded;
308
394
  case "BASE64":
309
395
  return encodeBase64url(value);
310
396
  case "HEX":
@@ -316,7 +402,7 @@ function btypeEncodeValue(valueDecoded, typeField) {
316
402
  }
317
403
  }
318
404
  exports.btypeEncodeValue = btypeEncodeValue;
319
- function btypeDecode(valueEncoded, fields) {
405
+ function btypeDecode(valueEncoded, fields, verifyChecksum) {
320
406
  if (typeof valueEncoded !== "object")
321
407
  return valueEncoded;
322
408
  const valueDecoded = {};
@@ -326,18 +412,18 @@ function btypeDecode(valueEncoded, fields) {
326
412
  if (fields[name].rule === "repeated")
327
413
  valueDecoded[name] = valueEncoded[name].map((itemEncoded) => {
328
414
  if (fields[name].subtypes)
329
- return btypeDecode(itemEncoded, fields[name].subtypes);
330
- return btypeDecodeValue(itemEncoded, fields[name]);
415
+ return btypeDecode(itemEncoded, fields[name].subtypes, verifyChecksum);
416
+ return btypeDecodeValue(itemEncoded, fields[name], verifyChecksum);
331
417
  });
332
418
  else if (fields[name].subtypes)
333
- valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes);
419
+ valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes, verifyChecksum);
334
420
  else
335
- valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name]);
421
+ valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name], verifyChecksum);
336
422
  });
337
423
  return valueDecoded;
338
424
  }
339
425
  exports.btypeDecode = btypeDecode;
340
- function btypeEncode(valueDecoded, fields) {
426
+ function btypeEncode(valueDecoded, fields, verifyChecksum) {
341
427
  if (typeof valueDecoded !== "object")
342
428
  return valueDecoded;
343
429
  const valueEncoded = {};
@@ -347,13 +433,13 @@ function btypeEncode(valueDecoded, fields) {
347
433
  if (fields[name].rule === "repeated")
348
434
  valueEncoded[name] = valueDecoded[name].map((itemDecoded) => {
349
435
  if (fields[name].subtypes)
350
- return btypeEncode(itemDecoded, fields[name].subtypes);
351
- return btypeEncodeValue(itemDecoded, fields[name]);
436
+ return btypeEncode(itemDecoded, fields[name].subtypes, verifyChecksum);
437
+ return btypeEncodeValue(itemDecoded, fields[name], verifyChecksum);
352
438
  });
353
439
  else if (fields[name].subtypes)
354
- valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes);
440
+ valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes, verifyChecksum);
355
441
  else
356
- valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name]);
442
+ valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name], verifyChecksum);
357
443
  });
358
444
  return valueEncoded;
359
445
  }
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koilib",
3
- "version": "5.1.1",
3
+ "version": "5.2.0",
4
4
  "description": "JS Koinos Library",
5
5
  "author": "Julian Gonzalez",
6
6
  "repository": {