koilib 2.8.0 → 3.1.1

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.
Files changed (66) hide show
  1. package/README.md +75 -12
  2. package/dist/koinos.js +8535 -284
  3. package/dist/koinos.min.js +1 -1
  4. package/lib/Contract.d.ts +66 -18
  5. package/lib/Contract.js +103 -40
  6. package/lib/Contract.js.map +1 -1
  7. package/lib/Provider.d.ts +22 -7
  8. package/lib/Provider.js +60 -21
  9. package/lib/Provider.js.map +1 -1
  10. package/lib/Serializer.d.ts +3 -1
  11. package/lib/Serializer.js +103 -83
  12. package/lib/Serializer.js.map +1 -1
  13. package/lib/Signer.d.ts +54 -42
  14. package/lib/Signer.js +305 -114
  15. package/lib/Signer.js.map +1 -1
  16. package/lib/browser/Contract.d.ts +66 -18
  17. package/lib/browser/Contract.js +103 -40
  18. package/lib/browser/Contract.js.map +1 -1
  19. package/lib/browser/Provider.d.ts +22 -7
  20. package/lib/browser/Provider.js +60 -21
  21. package/lib/browser/Provider.js.map +1 -1
  22. package/lib/browser/Serializer.d.ts +3 -1
  23. package/lib/browser/Serializer.js +103 -83
  24. package/lib/browser/Serializer.js.map +1 -1
  25. package/lib/browser/Signer.d.ts +54 -42
  26. package/lib/browser/Signer.js +305 -114
  27. package/lib/browser/Signer.js.map +1 -1
  28. package/lib/browser/index.d.ts +1 -1
  29. package/lib/browser/index.js +1 -1
  30. package/lib/browser/index.js.map +1 -1
  31. package/lib/browser/indexUtils.d.ts +2 -0
  32. package/lib/browser/indexUtils.js +15 -0
  33. package/lib/browser/indexUtils.js.map +1 -0
  34. package/lib/browser/interface.d.ts +242 -46
  35. package/lib/browser/jsonDescriptors/chain-proto.json +676 -0
  36. package/lib/browser/jsonDescriptors/{krc20-proto.json → token-proto.json} +47 -4
  37. package/lib/browser/protoModules/protocol-proto.d.ts +2 -0
  38. package/lib/browser/protoModules/protocol-proto.js +6336 -0
  39. package/lib/browser/protoModules/protocol-proto.js.map +1 -0
  40. package/lib/browser/utils.d.ts +19 -255
  41. package/lib/browser/utils.js +170 -15
  42. package/lib/browser/utils.js.map +1 -1
  43. package/lib/browser/utilsNode.d.ts +1021 -0
  44. package/lib/browser/utilsNode.js +346 -0
  45. package/lib/browser/utilsNode.js.map +1 -0
  46. package/lib/index.d.ts +1 -1
  47. package/lib/index.js +1 -1
  48. package/lib/index.js.map +1 -1
  49. package/lib/indexUtils.d.ts +2 -0
  50. package/lib/indexUtils.js +15 -0
  51. package/lib/indexUtils.js.map +1 -0
  52. package/lib/interface.d.ts +242 -46
  53. package/lib/jsonDescriptors/chain-proto.json +676 -0
  54. package/lib/jsonDescriptors/{krc20-proto.json → token-proto.json} +47 -4
  55. package/lib/protoModules/protocol-proto.d.ts +2 -0
  56. package/lib/protoModules/protocol-proto.js +6336 -0
  57. package/lib/protoModules/protocol-proto.js.map +1 -0
  58. package/lib/utils.d.ts +19 -255
  59. package/lib/utils.js +170 -15
  60. package/lib/utils.js.map +1 -1
  61. package/lib/utilsNode.d.ts +1021 -0
  62. package/lib/utilsNode.js +346 -0
  63. package/lib/utilsNode.js.map +1 -0
  64. package/package.json +1 -1
  65. package/lib/browser/jsonDescriptors/protocol-proto.json +0 -246
  66. package/lib/jsonDescriptors/protocol-proto.json +0 -246
@@ -1,4 +1,4 @@
1
- import { Abi } from "./interface";
1
+ import { Abi, TypeField } from "./interface";
2
2
  /**
3
3
  * Converts an hex string to Uint8Array
4
4
  */
@@ -15,14 +15,27 @@ export declare function encodeBase58(buffer: Uint8Array): string;
15
15
  * Decodes a buffer formatted in base58
