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
package/lib/Signer.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  import { Provider } from "./Provider";
2
- import { TransactionJson, ActiveTransactionData, Abi, SendTransactionResponse, RecoverPublicKeyOptions, BlockJson } from "./interface";
3
- import { Serializer } from "./Serializer";
2
+ import { TransactionJson, TransactionJsonWait, BlockJson, RecoverPublicKeyOptions, Abi } from "./interface";
4
3
  export interface SignerInterface {
5
4
  provider?: Provider;
6
- serializer?: Serializer;
7
5
  getAddress: (compressed?: boolean) => string;
8
6
  getPrivateKey: (format: "wif" | "hex", compressed?: boolean) => string;
9
- signTransaction: (tx: TransactionJson) => Promise<TransactionJson>;
10
- sendTransaction: (tx: TransactionJson, abis?: Record<string, Abi>) => Promise<SendTransactionResponse>;
11
- encodeTransaction: (activeData: ActiveTransactionData) => Promise<TransactionJson>;
12
- decodeTransaction: (tx: TransactionJson) => Promise<ActiveTransactionData>;
7
+ signHash(hash: Uint8Array): Promise<Uint8Array>;
8
+ signTransaction: (tx: TransactionJson | TransactionJsonWait, abis?: Record<string, Abi>) => Promise<TransactionJson>;
9
+ sendTransaction: (tx: TransactionJson | TransactionJsonWait, abis?: Record<string, Abi>) => Promise<TransactionJsonWait>;
10
+ prepareTransaction: (tx: TransactionJson) => Promise<TransactionJson>;
11
+ prepareBlock: (block: BlockJson) => Promise<BlockJson>;
12
+ signBlock: (block: BlockJson) => Promise<BlockJson>;
13
13
  }
14
14
  /**
15
15
  * The Signer Class contains the private key needed to sign transactions.
@@ -78,13 +78,13 @@ export declare class Signer implements SignerInterface {
78
78
  */
79
79
  address: string;
80
80
  /**
81
- * Provider to connect with the blockchain
81
+ * Chain id
82
82
  */
83
- provider?: Provider;
83
+ chainId: string;
84
84
  /**
85
- * Serializer to serialize/deserialize data types
85
+ * Provider to connect with the blockchain
86
86
  */
87
- serializer?: Serializer;
87
+ provider?: Provider;
88
88
  /**
89
89
  * The constructor receives de private key as hexstring, bigint or Uint8Array.
90
90
  * See also the functions [[Signer.fromWif]] and [[Signer.fromSeed]]
@@ -104,14 +104,8 @@ export declare class Signer implements SignerInterface {
104
104
  constructor(c: {
105
105
  privateKey: string | number | bigint | Uint8Array;
106
106
  compressed?: boolean;
107
+ chainId?: string;
107
108
  provider?: Provider;
108
- /**
109
- * Set this option if you can not use _eval_ functions
110
- * in the current environment. In such cases, the
111
- * serializer must come from an environment where it
112
- * is able to use those functions.
113
- */
114
- serializer?: Serializer;
115
109
  });
116
110
  /**
117
111
  * Function to import a private key from the WIF
@@ -124,7 +118,7 @@ export declare class Signer implements SignerInterface {
124
118
  * ```
125
119
  * @returns Signer object
126
120
  */
127
- static fromWif(wif: string): Signer;
121
+ static fromWif(wif: string, compressed?: boolean): Signer;
128
122
  /**
129
123
  * Function to import a private key from the seed
130
124
  * @param seed - Seed words
@@ -163,13 +157,26 @@ export declare class Signer implements SignerInterface {
163
157
  * ```
164
158
  */
165
159
  getPrivateKey(format?: "wif" | "hex", compressed?: boolean): string;
160
+ /**
161
+ * Function to sign a hash value. It returns the bytes signature.
162
+ * The signature is in compact format with the recovery byte
163
+ * @param hash - Hash value. Also known as digest
164
+ */
165
+ signHash(hash: Uint8Array): Promise<Uint8Array>;
166
166
  /**
167
167
  * Function to sign a transaction. It's important to remark that
168
168
  * the transaction parameter is modified inside this function.
169
169
  * @param tx - Unsigned transaction
170
- * @returns
171
170
  */
172
- signTransaction(tx: TransactionJson): Promise<TransactionJson>;
171
+ signTransaction(tx: TransactionJson | TransactionJsonWait, _abis?: Record<string, Abi>): Promise<TransactionJson>;
172
+ /**
173
+ * Function to sign a block for federated consensus. That is,
174
+ * just the ecdsa signature. For other algorithms, like PoW,
175
+ * you have to sign the block and then process the signature
176
+ * to add the extra data (nonce in the case of PoW).
177
+ * @param block - Unsigned block
178
+ */
179
+ signBlock(block: BlockJson): Promise<BlockJson>;
173
180
  /**
174
181
  * Function to sign and send a transaction. It internally uses
175
182
  * [[Provider.sendTransaction]]
@@ -179,15 +186,22 @@ export declare class Signer implements SignerInterface {
179
186
  * transaction. This parameter is optional.
180
187
  * @returns
181
188
  */
