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,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
  }
@@ -26,7 +31,7 @@ class Provider {
26
31
  else
27
32
  this.rpcNodes = [rpcNodes];
28
33
  this.currentNodeId = 0;
29
- this.onError = () => false;
34
+ this.onError = () => true;
30
35
  }
31
36
  /**
32
37
  * Function to make jsonrpc requests to the RPC node
@@ -39,7 +44,7 @@ class Provider {
39
44
  // eslint-disable-next-line no-constant-condition
40
45
  while (true) {
41
46
  try {
42
- const data = {
47
+ const body = {
43
48
  id: Math.round(Math.random() * 1000),
44
49
  jsonrpc: "2.0",
45
50
  method,
@@ -48,18 +53,27 @@ class Provider {
48
53
  const url = this.rpcNodes[this.currentNodeId];
49
54
  const response = await fetch(url, {
50
55
  method: "POST",
51
- body: JSON.stringify(data),
56
+ body: JSON.stringify(body),
52
57
  });
53
58
  const json = (await response.json());
54
- if (json.error && json.error.message) {
55
- const error = new Error(json.error.message);
56
- error.request = {
57
- method,
58
- params,
59
- };
60
- throw error;
59
+ if (json.result !== undefined)
60
+ return json.result;
61
+ if (!json.error)
62
+ throw new Error("undefined error");
63
+ const { message, data } = json.error;
64
+ if (!data)
65
+ throw new Error(message);
66
+ let dataJson;
67
+ try {
68
+ dataJson = JSON.parse(data);
61
69
  }
62
- return json.result;
70
+ catch (e) {
71
+ dataJson = { data };
72
+ }
73
+ throw new Error(JSON.stringify({
74
+ ...(message && { error: message }),
75
+ ...dataJson,
76
+ }));
63
77
  }
64
78
  catch (e) {
65
79
  const currentNode = this.rpcNodes[this.currentNodeId];
@@ -76,13 +90,24 @@ class Provider {
76
90
  * transactions for a particular account. This call is used
77
91
  * when creating new transactions.
78
92
  * @param account - account address
93
+ * @param deserialize - If set true it will deserialize the nonce
94
+ * and return it as number (default). If set false it will return
95
+ * the nonce encoded as received from the RPC.
79
96
  * @returns Nonce
80
97
  */
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);
98
+ async getNonce(account, deserialize = true) {
99
+ const { nonce: nonceBase64url } = await this.call("chain.get_account_nonce", { account });
100
+ if (!deserialize) {
101
+ return nonceBase64url;
102
+ }
103
+ const valueBuffer = (0, utils_1.decodeBase64url)(nonceBase64url);
104
+ const message = protocol_proto_js_1.koinos.chain.value_type.decode(valueBuffer);
105
+ const object = protocol_proto_js_1.koinos.chain.value_type.toObject(message, {
106
+ longs: String,
107
+ defaults: true,
108
+ });
109
+ // todo: consider the case where nonce is greater than max safe integer
110
+ return Number(object.uint64_value);
86
111
  }