16
16
  */
17
17
  export declare function decodeBase58(bs58: string): Uint8Array;
18
+ /**
19
+ * Encodes an Uint8Array in base64url
20
+ */
21
+ export declare function encodeBase64url(buffer: Uint8Array): string;
22
+ /**
23
+ * Decodes a buffer formatted in base64url
24
+ */
25
+ export declare function decodeBase64url(bs64url: string): Uint8Array;
18
26
  /**
19
27
  * Encodes an Uint8Array in base64
20
28
  */
21
29
  export declare function encodeBase64(buffer: Uint8Array): string;
30
+ export declare function multihash(buffer: Uint8Array, code?: string): Uint8Array;
22
31
  /**
23
32
  * Decodes a buffer formatted in base64
24
33
  */
25
34
  export declare function decodeBase64(bs64: string): Uint8Array;
35
+ /**
36
+ * Calculates the merkle root of sha256 hashes
37
+ */
38
+ export declare function calculateMerkleRoot(hashes: Uint8Array[]): Uint8Array;
26
39
  /**
27
40
  * Encodes a public or private key in base58 using
28
41
  * the bitcoin format (see [Bitcoin Base58Check encoding](https://en.bitcoin.it/wiki/Base58Check_encoding)
@@ -67,260 +80,11 @@ export declare function formatUnits(value: string | number | bigint, decimals: n
67
80
  * ```
68
81
  */
69
82
  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>;
70
87
  /**
71
88
  * ABI for tokens
72
89
  */
73
- export declare const Krc20Abi: Abi;
74
- export declare const ProtocolTypes: {
75
- nested: {
76
- koinos: {
77
- nested: {
78
- protocol: {
79
- options: {
80
- go_package: string;
81
- };
82
- nested: {
83
- contract_call_bundle: {
84
- fields: {
85
- contract_id: {
86
- type: string;
87
- id: number;
88
- options: {
89
- "(koinos_bytes_type)": string;
90
- };
91
- };
92
- entry_point: {
93
- type: string;
94
- id: number;
95
- };
96
- };
97
- };
98
- system_call_target: {
99
- oneofs: {
100
- target: {
101
- oneof: string[];
102
- };
103
- };
104
- fields: {
105
- thunk_id: {
106
- type: string;
107
- id: number;
108
- };
109
- system_call_bundle: {
110
- type: string;
111
- id: number;
112
- };
113
- };
114
- };
115
- upload_contract_operation: {
116
- fields: {
117
- contract_id: {
118
- type: string;
119
- id: number;
120
- options: {
121
- "(koinos_bytes_type)": string;
122
- };
123
- };
124
- bytecode: {
125
- /**
126
- * Encodes a public or private key in base58 using
127
- * the bitcoin format (see [Bitcoin Base58Check encoding](https://en.bitcoin.it/wiki/Base58Check_encoding)
128
- * and [Bitcoin WIF](https://en.bitcoin.it/wiki/Wallet_import_format)).
129
- *
130
- * For private keys this encode is also known as
131
- * wallet import format (WIF).
132
- */
133
- type: string;
134
- id: number;
135
- };
136
- };
137
- };
138
- call_contract_operation: {
139
- fields: {
140
- contract_id: {
141
- type: string;
142
- id: number;
143
- options: {
144
- "(koinos_bytes_type)": string;
145
- };
146
- };
147
- entry_point: {
148
- type: string;
149
- id: number;
150
- };
151
- args: {
152
- type: string;
153
- id: number;
154
- };
155
- };
156
- };
157
- set_system_call_operation: {
158
- fields: {
159
- call_id: {
160
- type: string;
161
- id: number;
162
- };
163
- target: {
164
- type: string;
165
- id: number;
166
- };
167
- };
168
- };
169
- operation: {
170
- oneofs: {
171
- op: {
172
- oneof: string[];
173
- };
174
- };
175
- fields: {
176
- upload_contract: {
177
- type: string;
178
- id: number;
179
- };
180
- call_contract: {
181
- type: string;
182
- id: number;
183
- };
184
- set_system_call: {
185
- type: string;
186
- id: number;
187
- };
188
- };
189
- };
190
- active_transaction_data: {
191
- fields: {
192
- rc_limit: {
193
- type: string;
194
- id: number;
195
- options: {
196
- jstype: string;
197
- };
198
- };
199
- nonce: {
200
- type: string;
201
- id: number;
202
- options: {
203
- jstype: string;
204
- };
205
- };
206
- operations: {
207
- rule: string;
208
- type: string;
209
- id: number;
210
- };
211
- };
212
- };
213
- passive_transaction_data: {
214
- fields: {};
215
- };
216
- transaction: {
217
- fields: {
218
- id: {
219
- type: string;
220
- id: number;
221
- options: {
222
- "(koinos_bytes_type)": string;
223
- };
224
- };
225
- active: {
226
- type: string;
227
- id: number;
228
- };
229
- passive: {
230
- type: string;
231
- id: number;
232
- };
233
- signature_data: {
234
- type: string;
235
- id: number;
236
- };
237
- };
238
- };
239
- active_block_data: {
240
- fields: {
241
- transaction_merkle_root: {
242
- type: string;
243
- id: number;
244
- };
245
- passive_data_merkle_root: {
246
- type: string;
247
- id: number;
248
- };
249
- signer: {
250
- type: string;
251
- id: number;
252
- };
253
- };
254
- };
255
- passive_block_data: {
256
- fields: {};
257
- };
258
- block_header: {
259
- fields: {
260
- previous: {
261
- type: string;
262
- /**
263
- * ABI for tokens
264
- */
265
- id: number;
266
- options: {
267
- "(koinos_bytes_type)": string;
268
- };
269
- };
270
- height: {
271
- type: string;
272
- id: number;
273
- options: {
274
- jstype: string;
275
- };
276
- };
277
- timestamp: {
278
- type: string;
279
- id: number;
280
- options: {
281
- jstype: string;
282
- };
283
- };
284
- };
285
- };
286
- block: {
287
- fields: {
288
- id: {
289
- type: string;
290
- id: number;
291
- options: {
292
- "(koinos_bytes_type)": string;
293
- };
294
- };
295
- header: {
296
- type: string;
297
- id: number;
298
- };
299
- active: {
300
- type: string;
301
- id: number;
302
- };
303
- passive: {
304
- type: string;
305
- id: number;
306
- };
307
- signature_data: {
308
- type: string;
309
- id: number;
310
- };
311
- transactions: {
312
- rule: string;
313
- type: string;
314
- id: number;
315
- };
316
- };
317
- };
318
- block_receipt: {
319
- fields: {};
320
- };
321
- };
322
- };
323
- };
324
- };
325
- };
326
- };
90
+ export declare const tokenAbi: Abi;
@@ -22,12 +22,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.ProtocolTypes = exports.Krc20Abi = exports.parseUnits = exports.formatUnits = exports.bitcoinAddress = exports.bitcoinDecode = exports.bitcoinEncode = exports.decodeBase64 = exports.encodeBase64 = exports.decodeBase58 = exports.encodeBase58 = exports.toHexString = exports.toUint8Array = void 0;
25
+ 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;
26
26
  const multibase = __importStar(require("multibase"));
