koilib 2.8.0 → 3.0.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.
Files changed (66) hide show
  1. package/README.md +61 -7
  2. package/dist/koinos.js +8404 -200
  3. package/dist/koinos.min.js +1 -1
  4. package/lib/Contract.d.ts +46 -7
  5. package/lib/Contract.js +89 -21
  6. package/lib/Contract.js.map +1 -1
  7. package/lib/Provider.d.ts +16 -3
  8. package/lib/Provider.js +36 -6
  9. package/lib/Provider.js.map +1 -1
  10. package/lib/Serializer.d.ts +2 -1
  11. package/lib/Serializer.js +50 -37
  12. package/lib/Serializer.js.map +1 -1
  13. package/lib/Signer.d.ts +42 -42
  14. package/lib/Signer.js +294 -112
  15. package/lib/Signer.js.map +1 -1
  16. package/lib/browser/Contract.d.ts +46 -7
  17. package/lib/browser/Contract.js +89 -21
  18. package/lib/browser/Contract.js.map +1 -1
  19. package/lib/browser/Provider.d.ts +16 -3
  20. package/lib/browser/Provider.js +36 -6
  21. package/lib/browser/Provider.js.map +1 -1
  22. package/lib/browser/Serializer.d.ts +2 -1
  23. package/lib/browser/Serializer.js +50 -37
  24. package/lib/browser/Serializer.js.map +1 -1
  25. package/lib/browser/Signer.d.ts +42 -42
  26. package/lib/browser/Signer.js +294 -112
  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 +221 -45
  35. package/lib/browser/jsonDescriptors/chain-proto.json +676 -0
  36. package/lib/browser/jsonDescriptors/krc20-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 +18 -254
  41. package/lib/browser/utils.js +140 -12
  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 +221 -45
  53. package/lib/jsonDescriptors/chain-proto.json +676 -0
  54. package/lib/jsonDescriptors/krc20-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 +18 -254
  59. package/lib/utils.js +140 -12
  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
package/lib/utils.d.ts CHANGED
@@ -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>, fields: Record<string, TypeField>): Record<string, unknown>;
86
+ export declare function btypeEncode(valueDecoded: Record<string, unknown>, fields: Record<string, TypeField>): Record<string, unknown>;
70
87
  /**
71
88
  * ABI for tokens
72
89
  */
73
90
  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
- };
package/lib/utils.js CHANGED
@@ -22,12 +22,12 @@ 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.Krc20Abi = 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
29
  const krc20_proto_json_1 = __importDefault(require("./jsonDescriptors/krc20-proto.json"));
30
- const protocol_proto_json_1 = __importDefault(require("./jsonDescriptors/protocol-proto.json"));
30
+ //import protocolJson from "./jsonDescriptors/protocol-proto.json";
31
31
  /**
32
32
  * Converts an hex string to Uint8Array
33
33
  */
@@ -62,20 +62,67 @@ function decodeBase58(bs58) {
62
62
  return multibase.decode(`z${bs58}`);
63
63
  }
64
64
  exports.decodeBase58 = decodeBase58;
65
+ /**
66
+ * Encodes an Uint8Array in base64url
67
+ */
68
+ function encodeBase64url(buffer) {
69
+ return new TextDecoder().decode(multibase.encode("U", buffer)).slice(1);
70
+ }
71
+ exports.encodeBase64url = encodeBase64url;
72
+ /**
73
+ * Decodes a buffer formatted in base64url
74
+ */
75
+ function decodeBase64url(bs64url) {
76
+ return multibase.decode(`U${bs64url}`);
77
+ }
78
+ exports.decodeBase64url = decodeBase64url;
65
79
  /**
66
80
  * Encodes an Uint8Array in base64
67
81
  */
68
82
  function encodeBase64(buffer) {
69
- return new TextDecoder().decode(multibase.encode("U", buffer)).slice(1);
83
+ return new TextDecoder().decode(multibase.encode("M", buffer)).slice(1);
70
84
  }