182
- sendTransaction(tx: TransactionJson, _abis?: Record<string, Abi>): Promise<SendTransactionResponse>;
189
+ sendTransaction(tx: TransactionJson | TransactionJsonWait, _abis?: Record<string, Abi>): Promise<TransactionJsonWait>;
190
+ /**
191
+ * Function to recover the public key from hash and signature
192
+ * @param hash - hash sha256
193
+ * @param signature - compact signature
194
+ * @param compressed - default true
195
+ */
196
+ static recoverPublicKey(hash: Uint8Array, signature: Uint8Array, compressed?: boolean): string;
183
197
  /**
184
- * Function to recover the public key from a signed
198
+ * Function to recover the publics keys from a signed
185
199
  * transaction or block.
186
200
  * The output format can be compressed (default) or uncompressed.
187
201
  *
188
202
  * @example
189
203
  * ```ts
190
- * const publicKey = await Signer.recoverPublicKey(tx);
204
+ * const publicKeys = await Signer.recoverPublicKeys(tx);
191
205
  * ```
192
206
  *
193
207
  * If the signature data contains more data, like in the
@@ -221,7 +235,7 @@ export declare class Signer implements SignerInterface {
221
235
  * defaultTypeName: "pow_signature_data",
222
236
  * });
223
237
  *
224
- * const signer = await Signer.recoverPublicKey(block, {
238
+ * const publicKeys = await signer.recoverPublicKeys(block, {
225
239
  * transformSignature: async (signatureData) => {
226
240
  * const powSignatureData = await serializer.deserialize(signatureData);
227
241
  * return powSignatureData.recoverable_signature;
@@ -229,14 +243,14 @@ export declare class Signer implements SignerInterface {
229
243
  * });
230
244
  * ```
231
245
  */
232
- static recoverPublicKey(txOrBlock: TransactionJson | BlockJson, opts?: RecoverPublicKeyOptions): Promise<string>;
246
+ recoverPublicKeys(txOrBlock: TransactionJson | BlockJson, opts?: RecoverPublicKeyOptions): Promise<string[]>;
233
247
  /**
234
- * Function to recover the signer address from a signed
248
+ * Function to recover the signer addresses from a signed
235
249
  * transaction or block.
236
250
  * The output format can be compressed (default) or uncompressed.
237
251
  * @example
238
252
  * ```ts
239
- * const publicKey = await Signer.recoverAddress(tx);
253
+ * const addresses = await signer.recoverAddress(tx);
240
254
  * ```
241
255
  *
242
256
  * If the signature data contains more data, like in the
@@ -270,7 +284,7 @@ export declare class Signer implements SignerInterface {
270
284
  * defaultTypeName: "pow_signature_data",
271
285
  * });
272
286
  *
273
- * const signer = await Signer.recoverAddress(block, {
287
+ * const addresses = await signer.recoverAddress(block, {
274
288
  * transformSignature: async (signatureData) => {
275
289
  * const powSignatureData = await serializer.deserialize(signatureData);
276
290
  * return powSignatureData.recoverable_signature;
@@ -278,19 +292,19 @@ export declare class Signer implements SignerInterface {
278
292
  * });
279
293
  * ```
280
294
  */
281
- static recoverAddress(txOrBlock: TransactionJson | BlockJson, opts?: RecoverPublicKeyOptions): Promise<string>;
295
+ recoverAddresses(txOrBlock: TransactionJson | BlockJson, opts?: RecoverPublicKeyOptions): Promise<string[]>;
282
296
  /**
283
- * Function to encode a transaction
284
- * @param activeData - Active data consists of nonce, rc_limit, and
285
- * operations. Do not set the nonce to get it from the blockchain
286
- * using the provider. The rc_limit is 1000000 by default.
287
- * @returns A transaction encoded. The active field is encoded in
288
- * base64url
297
+ * Function to prepare a transaction
298
+ * @param tx - Do not set the nonce to get it from the blockchain
299
+ * using the provider. The rc_limit is 1e8 by default.
300
+ * @returns A prepared transaction. ()
289
301
  */
290
- encodeTransaction(activeData: ActiveTransactionData): Promise<TransactionJson>;
302
+ prepareTransaction(tx: TransactionJson): Promise<TransactionJson>;
291
303
  /**
292
- * Function to decode a transaction
304
+ * Function to prepare a block
305
+ * @param block -
306
+ * @returns A prepared block. ()
293
307
  */
294
- decodeTransaction(tx: TransactionJson): Promise<ActiveTransactionData>;
308
+ prepareBlock(block: BlockJson): Promise<BlockJson>;
295
309
  }
296
310
  export default Signer;