27
27
  const sha256_1 = require("@noble/hashes/sha256");
28
28
  const ripemd160_1 = require("@noble/hashes/ripemd160");
29
- const krc20_proto_json_1 = __importDefault(require("./jsonDescriptors/krc20-proto.json"));
30
- const protocol_proto_json_1 = __importDefault(require("./jsonDescriptors/protocol-proto.json"));
29
+ const token_proto_json_1 = __importDefault(require("./jsonDescriptors/token-proto.json"));
31
30
  /**
32
31
  * Converts an hex string to Uint8Array
33
32
  */
@@ -62,20 +61,67 @@ function decodeBase58(bs58) {
62
61
  return multibase.decode(`z${bs58}`);
63
62
  }
64
63
  exports.decodeBase58 = decodeBase58;
64
+ /**
65
+ * Encodes an Uint8Array in base64url
66
+ */
67
+ function encodeBase64url(buffer) {
68
+ return new TextDecoder().decode(multibase.encode("U", buffer)).slice(1);
69
+ }
70
+ exports.encodeBase64url = encodeBase64url;
71
+ /**
72
+ * Decodes a buffer formatted in base64url
73
+ */
74
+ function decodeBase64url(bs64url) {
75
+ return multibase.decode(`U${bs64url}`);
76
+ }
77
+ exports.decodeBase64url = decodeBase64url;
65
78
  /**
66
79
  * Encodes an Uint8Array in base64
67
80
  */
68
81
  function encodeBase64(buffer) {
69
- return new TextDecoder().decode(multibase.encode("U", buffer)).slice(1);
82
+ return new TextDecoder().decode(multibase.encode("M", buffer)).slice(1);
70
83
  }