71
85
  exports.encodeBase64 = encodeBase64;
86
+ function multihash(buffer, code = "sha2-256") {
87
+ switch (code) {
88
+ case "sha2-256": {
89
+ return new Uint8Array([18, buffer.length, ...buffer]);
90
+ }
91
+ default:
92
+ throw new Error(`multihash code ${code} not supported`);
93
+ }
94
+ }
95
+ exports.multihash = multihash;
72
96
  /**
73
97
  * Decodes a buffer formatted in base64
74
98
  */
75
99
  function decodeBase64(bs64) {
76
- return multibase.decode(`U${bs64}`);
100
+ return multibase.decode(`M${bs64}`);
77
101
  }
78
102
  exports.decodeBase64 = decodeBase64;
103
+ /**
104
+ * Calculates the merkle root of sha256 hashes
105
+ */
106
+ function calculateMerkleRoot(hashes) {
107
+ if (!hashes.length)
108
+ return (0, sha256_1.sha256)(new Uint8Array());
109
+ while (hashes.length > 1) {
110
+ for (let i = 0; i < hashes.length; i += 2) {
111
+ if (i + 1 < hashes.length) {
112
+ const leftHash = hashes[i];
113
+ const rightHash = hashes[i + 1];
114
+ const sumHash = (0, sha256_1.sha256)(new Uint8Array([...leftHash, ...rightHash]));
115
+ hashes[i / 2] = new Uint8Array(sumHash);
116
+ }
117
+ else {
118
+ hashes[i / 2] = hashes[i];
119
+ }
120
+ }
121
+ hashes = hashes.slice(0, Math.ceil(hashes.length / 2));
122
+ }
123
+ return hashes[0];
124
+ }
125
+ exports.calculateMerkleRoot = calculateMerkleRoot;
79
126
  /**
80
127
  * Encodes a public or private key in base58 using
81
128
  * the bitcoin format (see [Bitcoin Base58Check encoding](https://en.bitcoin.it/wiki/Base58Check_encoding)
@@ -199,54 +246,135 @@ function parseUnits(value, decimals) {
199
246
  return `${sign}${`${integerPart}${decimalPart}`.replace(/^0+(?=\d)/, "")}`;
200
247
  }
201
248
  exports.parseUnits = parseUnits;
249
+ function btypeDecodeValue(valueEncoded, typeField) {
250
+ // No byte conversion
251
+ if (typeField.type !== "bytes")
252
+ return valueEncoded;
253
+ const value = valueEncoded;
254
+ // Default byte conversion
255
+ if (!typeField.btype) {
256
+ return decodeBase64url(value);
257
+ }
258
+ // Specific byte conversion
259
+ switch (typeField.btype) {
260
+ case "BASE58":
261
+ case "CONTRACT_ID":
262
+ case "ADDRESS":
263
+ return decodeBase58(value);
264
+ case "BASE64":
265
+ return decodeBase64url(value);
266
+ case "HEX":
267
+ case "BLOCK_ID":
268
+ case "TRANSACTION_ID":
269
+ return toUint8Array(value.slice(2));
270
+ default:
271
+ throw new Error(`unknown btype ${typeField.btype}`);
272
+ }
273
+ }
274
+ exports.btypeDecodeValue = btypeDecodeValue;
275
+ function btypeEncodeValue(valueDecoded, typeField) {
276
+ // No byte conversion
277
+ if (typeField.type !== "bytes")
278
+ return valueDecoded;
279
+ const value = valueDecoded;
280
+ // Default byte conversion
281
+ if (!typeField.btype) {
282
+ return encodeBase64url(value);
283
+ }
284
+ // Specific byte conversion
285
+ switch (typeField.btype) {
286
+ case "BASE58":
287
+ case "CONTRACT_ID":
288
+ case "ADDRESS":
289
+ return encodeBase58(value);
290
+ case "BASE64":
291
+ return encodeBase64url(value);
292
+ case "HEX":
293
+ case "BLOCK_ID":
294
+ case "TRANSACTION_ID":
295
+ return `0x${toHexString(value)}`;
296
+ default:
297
+ throw new Error(`unknown btype ${typeField.btype}`);
298
+ }
299
+ }
300
+ exports.btypeEncodeValue = btypeEncodeValue;
301
+ function btypeDecode(valueEncoded, fields) {
302
+ if (typeof valueEncoded !== "object")
303
+ return valueEncoded;
304
+ const valueDecoded = {};
305
+ Object.keys(fields).forEach((name) => {
306
+ if (!valueEncoded[name])
307
+ return;
308
+ if (fields[name].subtypes)
309
+ valueDecoded[name] = btypeDecode(valueEncoded[name], fields[name].subtypes);
310
+ else
311
+ valueDecoded[name] = btypeDecodeValue(valueEncoded[name], fields[name]);
312
+ });
313
+ return valueDecoded;
314
+ }
315
+ exports.btypeDecode = btypeDecode;
316
+ function btypeEncode(valueDecoded, fields) {
317
+ if (typeof valueDecoded !== "object")
318
+ return valueDecoded;
319
+ const valueEncoded = {};
320
+ Object.keys(fields).forEach((name) => {
321
+ if (!valueDecoded[name])
322
+ return;
323
+ if (fields[name].subtypes)
324
+ valueEncoded[name] = btypeEncode(valueDecoded[name], fields[name].subtypes);
325
+ valueEncoded[name] = btypeEncodeValue(valueDecoded[name], fields[name]);
326
+ });
327
+ return valueEncoded;
328
+ }
329
+ exports.btypeEncode = btypeEncode;
202
330
  /**
203
331
  * ABI for tokens
204
332
  */
