koilib 2.6.1 → 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 +66 -12
  2. package/dist/koinos.js +8533 -274
  3. package/dist/koinos.min.js +1 -1
  4. package/lib/Contract.d.ts +53 -16
  5. package/lib/Contract.js +99 -31
  6. package/lib/Contract.js.map +1 -1
  7. package/lib/Provider.d.ts +39 -19
  8. package/lib/Provider.js +119 -87
  9. package/lib/Provider.js.map +1 -1
  10. package/lib/Serializer.d.ts +8 -3
  11. package/lib/Serializer.js +60 -41
  12. package/lib/Serializer.js.map +1 -1
  13. package/lib/Signer.d.ts +53 -39
  14. package/lib/Signer.js +320 -91
  15. package/lib/Signer.js.map +1 -1
  16. package/lib/browser/Contract.d.ts +53 -16
  17. package/lib/browser/Contract.js +99 -31
  18. package/lib/browser/Contract.js.map +1 -1
  19. package/lib/browser/Provider.d.ts +39 -19
  20. package/lib/browser/Provider.js +119 -87
  21. package/lib/browser/Provider.js.map +1 -1
  22. package/lib/browser/Serializer.d.ts +8 -3
  23. package/lib/browser/Serializer.js +60 -41
  24. package/lib/browser/Serializer.js.map +1 -1
  25. package/lib/browser/Signer.d.ts +53 -39
  26. package/lib/browser/Signer.js +320 -91
  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 -65
  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 +242 -65
  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
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Provider = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
+ // @ts-ignore
6
+ const protocol_proto_js_1 = require("./protoModules/protocol-proto.js");
7
+ const utils_1 = require("./utils");
8
+ /* eslint-disable @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access */
4
9
  async function sleep(ms) {
5
10
  return new Promise((r) => setTimeout(r, ms));
6
11
  }