71
84
  exports.encodeBase64 = encodeBase64;
85
+ function multihash(buffer, code = "sha2-256") {
86
+ switch (code) {
87
+ case "sha2-256": {
88
+ return new Uint8Array([18, buffer.length, ...buffer]);
89
+ }
90
+ default:
91
+ throw new Error(`multihash code ${code} not supported`);
92
+ }
93
+ }
94
+ exports.multihash = multihash;
72
95
  /**
73
96
  * Decodes a buffer formatted in base64
74
97
  */
75
98
  function decodeBase64(bs64) {
76
- return multibase.decode(`U${bs64}`);
99
+ return multibase.decode(`M${bs64}`);
77
100
  }
78
101
  exports.decodeBase64 = decodeBase64;
102
+ /**
103
+ * Calculates the merkle root of sha256 hashes
104
+ */
105
+ function calculateMerkleRoot(hashes) {
106
+ if (!hashes.length)
107
+ return (0, sha256_1.sha256)(new Uint8Array());
108
+ while (hashes.length > 1) {
109
+ for (let i = 0; i < hashes.length; i += 2) {
110
+ if (i + 1 < hashes.length) {
111
+ const leftHash = hashes[i];
112
+ const rightHash = hashes[i + 1];
113
+ const sumHash = (0, sha256_1.sha256)(new Uint8Array([...leftHash, ...rightHash]));
114
+ hashes[i / 2] = new Uint8Array(sumHash);
115
+ }
116
+ else {
117
+ hashes[i / 2] = hashes[i];
118
+ }
119
+ }
120
+ hashes = hashes.slice(0, Math.ceil(hashes.length / 2));
121
+ }
122
+ return hashes[0];
123
+ }
124
+ exports.calculateMerkleRoot = calculateMerkleRoot;
79
125
  /**
80
126
  * Encodes a public or private key in base58 using
81
127
  * the bitcoin format (see [Bitcoin Base58Check encoding](https://en.bitcoin.it/wiki/Base58Check_encoding)
@@ -199,54 +245,163 @@ function parseUnits(value, decimals) {
199
245
  return `${sign}${`${integerPart}${decimalPart}`.replace(/^0+(?=\d)/, "")}`;
200
246
  }
201
247
  exports.parseUnits = parseUnits;
248
+ /**
249
+ * Makes a copy of a value. The returned value can be modified
250
+ * without altering the original one. Although this is not needed
251
+ * for strings or numbers and only needed for objects and arrays,
252
+ * all these options are covered in a single function
253
+ *
254
+ * It is assumed that the argument is number, string, or contructions
255
+ * of these types inside objects or arrays.
256
+ */
257
+ function copyValue(value) {
258
+ if (typeof value === "string" || typeof value === "number") {
259
+ return value;
260
+ }
261
+ return JSON.parse(JSON.stringify(value));
262
+ }
263
+ function btypeDecodeValue(valueEncoded, typeField) {
264
+ // No byte conversion
265
+ if (typeField.type !== "bytes")
266
+ return copyValue(valueEncoded);
267
+ const value = valueEncoded;
268
+ // Default byte conversion
269
+ if (!typeField.btype) {
270
+ return decodeBase64url(value);
271
+ }
272
+ // Specific byte conversion
273
+ switch (typeField.btype) {
274
+ case "BASE58":
275
+ case "CONTRACT_ID":
276
+ case "ADDRESS":
277
+ return decodeBase58(value);
278
+ case "BASE64":
279
+ return decodeBase64url(value);
280
+ case "HEX":
281
+ case "BLOCK_ID":
282
+ case "TRANSACTION_ID":
283
+ return toUint8Array(value.slice(2));
284
+ default:
285
+ throw new Error(`unknown btype ${typeField.btype}`);
286
+ }
287
+ }
288
+ exports.btypeDecodeValue = btypeDecodeValue;
289
+ function btypeEncodeValue(valueDecoded, typeField) {
290
+ // No byte conversion
291
+ if (typeField.type !== "bytes")
292
+ return copyValue(valueDecoded);
293
+ const value = valueDecoded;
294
+ // Default byte conversion
295
+ if (!typeField.btype) {
296
+ return encodeBase64url(value);
297
+ }
298
+ // Specific byte conversion
299
+ switch (typeField.btype) {
300
+ case "BASE58":
301
+ case "CONTRACT_ID":
302
+ case "ADDRESS":
303
+ return encodeBase58(value);
304
+ case "BASE64":
305
+ return encodeBase64url(value);
306
+ case "HEX":
307
+ case "BLOCK_ID":
308
+ case "TRANSACTION_ID":
309
+ return `0x${toHexString(value)}`;
310
+ default:
311
+ throw new Error(`unknown btype ${typeField.btype}`);
312
+ }
313
+ }
314
+ exports.btypeEncodeValue = btypeEncodeValue;
315
+ function btypeDecode(valueEncoded, fields) {
316
+ if (typeof valueEncoded !== "object")
317
+ return valueEncoded;
318
+ const valueDecoded = {};
319
+ Object.keys(fields).forEach((name) => {
320
+ if (!valueEncoded[name])
321
+ return;
322
+ if (fields[name].rule === "repeated")
323
+ valueDecoded[name] = valueEncoded[name].map((itemEncoded) => {
324
+ if (fields[name].subtypes)
325
+ return btypeDecode(itemEncoded, fields[name].subtypes);
326
+ return btypeDecodeValue(itemEncoded, fields[name]);
327
+ });
328
+ else if (fields[name].subtypes)
329
+ valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes);
330
+ else
331
+ valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name]);
332
+ });
333
+ return valueDecoded;
334
+ }
335
+ exports.btypeDecode = btypeDecode;
336
+ function btypeEncode(valueDecoded, fields) {
337
+ if (typeof valueDecoded !== "object")
338
+ return valueDecoded;
339
+ const valueEncoded = {};
340
+ Object.keys(fields).forEach((name) => {
341
+ if (!valueDecoded[name])
342
+ return;
343
+ if (fields[name].rule === "repeated")
344
+ valueEncoded[name] = valueDecoded[name].map((itemDecoded) => {
345
+ if (fields[name].subtypes)
346
+ return btypeEncode(itemDecoded, fields[name].subtypes);
347
+ return btypeEncodeValue(itemDecoded, fields[name]);
348
+ });
349
+ else if (fields[name].subtypes)
350
+ valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes);
351
+ else
352
+ valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name]);
353
+ });
354
+ return valueEncoded;
355
+ }
356
+ exports.btypeEncode = btypeEncode;
202
357
  /**
203
358
  * ABI for tokens
204
359
  */