205
333
  exports.Krc20Abi = {
206
334
  methods: {
207
335
  name: {
208
- entryPoint: 0x76ea4297,
336
+ entryPoint: 0x82a3537f,
209
337
  input: "name_arguments",
210
338
  output: "name_result",
211
339
  readOnly: true,
212
340
  },
213
341
  symbol: {
214
- entryPoint: 0x7e794b24,
342
+ entryPoint: 0xb76a7ca1,
215
343
  input: "symbol_arguments",
216
344
  output: "symbol_result",
217
345
  readOnly: true,
218
346
  },
219
347
  decimals: {
220
- entryPoint: 0x59dc15ce,
348
+ entryPoint: 0xee80fd2f,
221
349
  input: "decimals_arguments",
222
350
  output: "decimals_result",
223
351
  readOnly: true,
224
352
  },
225
353
  totalSupply: {
226
- entryPoint: 0xcf2e8212,
354
+ entryPoint: 0xb0da3934,
227
355
  input: "total_supply_arguments",
228
356
  output: "total_supply_result",
229
357
  readOnly: true,
230
358
  },
231
359
  balanceOf: {
232
- entryPoint: 0x15619248,
360
+ entryPoint: 0x5c721497,
233
361
  input: "balance_of_arguments",
234
362
  output: "balance_of_result",
235
363
  readOnly: true,
236
364
  defaultOutput: { value: "0" },
237
365
  },
238
366
  transfer: {
239
- entryPoint: 0x62efa292,
367
+ entryPoint: 0x27f576ca,
240
368
  input: "transfer_arguments",
241
369
  output: "transfer_result",
242
370
  },
243
371
  mint: {
244
- entryPoint: 0xc2f82bdc,
372
+ entryPoint: 0xdc6f17bb,
245
373
  input: "mint_arguments",
246
374
  output: "mint_result",
247
375
  },
248
376
  },
249
377
  types: krc20_proto_json_1.default,
250
378
  };
251
- exports.ProtocolTypes = protocol_proto_json_1.default;
379
+ //export const ProtocolTypes = protocolJson;
252
380
  //# sourceMappingURL=utils.js.map
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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"}