87
112
  async getAccountRc(account) {
88
113
  const { rc } = await this.call("chain.get_account_rc", {
@@ -102,7 +127,7 @@ class Provider {
102
127
  }
103
128
  async getBlocksById(blockIds) {
104
129
  return this.call("block_store.get_blocks_by_id", {
105
- block_id: blockIds,
130
+ block_ids: blockIds,
106
131
  return_block: true,
107
132
  return_receipt: false,
108
133
  });
@@ -113,6 +138,13 @@ class Provider {
113
138
  async getHeadInfo() {
114
139
  return this.call("chain.get_head_info", {});
115
140
  }
141
+ /**
142
+ * Function to get the chain
143
+ */
144
+ async getChainId() {
145
+ const { chain_id: chainId } = await this.call("chain.get_chain_id", {});
146
+ return chainId;
147
+ }
116
148
  /**
117
149
  * Function to get consecutive blocks in descending order
118
150
  * @param height - Starting block height
@@ -155,16 +187,16 @@ class Provider {
155
187
  *
156
188
  * When _byTransactionId_ is used it returns the block id.
157
189
  *
158
- * @param timeout - Timeout in milliseconds. By default it is 30000
190
+ * @param timeout - Timeout in milliseconds. By default it is 60000
159
191
  * @example
160
192
  * ```ts
161
193
  * const blockNumber = await provider.wait(txId);
162
- * // const blockNumber = await provider.wait(txId, "byBlock", 30000);
163
- * // const blockId = await provider.wait(txId, "byTransactionId", 30000);
194
+ * // const blockNumber = await provider.wait(txId, "byBlock", 60000);
195
+ * // const blockId = await provider.wait(txId, "byTransactionId", 60000);
164
196
  * console.log("Transaction mined")
165
197
  * ```
166
198
  */
167
- async wait(txId, type = "byBlock", timeout = 30000) {
199
+ async wait(txId, type = "byBlock", timeout = 60000) {
168
200
  const iniTime = Date.now();
169
201
  if (type === "byTransactionId") {
170
202
  while (Date.now() < iniTime + timeout) {
@@ -232,6 +264,13 @@ class Provider {
232
264
  async sendTransaction(transaction) {
233
265
  return this.call("chain.submit_transaction", { transaction });
234
266
  }
267
+ /**
268
+ * Function to call "chain.submit_block" to send a signed
269
+ * block to the blockchain.
270
+ */
271
+ async submitBlock(block) {
272
+ return this.call("chain.submit_block", { block });
273
+ }
235
274
  /**
236
275
  * Function to call "chain.read_contract" to read a contract.
237
276
  * This function is used by [[Contract]] class when read methods
@@ -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,6 +65,8 @@ export declare class Serializer {
65
65
  */
66
66
  bytesConversion?: boolean;
67
67
  });
68
+ btypeDecode(valueBtypeEncoded: Record<string, unknown> | unknown[], protobufType: Type): Record<string, unknown>;
69
+ btypeEncode(valueBtypeDecoded: Record<string, unknown> | unknown[], protobufType: Type): Record<string, unknown>;
68
70
  /**
69
71
  * Function to encode a type using the protobuffer definitions
70
72
  * It also prepares the bytes for special cases (base58, hex string)
@@ -4,22 +4,25 @@ 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)";
8
- /**
9
- * Makes a copy of a value. The returned value can be modified
10
- * without altering the original one. Although this is not needed
11
- * for strings or numbers and only needed for objects and arrays,
12
- * all these options are covered in a single function
13
- *
14
- * It is assumed that the argument is number, string, or contructions
15
- * of these types inside objects or arrays.
16
- */
17
- function copyValue(value) {
18
- if (typeof value === "string" || typeof value === "number") {
19
- return value;
20
- }
21
- return JSON.parse(JSON.stringify(value));
22
- }
7
+ const OP_BYTES_1 = "(btype)";
8
+ const OP_BYTES_2 = "(koinos.btype)";
9
+ const nativeTypes = [
10
+ "double",
11
+ "float",
12
+ "int32",
13
+ "int64",
14
+ "uint32",
15
+ "uint64",
16
+ "sint32",
17
+ "sint64",
18
+ "fixed32",
19
+ "fixed64",
20
+ "sfixed32",
21
+ "sfixed64",
22
+ "bool",
23
+ "string",
24
+ "bytes",
25
+ ];
23
26
  /**
24
27
  * The serializer class serialize and deserialize data using
25
28
  * protocol buffers.
@@ -58,7 +61,7 @@ function copyValue(value) {
58
61
  class Serializer {
59
62
  constructor(types, opts) {
60
63
  /**
61
- * Preformat bytes for base64, base58 or hex string
64
+ * Preformat bytes for base64url, base58 or hex string
62
65
  */
63
66
  this.bytesConversion = true;
64
67
  this.types = types;
@@ -68,6 +71,80 @@ class Serializer {
68
71
  if (opts && typeof opts.bytesConversion !== "undefined")
69
72
  this.bytesConversion = opts.bytesConversion;
70
73
  }
74
+ btypeDecode(valueBtypeEncoded, protobufType) {
75
+ const valueBtypeDecoded = {};
76
+ Object.keys(protobufType.fields).forEach((fieldName) => {
77
+ const { options, name, type, rule } = protobufType.fields[fieldName];
78
+ if (!valueBtypeEncoded[name])
79
+ return;
80
+ const typeField = { type };
81
+ if (options) {
82
+ if (options[OP_BYTES_1])
83
+ typeField.btype = options[OP_BYTES_1];
84
+ else if (options[OP_BYTES_2])
85
+ typeField.btype = options[OP_BYTES_2];
86
+ }
87
+ // arrays
88
+ if (rule === "repeated") {
89
+ valueBtypeDecoded[name] = valueBtypeEncoded[name].map((itemEncoded) => {
90
+ // custom objects
91
+ if (!nativeTypes.includes(type)) {
92
+ const protoBuf = this.root.lookupType(type);
93
+ return this.btypeDecode(itemEncoded, protoBuf);
94
+ }
95
+ // native types
96
+ return (0, utils_1.btypeDecodeValue)(itemEncoded, typeField);
97
+ });
98
+ return;
99
+ }
100
+ // custom objects
101
+ if (!nativeTypes.includes(type)) {
102
+ const protoBuf = this.root.lookupType(type);
103
+ valueBtypeDecoded[name] = this.btypeDecode(valueBtypeEncoded[name], protoBuf);
104
+ return;
105
+ }
106
+ // native types
107
+ valueBtypeDecoded[name] = (0, utils_1.btypeDecodeValue)(valueBtypeEncoded[name], typeField);
108
+ });
109
+ return valueBtypeDecoded;
110
+ }
111
+ btypeEncode(valueBtypeDecoded, protobufType) {
112
+ const valueBtypeEncoded = {};
113
+ Object.keys(protobufType.fields).forEach((fieldName) => {
114
+ const { options, name, type, rule } = protobufType.fields[fieldName];
115
+ if (!valueBtypeDecoded[name])
116
+ return;
117
+ const typeField = { type };
118
+ if (options) {
119
+ if (options[OP_BYTES_1])
120
+ typeField.btype = options[OP_BYTES_1];
121
+ else if (options[OP_BYTES_2])
122
+ typeField.btype = options[OP_BYTES_2];
123
+ }
124
+ // arrays
125
+ if (rule === "repeated") {
126
+ valueBtypeEncoded[name] = valueBtypeDecoded[name].map((itemDecoded) => {
127
+ // custom objects
128
+ if (!nativeTypes.includes(type)) {
129
+ const protoBuf = this.root.lookupType(type);
130
+ return this.btypeEncode(itemDecoded, protoBuf);
131
+ }
132
+ // native types
133
+ return (0, utils_1.btypeEncodeValue)(itemDecoded, typeField);
134
+ });
135
+ return;
136
+ }
137
+ // custom objects
138
+ if (!nativeTypes.includes(type)) {
139
+ const protoBuf = this.root.lookupType(type);
140
+ valueBtypeEncoded[name] = this.btypeEncode(valueBtypeDecoded[name], protoBuf);
141
+ return;
142
+ }
143
+ // native types
144
+ valueBtypeEncoded[name] = (0, utils_1.btypeEncodeValue)(valueBtypeDecoded[name], typeField);
145
+ });
146
+ return valueBtypeEncoded;
147
+ }
71
148
  /**
72
149
  * Function to encode a type using the protobuffer definitions
73
150
  * It also prepares the bytes for special cases (base58, hex string)
@@ -80,38 +157,7 @@ class Serializer {
80
157
  ? this.bytesConversion
81
158
  : opts.bytesConversion;
82
159
  if (bytesConversion) {
83
- // TODO: format from Buffer to base58/base64 for nested fields
84
- Object.keys(protobufType.fields).forEach((fieldName) => {
85
- const { options, name, type } = protobufType.fields[fieldName];
86
- // No byte conversion
87
- if (type !== "bytes") {
88
- object[name] = copyValue(valueDecoded[name]);
89
- return;
90
- }
91
- // Default byte conversion
92
- if (!options || !options[OP_BYTES]) {
93
- object[name] = (0, utils_1.decodeBase64)(valueDecoded[name]);
94
- return;
95
- }
96
- // Specific byte conversion
97
- switch (options[OP_BYTES]) {
98
- case "BASE58":
99
- case "CONTRACT_ID":
100
- case "ADDRESS":
101
- object[name] = (0, utils_1.decodeBase58)(valueDecoded[name]);
102
- break;
103
- case "BASE64":
104
- object[name] = (0, utils_1.decodeBase64)(valueDecoded[name]);
105
- break;
106
- case "HEX":
107
- case "BLOCK_ID":
108
- case "TRANSACTION_ID":
109
- object[name] = (0, utils_1.toUint8Array)(valueDecoded[name].replace("0x", ""));
110
- break;
111
- default:
112
- throw new Error(`unknown koinos_byte_type ${options[OP_BYTES]}`);
113
- }
114
- });
160
+ object = this.btypeDecode(valueDecoded, protobufType);
115
161
  }
116
162
  else {
117
163
  object = valueDecoded;
@@ -127,46 +173,20 @@ class Serializer {
127
173
  */
128
174
  async deserialize(valueEncoded, typeName, opts) {
129
175
  const valueBuffer = typeof valueEncoded === "string"
130
- ? (0, utils_1.decodeBase64)(valueEncoded)
176
+ ? (0, utils_1.decodeBase64url)(valueEncoded)
131
177
  : valueEncoded;
132
178
  const protobufType = this.defaultType || this.root.lookupType(typeName);
133
179
  const message = protobufType.decode(valueBuffer);
134
- const object = protobufType.toObject(message, { longs: String });
180
+ const object = protobufType.toObject(message, {
181
+ longs: String,
182
+ defaults: true,
183
+ });
135
184
  const bytesConversion = (opts === null || opts === void 0 ? void 0 : opts.bytesConversion) === undefined
136
185
  ? this.bytesConversion
137
186
  : opts.bytesConversion;
138
- if (!bytesConversion)
139
- return object;
140
- // TODO: format from Buffer to base58/base64 for nested fields
141
- Object.keys(protobufType.fields).forEach((fieldName) => {
142
- const { options, name, type } = protobufType.fields[fieldName];
143
- // No byte conversion
144
- if (type !== "bytes")
145
- return;
146
- // Default byte conversion
147
- if (!options || !options[OP_BYTES]) {
148
- object[name] = (0, utils_1.encodeBase64)(object[name]);
149
- return;
150
- }
151
- // Specific byte conversion
152
- switch (options[OP_BYTES]) {
153
- case "BASE58":
154
- case "CONTRACT_ID":
155
- case "ADDRESS":
156
- object[name] = (0, utils_1.encodeBase58)(object[name]);
157
- break;
158
- case "BASE64":
159
- object[name] = (0, utils_1.encodeBase64)(object[name]);
160
- break;
161
- case "HEX":
162
- case "BLOCK_ID":
163
- case "TRANSACTION_ID":
164
- object[name] = `0x${(0, utils_1.toHexString)(object[name])}`;
165
- break;
166
- default:
167
- throw new Error(`unknown koinos_byte_type ${options[OP_BYTES]}`);
168
- }
169
- });
187
+ if (bytesConversion) {
188
+ return this.btypeEncode(object, protobufType);
189
+ }
170
190
  return object;
171
191
  }
172
192
  }
@@ -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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"}