205
- exports.Krc20Abi = {
360
+ exports.tokenAbi = {
206
361
  methods: {
207
362
  name: {
208
- entryPoint: 0x76ea4297,
363
+ entryPoint: 0x82a3537f,
209
364
  input: "name_arguments",
210
365
  output: "name_result",
211
366
  readOnly: true,
212
367
  },
213
368
  symbol: {
214
- entryPoint: 0x7e794b24,
369
+ entryPoint: 0xb76a7ca1,
215
370
  input: "symbol_arguments",
216
371
  output: "symbol_result",
217
372
  readOnly: true,
218
373
  },
219
374
  decimals: {
220
- entryPoint: 0x59dc15ce,
375
+ entryPoint: 0xee80fd2f,
221
376
  input: "decimals_arguments",
222
377
  output: "decimals_result",
223
378
  readOnly: true,
224
379
  },
225
380
  totalSupply: {
226
- entryPoint: 0xcf2e8212,
381
+ entryPoint: 0xb0da3934,
227
382
  input: "total_supply_arguments",
228
383
  output: "total_supply_result",
229
384
  readOnly: true,
230
385
  },
231
386
  balanceOf: {
232
- entryPoint: 0x15619248,
387
+ entryPoint: 0x5c721497,
233
388
  input: "balance_of_arguments",
234
389
  output: "balance_of_result",
235
390
  readOnly: true,
236
391
  defaultOutput: { value: "0" },
237
392
  },
238
393
  transfer: {
239
- entryPoint: 0x62efa292,
394
+ entryPoint: 0x27f576ca,
240
395
  input: "transfer_arguments",
241
396
  output: "transfer_result",
242
397
  },
243
398
  mint: {
244
- entryPoint: 0xc2f82bdc,
399
+ entryPoint: 0xdc6f17bb,
245
400
  input: "mint_arguments",
246
401
  output: "mint_result",
247
402
  },
248
403
  },
249
- types: krc20_proto_json_1.default,
404
+ types: token_proto_json_1.default,
250
405
  };
251
- exports.ProtocolTypes = protocol_proto_json_1.default;
406
+ //export const ProtocolTypes = protocolJson;
252
407
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}