@@ -76,13 +81,24 @@ class Provider {
76
81
  * transactions for a particular account. This call is used
77
82
  * when creating new transactions.
78
83
  * @param account - account address
84
+ * @param deserialize - If set true it will deserialize the nonce
85
+ * and return it as number (default). If set false it will return
86
+ * the nonce encoded as received from the RPC.
79
87
  * @returns Nonce
80
88
  */
81
- async getNonce(account) {
82
- const { nonce } = await this.call("chain.get_account_nonce", { account });
83
- if (!nonce)
84
- return 0;
85
- return Number(nonce);
89
+ async getNonce(account, deserialize = true) {
90
+ const { nonce: nonceBase64url } = await this.call("chain.get_account_nonce", { account });
91
+ if (!deserialize) {
92
+ return nonceBase64url;
93
+ }
94
+ const valueBuffer = (0, utils_1.decodeBase64url)(nonceBase64url);
95
+ const message = protocol_proto_js_1.koinos.chain.value_type.decode(valueBuffer);
96
+ const object = protocol_proto_js_1.koinos.chain.value_type.toObject(message, {
97
+ longs: String,
98
+ defaults: true,
99
+ });
100
+ // todo: consider the case where nonce is greater than max safe integer
101
+ return Number(object.uint64_value);
86
102
  }
87
103
  async getAccountRc(account) {
88
104
  const { rc } = await this.call("chain.get_account_rc", {
@@ -102,7 +118,7 @@ class Provider {
102
118
  }
103
119
  async getBlocksById(blockIds) {
104
120
  return this.call("block_store.get_blocks_by_id", {
105
- block_id: blockIds,
121
+ block_ids: blockIds,
106
122
  return_block: true,
107
123
  return_receipt: false,
108
124
  });
@@ -113,6 +129,13 @@ class Provider {
113
129
  async getHeadInfo() {
114
130
  return this.call("chain.get_head_info", {});
115
131
  }
132
+ /**
133
+ * Function to get the chain
134
+ */
135
+ async getChainId() {
136
+ const { chain_id: chainId } = await this.call("chain.get_chain_id", {});
137
+ return chainId;
138
+ }
116
139
  /**
117
140
  * Function to get consecutive blocks in descending order
118
141
  * @param height - Starting block height
@@ -142,93 +165,102 @@ class Provider {
142
165
  return (await this.getBlocks(height, 1))[0];
143
166
  }
144
167
  /**
145
- * Function to call "chain.submit_transaction" to send a signed
146
- * transaction to the blockchain. It returns an object with the async
147
- * function "wait", which can be called to wait for the
148
- * transaction to be mined (see [[SendTransactionResponse]]).
149
- * @param transaction - Signed transaction
168
+ * Function to wait for a transaction to be mined.
169
+ * @param txId - transaction id
170
+ * @param type - Type must be "byBlock" (default) or "byTransactionId".
171
+ * _byBlock_ will query the blockchain to get blocks and search for the
172
+ * transaction there. _byTransactionId_ will query the "transaction store"
173
+ * microservice to search the transaction by its id. If non of them is
174
+ * specified the function will use "byBlock" (as "byTransactionId"
175
+ * requires the transaction store, which is an optional microservice).
176
+ *
177
+ * When _byBlock_ is used it returns the block number.
178
+ *
179
+ * When _byTransactionId_ is used it returns the block id.
180
+ *
181
+ * @param timeout - Timeout in milliseconds. By default it is 30000
150
182
  * @example
151
183
  * ```ts
152
- * const { transactionResponse } = await provider.sendTransaction({
153
- * id: "1220...",
154
- * active: "...",
155
- * signatureData: "...",
156
- * });
157
- * console.log("Transaction submitted to the mempool");
158
- * // wait to be mined
159
- * const blockNumber = await transactionResponse.wait();
160
- * // const blockNumber = await transactionResponse.wait("byBlock", 30000);
161
- * // const blockId = await transactionResponse.wait("byTransactionId", 30000);
184
+ * const blockNumber = await provider.wait(txId);
185
+ * // const blockNumber = await provider.wait(txId, "byBlock", 30000);
186
+ * // const blockId = await provider.wait(txId, "byTransactionId", 30000);
162
187
  * console.log("Transaction mined")
163
188
  * ```
164
189
  */
165
- async sendTransaction(transaction) {
166
- await this.call("chain.submit_transaction", { transaction });
167
- return {
168
- wait: async (type = "byBlock", timeout = 30000) => {
169
- const iniTime = Date.now();
170
- if (type === "byTransactionId") {
171
- while (Date.now() < iniTime + timeout) {
172
- await sleep(1000);
173
- const { transactions } = await this.getTransactionsById([
174
- transaction.id,
175
- ]);
176
- if (transactions &&
177
- transactions[0] &&
178
- transactions[0].containing_blocks)
179
- return transactions[0].containing_blocks[0];
180
- }
181
- throw new Error(`Transaction not mined after ${timeout} ms`);
182
- }
183
- // byBlock
184
- const findTxInBlocks = async (ini, numBlocks, idRef) => {
185
- const blocks = await this.getBlocks(ini, numBlocks, idRef);
186
- let bNum = 0;
187
- blocks.forEach((block) => {
188
- if (!block ||
189
- !block.block ||
190
- !block.block_id ||
191
- !block.block.transactions)
192
- return;
193
- const tx = block.block.transactions.find((t) => t.id === transaction.id);
194
- if (tx)
195
- bNum = Number(block.block_height);
196
- });
197
- const lastId = blocks[blocks.length - 1].block_id;
198
- return [bNum, lastId];
199
- };
200
- let blockNumber = 0;
201
- let iniBlock = 0;
202
- let previousId = "";
203
- while (Date.now() < iniTime + timeout) {
204
- await sleep(1000);
205
- const { head_topology: headTopology } = await this.getHeadInfo();
206
- if (blockNumber === 0) {
207
- blockNumber = Number(headTopology.height);
208
- iniBlock = blockNumber;
209
- }
210
- if (Number(headTopology.height) === blockNumber - 1 &&
211
- previousId &&
212
- previousId !== headTopology.id) {
213
- const [bNum, lastId] = await findTxInBlocks(iniBlock, Number(headTopology.height) - iniBlock + 1, headTopology.id);
214
- if (bNum)
215
- return bNum;
216
- previousId = lastId;
217
- blockNumber = Number(headTopology.height) + 1;
218
- }
219
- // eslint-disable-next-line no-continue
220
- if (blockNumber > Number(headTopology.height))
221
- continue;
222
- const [bNum, lastId] = await findTxInBlocks(blockNumber, 1, headTopology.id);
223
- if (bNum)
224
- return bNum;
225
- if (!previousId)
226
- previousId = lastId;
227
- blockNumber += 1;
228
- }
229
- throw new Error(`Transaction not mined after ${timeout} ms. Blocks checked from ${iniBlock} to ${blockNumber}`);
230
- },
190
+ async wait(txId, type = "byBlock", timeout = 30000) {
191
+ const iniTime = Date.now();
192
+ if (type === "byTransactionId") {
193
+ while (Date.now() < iniTime + timeout) {
194
+ await sleep(1000);
195
+ const { transactions } = await this.getTransactionsById([txId]);
196
+ if (transactions &&
197
+ transactions[0] &&
198
+ transactions[0].containing_blocks)
199
+ return transactions[0].containing_blocks[0];
200
+ }
201
+ throw new Error(`Transaction not mined after ${timeout} ms`);
202
+ }
203
+ // byBlock
204
+ const findTxInBlocks = async (ini, numBlocks, idRef) => {
205
+ const blocks = await this.getBlocks(ini, numBlocks, idRef);
206
+ let bNum = 0;
207
+ blocks.forEach((block) => {
208
+ if (!block ||
209
+ !block.block ||
210
+ !block.block_id ||
211
+ !block.block.transactions)
212
+ return;
213
+ const tx = block.block.transactions.find((t) => t.id === txId);
214
+ if (tx)
215
+ bNum = Number(block.block_height);
216
+ });
217
+ const lastId = blocks[blocks.length - 1].block_id;
218
+ return [bNum, lastId];
231
219
  };
220
+ let blockNumber = 0;
221
+ let iniBlock = 0;
222
+ let previousId = "";
223
+ while (Date.now() < iniTime + timeout) {
224
+ await sleep(1000);
225
+ const { head_topology: headTopology } = await this.getHeadInfo();
226
+ if (blockNumber === 0) {
227
+ blockNumber = Number(headTopology.height);
228
+ iniBlock = blockNumber;
229
+ }
230
+ if (Number(headTopology.height) === blockNumber - 1 &&
231
+ previousId &&
232
+ previousId !== headTopology.id) {
233
+ const [bNum, lastId] = await findTxInBlocks(iniBlock, Number(headTopology.height) - iniBlock + 1, headTopology.id);
234
+ if (bNum)
235
+ return bNum;
236
+ previousId = lastId;
237
+ blockNumber = Number(headTopology.height) + 1;
238
+ }
239
+ // eslint-disable-next-line no-continue
240
+ if (blockNumber > Number(headTopology.height))
241
+ continue;
242
+ const [bNum, lastId] = await findTxInBlocks(blockNumber, 1, headTopology.id);
243
+ if (bNum)
244
+ return bNum;
245
+ if (!previousId)
246
+ previousId = lastId;
247
+ blockNumber += 1;
248
+ }
249
+ throw new Error(`Transaction not mined after ${timeout} ms. Blocks checked from ${iniBlock} to ${blockNumber}`);
250
+ }
251
+ /**
252
+ * Function to call "chain.submit_transaction" to send a signed
253
+ * transaction to the blockchain.
254
+ */
255
+ async sendTransaction(transaction) {
256
+ return this.call("chain.submit_transaction", { transaction });
257
+ }
258
+ /**
259
+ * Function to call "chain.submit_block" to send a signed
260
+ * block to the blockchain.
261
+ */
262
+ async submitBlock(block) {
263
+ return this.call("chain.submit_block", { block });
232
264
  }
233
265
  /**
234
266
  * Function to call "chain.read_contract" to read a contract.
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/Provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../src/Provider.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export declare class Serializer {
49
49
  */
50
50
  defaultType?: Type;
51
51
  /**
52
- * Preformat bytes for base64, base58 or hex string
52
+ * Preformat bytes for base64url, base58 or hex string
53
53
  */
54
54
  bytesConversion: boolean;
55
55
  constructor(types: INamespace, opts?: {
@@ -65,17 +65,22 @@ export declare class Serializer {
65
65
  */
66
66
  bytesConversion?: boolean;
67
67
  });
68
+ converter(valueDecoded: Record<string, unknown>, object: Record<string, unknown>, protobufType: Type, fieldName: string): void;
68
69
  /**
69
70
  * Function to encode a type using the protobuffer definitions
70
71
  * It also prepares the bytes for special cases (base58, hex string)
71
72
  * when bytesConversion param is true.
72
73
  */
73
- serialize(valueDecoded: Record<string, unknown>, typeName?: string): Promise<Uint8Array>;
74
+ serialize(valueDecoded: Record<string, unknown>, typeName?: string, opts?: {
75
+ bytesConversion?: boolean;
76
+ }): Promise<Uint8Array>;
74
77
  /**
75
78
  * Function to decode bytes using the protobuffer definitions
76
79
  * It also encodes the bytes for special cases (base58, hex string)
77
80
  * when bytesConversion param is true.
78
81
  */
79
- deserialize<T = Record<string, unknown>>(valueEncoded: string | Uint8Array, typeName?: string): Promise<T>;
82
+ deserialize<T = Record<string, unknown>>(valueEncoded: string | Uint8Array, typeName?: string, opts?: {
83
+ bytesConversion?: boolean;
84
+ }): Promise<T>;
80
85
  }
81
86
  export default Serializer;
@@ -4,7 +4,7 @@ exports.Serializer = void 0;
4
4
  /* eslint-disable @typescript-eslint/require-await */
5
5
  const light_1 = require("protobufjs/light");
6
6
  const utils_1 = require("./utils");
7
- const OP_BYTES = "(koinos_bytes_type)";
7
+ const OP_BYTES = "(btype)";
8
8
  /**
9
9
  * Makes a copy of a value. The returned value can be modified
10
10
  * without altering the original one. Although this is not needed
@@ -58,7 +58,7 @@ function copyValue(value) {
58
58
  class Serializer {
59
59
  constructor(types, opts) {
60
60
  /**
61
- * Preformat bytes for base64, base58 or hex string
61
+ * Preformat bytes for base64url, base58 or hex string
62
62
  */
63
63
  this.bytesConversion = true;
64
64
  this.types = types;
@@ -68,47 +68,60 @@ class Serializer {
68
68
  if (opts && typeof opts.bytesConversion !== "undefined")
69
69
  this.bytesConversion = opts.bytesConversion;
70
70
  }
71
+ converter(valueDecoded, object, protobufType, fieldName) {
72
+ const { options, name, type } = protobufType.fields[fieldName];
73
+ if (!valueDecoded[name])
74
+ return;
75
+ // if operation
76
+ if (type.endsWith("_operation")) {
77
+ const protoBuf = this.root.lookupType(type);
78
+ object[name] = {};
79
+ Object.keys(protoBuf.fields).forEach((fdName) => this.converter(valueDecoded[name], object[name], protoBuf, fdName));
80
+ return;
81
+ }
82
+ // No byte conversion
83
+ if (type !== "bytes") {
84
+ object[name] = copyValue(valueDecoded[name]);
85
+ return;
86
+ }
87
+ // Default byte conversion
88
+ if (!options || !options[OP_BYTES]) {
89
+ object[name] = (0, utils_1.decodeBase64url)(valueDecoded[name]);
90
+ return;
91
+ }
92
+ // Specific byte conversion
93
+ switch (options[OP_BYTES]) {
94
+ case "BASE58":
95
+ case "CONTRACT_ID":
96
+ case "ADDRESS":
97
+ object[name] = (0, utils_1.decodeBase58)(valueDecoded[name]);
98
+ break;
99
+ case "BASE64":
100
+ object[name] = (0, utils_1.decodeBase64url)(valueDecoded[name]);
101
+ break;
102
+ case "HEX":
103
+ case "BLOCK_ID":
104
+ case "TRANSACTION_ID":
105
+ object[name] = (0, utils_1.toUint8Array)(valueDecoded[name].replace("0x", ""));
106
+ break;
107
+ default:
108
+ throw new Error(`unknown btype ${options[OP_BYTES]}`);
109
+ }
110
+ }
71
111
  /**
72
112
  * Function to encode a type using the protobuffer definitions
73
113
  * It also prepares the bytes for special cases (base58, hex string)
74
114
  * when bytesConversion param is true.
75
115
  */
76
- async serialize(valueDecoded, typeName) {
116
+ async serialize(valueDecoded, typeName, opts) {
77
117
  const protobufType = this.defaultType || this.root.lookupType(typeName);
78
118
  let object = {};
79
- if (this.bytesConversion) {
119
+ const bytesConversion = (opts === null || opts === void 0 ? void 0 : opts.bytesConversion) === undefined
120
+ ? this.bytesConversion
121
+ : opts.bytesConversion;
122
+ if (bytesConversion) {
80
123
  // TODO: format from Buffer to base58/base64 for nested fields
81
- Object.keys(protobufType.fields).forEach((fieldName) => {
82
- const { options, name, type } = protobufType.fields[fieldName];
83
- // No byte conversion
84
- if (type !== "bytes") {
85
- object[name] = copyValue(valueDecoded[name]);
86
- return;
87
- }
88
- // Default byte conversion
89
- if (!options || !options[OP_BYTES]) {
90
- object[name] = (0, utils_1.decodeBase64)(valueDecoded[name]);
91
- return;
92
- }
93
- // Specific byte conversion
94
- switch (options[OP_BYTES]) {
95
- case "BASE58":
96
- case "CONTRACT_ID":
97
- case "ADDRESS":
98
- object[name] = (0, utils_1.decodeBase58)(valueDecoded[name]);
99
- break;
100
- case "BASE64":
101
- object[name] = (0, utils_1.decodeBase64)(valueDecoded[name]);
102
- break;
103
- case "HEX":
104
- case "BLOCK_ID":
105
- case "TRANSACTION_ID":
106
- object[name] = (0, utils_1.toUint8Array)(valueDecoded[name].replace("0x", ""));
107
- break;
108
- default:
109
- throw new Error(`unknown koinos_byte_type ${options[OP_BYTES]}`);
110
- }
111
- });
124
+ Object.keys(protobufType.fields).forEach((fieldName) => this.converter(valueDecoded, object, protobufType, fieldName));
112
125
  }
113
126
  else {
114
127
  object = valueDecoded;
@@ -122,14 +135,20 @@ class Serializer {
122
135
  * It also encodes the bytes for special cases (base58, hex string)
123
136
  * when bytesConversion param is true.
124
137
  */
125
- async deserialize(valueEncoded, typeName) {
138
+ async deserialize(valueEncoded, typeName, opts) {
126
139
  const valueBuffer = typeof valueEncoded === "string"
127
- ? (0, utils_1.decodeBase64)(valueEncoded)
140
+ ? (0, utils_1.decodeBase64url)(valueEncoded)
128
141
  : valueEncoded;
129
142
  const protobufType = this.defaultType || this.root.lookupType(typeName);
130
143
  const message = protobufType.decode(valueBuffer);
131
- const object = protobufType.toObject(message, { longs: String });
132
- if (!this.bytesConversion)
144
+ const object = protobufType.toObject(message, {
145
+ longs: String,
146
+ defaults: true,
147
+ });
148
+ const bytesConversion = (opts === null || opts === void 0 ? void 0 : opts.bytesConversion) === undefined
149
+ ? this.bytesConversion
150
+ : opts.bytesConversion;
151
+ if (!bytesConversion)
133
152
  return object;
134
153
  // TODO: format from Buffer to base58/base64 for nested fields
135
154
  Object.keys(protobufType.fields).forEach((fieldName) => {
@@ -139,7 +158,7 @@ class Serializer {
139
158
  return;
140
159
  // Default byte conversion
141
160
  if (!options || !options[OP_BYTES]) {
142
- object[name] = (0, utils_1.encodeBase64)(object[name]);
161
+ object[name] = (0, utils_1.encodeBase64url)(object[name]);
143
162
  return;
144
163
  }
145
164
  // Specific byte conversion
@@ -150,7 +169,7 @@ class Serializer {
150
169
  object[name] = (0, utils_1.encodeBase58)(object[name]);
151
170
  break;
152
171
  case "BASE64":
153
- object[name] = (0, utils_1.encodeBase64)(object[name]);
172
+ object[name] = (0, utils_1.encodeBase64url)(object[name]);
154
173
  break;
155
174
  case "HEX":
156
175
  case "BLOCK_ID":
@@ -1 +1 @@
1
- {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"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"}