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.
- package/README.md +75 -12
- package/dist/koinos.js +8535 -284
- package/dist/koinos.min.js +1 -1
- package/lib/Contract.d.ts +66 -18
- package/lib/Contract.js +103 -40
- package/lib/Contract.js.map +1 -1
- package/lib/Provider.d.ts +22 -7
- package/lib/Provider.js +60 -21
- package/lib/Provider.js.map +1 -1
- package/lib/Serializer.d.ts +3 -1
- package/lib/Serializer.js +103 -83
- package/lib/Serializer.js.map +1 -1
- package/lib/Signer.d.ts +54 -42
- package/lib/Signer.js +305 -114
- package/lib/Signer.js.map +1 -1
- package/lib/browser/Contract.d.ts +66 -18
- package/lib/browser/Contract.js +103 -40
- package/lib/browser/Contract.js.map +1 -1
- package/lib/browser/Provider.d.ts +22 -7
- package/lib/browser/Provider.js +60 -21
- package/lib/browser/Provider.js.map +1 -1
- package/lib/browser/Serializer.d.ts +3 -1
- package/lib/browser/Serializer.js +103 -83
- package/lib/browser/Serializer.js.map +1 -1
- package/lib/browser/Signer.d.ts +54 -42
- package/lib/browser/Signer.js +305 -114
- package/lib/browser/Signer.js.map +1 -1
- package/lib/browser/index.d.ts +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/indexUtils.d.ts +2 -0
- package/lib/browser/indexUtils.js +15 -0
- package/lib/browser/indexUtils.js.map +1 -0
- package/lib/browser/interface.d.ts +242 -46
- package/lib/browser/jsonDescriptors/chain-proto.json +676 -0
- package/lib/browser/jsonDescriptors/{krc20-proto.json → token-proto.json} +47 -4
- package/lib/browser/protoModules/protocol-proto.d.ts +2 -0
- package/lib/browser/protoModules/protocol-proto.js +6336 -0
- package/lib/browser/protoModules/protocol-proto.js.map +1 -0
- package/lib/browser/utils.d.ts +19 -255
- package/lib/browser/utils.js +170 -15
- package/lib/browser/utils.js.map +1 -1
- package/lib/browser/utilsNode.d.ts +1021 -0
- package/lib/browser/utilsNode.js +346 -0
- package/lib/browser/utilsNode.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/indexUtils.d.ts +2 -0
- package/lib/indexUtils.js +15 -0
- package/lib/indexUtils.js.map +1 -0
- package/lib/interface.d.ts +242 -46
- package/lib/jsonDescriptors/chain-proto.json +676 -0
- package/lib/jsonDescriptors/{krc20-proto.json → token-proto.json} +47 -4
- package/lib/protoModules/protocol-proto.d.ts +2 -0
- package/lib/protoModules/protocol-proto.js +6336 -0
- package/lib/protoModules/protocol-proto.js.map +1 -0
- package/lib/utils.d.ts +19 -255
- package/lib/utils.js +170 -15
- package/lib/utils.js.map +1 -1
- package/lib/utilsNode.d.ts +1021 -0
- package/lib/utilsNode.js +346 -0
- package/lib/utilsNode.js.map +1 -0
- package/package.json +1 -1
- package/lib/browser/jsonDescriptors/protocol-proto.json +0 -246
- package/lib/jsonDescriptors/protocol-proto.json +0 -246
package/lib/Signer.js
CHANGED
|
@@ -18,17 +18,71 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
-
};
|
|
24
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
22
|
exports.Signer = void 0;
|
|
26
|
-
/* eslint-disable no-param-reassign */
|
|
23
|
+
/* eslint-disable no-param-reassign, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment */
|
|
27
24
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
28
25
|
const secp = __importStar(require("@noble/secp256k1"));
|
|
29
|
-
const protocol_proto_json_1 = __importDefault(require("./jsonDescriptors/protocol-proto.json"));
|
|
30
26
|
const utils_1 = require("./utils");
|
|
31
|
-
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
const protocol_proto_js_1 = require("./protoModules/protocol-proto.js");
|
|
30
|
+
const btypeBlockHeader = {
|
|
31
|
+
previous: { type: "bytes", btype: "BLOCK_ID" },
|
|
32
|
+
height: { type: "uint64" },
|
|
33
|
+
timestamp: { type: "uint64" },
|
|
34
|
+
previous_state_merkle_root: { type: "bytes" },
|
|
35
|
+
transaction_merkle_root: { type: "bytes" },
|
|
36
|
+
signer: { type: "bytes", btype: "ADDRESS" },
|
|
37
|
+
};
|
|
38
|
+
const btypeTransactionHeader = {
|
|
39
|
+
chain_id: { type: "bytes" },
|
|
40
|
+
rc_limit: { type: "uint64" },
|
|
41
|
+
nonce: { type: "bytes" },
|
|
42
|
+
operation_merkle_root: { type: "bytes" },
|
|
43
|
+
payer: { type: "bytes", btype: "ADDRESS" },
|
|
44
|
+
payee: { type: "bytes", btype: "ADDRESS" },
|
|
45
|
+
};
|
|
46
|
+
const btypesOperation = {
|
|
47
|
+
upload_contract: {
|
|
48
|
+
type: "object",
|
|
49
|
+
subtypes: {
|
|
50
|
+
contract_id: { type: "bytes", btype: "CONTRACT_ID" },
|
|
51
|
+
bytecode: { type: "bytes" },
|
|
52
|
+
abi: { type: "string" },
|
|
53
|
+
authorizes_call_contract: { type: "bool" },
|
|
54
|
+
authorizes_transaction_application: { type: "bool" },
|
|
55
|
+
authorizes_upload_contract: { type: "bool" },
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
call_contract: {
|
|
59
|
+
type: "object",
|
|
60
|
+
subtypes: {
|
|
61
|
+
contract_id: { type: "bytes", btype: "CONTRACT_ID" },
|
|
62
|
+
entry_point: { type: "uint32" },
|
|
63
|
+
args: { type: "bytes" },
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
set_system_call: {
|
|
67
|
+
type: "object",
|
|
68
|
+
subtypes: {
|
|
69
|
+
call_id: { type: "uint32" },
|
|
70
|
+
target: {
|
|
71
|
+
type: "object",
|
|
72
|
+
subtypes: {
|
|
73
|
+
thunk_id: { type: "uint32" },
|
|
74
|
+
system_call_bundle: {
|
|
75
|
+
type: "object",
|
|
76
|
+
subtypes: {
|
|
77
|
+
contract_id: { type: "bytes", btype: "CONTRACT_ID" },
|
|
78
|
+
entry_point: { type: "uint32" },
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
32
86
|
/**
|
|
33
87
|
* The Signer Class contains the private key needed to sign transactions.
|
|
34
88
|
* It can be created using the seed, wif, or private key
|
|
@@ -101,17 +155,13 @@ class Signer {
|
|
|
101
155
|
* ```
|
|
102
156
|
*/
|
|
103
157
|
constructor(c) {
|
|
158
|
+
/**
|
|
159
|
+
* Chain id
|
|
160
|
+
*/
|
|
161
|
+
this.chainId = "";
|
|
104
162
|
this.compressed = typeof c.compressed === "undefined" ? true : c.compressed;
|
|
105
163
|
this.privateKey = c.privateKey;
|
|
106
164
|
this.provider = c.provider;
|
|
107
|
-
if (c.serializer) {
|
|
108
|
-
this.serializer = c.serializer;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
this.serializer = new Serializer_1.Serializer(protocol_proto_json_1.default, {
|
|
112
|
-
bytesConversion: false,
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
165
|
if (typeof c.privateKey === "string") {
|
|
116
166
|
this.publicKey = secp.getPublicKey(c.privateKey, this.compressed);
|
|
117
167
|
this.address = (0, utils_1.bitcoinAddress)(this.publicKey);
|
|
@@ -120,6 +170,8 @@ class Signer {
|
|
|
120
170
|
this.publicKey = secp.getPublicKey(c.privateKey, this.compressed);
|
|
121
171
|
this.address = (0, utils_1.bitcoinAddress)(this.publicKey);
|
|
122
172
|
}
|
|
173
|
+
if (c.chainId)
|
|
174
|
+
this.chainId = c.chainId;
|
|
123
175
|
}
|
|
124
176
|
/**
|
|
125
177
|
* Function to import a private key from the WIF
|
|
@@ -132,12 +184,12 @@ class Signer {
|
|
|
132
184
|
* ```
|
|
133
185
|
* @returns Signer object
|
|
134
186
|
*/
|
|
135
|
-
static fromWif(wif) {
|
|
136
|
-
const
|
|
187
|
+
static fromWif(wif, compressed = true) {
|
|
188
|
+
const comp = compressed === undefined ? wif[0] !== "5" : compressed;
|
|
137
189
|
const privateKey = (0, utils_1.bitcoinDecode)(wif);
|
|
138
190
|
return new Signer({
|
|
139
191
|
privateKey: (0, utils_1.toHexString)(privateKey),
|
|
140
|
-
compressed,
|
|
192
|
+
compressed: comp,
|
|
141
193
|
});
|
|
142
194
|
}
|
|
143
195
|
/**
|
|
@@ -152,7 +204,7 @@ class Signer {
|
|
|
152
204
|
* ```
|
|
153
205
|
* @returns Signer object
|
|
154
206
|
*/
|
|
155
|
-
static fromSeed(seed, compressed) {
|
|
207
|
+
static fromSeed(seed, compressed = true) {
|
|
156
208
|
const privateKey = (0, sha256_1.sha256)(seed);
|
|
157
209
|
return new Signer({ privateKey, compressed });
|
|
158
210
|
}
|
|
@@ -210,10 +262,9 @@ class Signer {
|
|
|
210
262
|
}
|
|
211
263
|
}
|
|
212
264
|
/**
|
|
213
|
-
* Function to sign a hash value. It returns the signature
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* @param hash Hash value. Also known as digest
|
|
265
|
+
* Function to sign a hash value. It returns the bytes signature.
|
|
266
|
+
* The signature is in compact format with the recovery byte
|
|
267
|
+
* @param hash - Hash value. Also known as digest
|
|
217
268
|
*/
|
|
218
269
|
async signHash(hash) {
|
|
219
270
|
const [compSignature, recovery] = await secp.sign(hash, this.privateKey, {
|
|
@@ -224,20 +275,29 @@ class Signer {
|
|
|
224
275
|
const compactSignature = new Uint8Array(65);
|
|
225
276
|
compactSignature.set([recovery + 31], 0);
|
|
226
277
|
compactSignature.set(compSignature, 1);
|
|
227
|
-
return
|
|
278
|
+
return compactSignature;
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Function to sign a message, which could be a string or a Uint8Array
|
|
282
|
+
*/
|
|
283
|
+
async signMessage(message) {
|
|
284
|
+
return this.signHash((0, sha256_1.sha256)(message));
|
|
228
285
|
}
|
|
229
286
|
/**
|
|
230
287
|
* Function to sign a transaction. It's important to remark that
|
|
231
288
|
* the transaction parameter is modified inside this function.
|
|
232
289
|
* @param tx - Unsigned transaction
|
|
233
290
|
*/
|
|
234
|
-
async signTransaction(tx) {
|
|
235
|
-
if (!tx.
|
|
236
|
-
throw new Error("
|
|
237
|
-
const hash = (0, sha256_1.sha256)((0, utils_1.decodeBase64)(tx.active));
|
|
238
|
-
tx.signature_data = await this.signHash(hash);
|
|
291
|
+
async signTransaction(tx, _abis) {
|
|
292
|
+
if (!tx.id)
|
|
293
|
+
throw new Error("Missing transaction id");
|
|
239
294
|
// multihash 0x1220. 12: code sha2-256. 20: length (32 bytes)
|
|
240
|
-
tx
|
|
295
|
+
// tx id is a stringified multihash, need to extract the hash digest only
|
|
296
|
+
const hash = (0, utils_1.toUint8Array)(tx.id.slice(6));
|
|
297
|
+
const signature = await this.signHash(hash);
|
|
298
|
+
if (!tx.signatures)
|
|
299
|
+
tx.signatures = [];
|
|
300
|
+
tx.signatures.push((0, utils_1.encodeBase64url)(signature));
|
|
241
301
|
return tx;
|
|
242
302
|
}
|
|
243
303
|
/**
|
|
@@ -248,15 +308,13 @@ class Signer {
|
|
|
248
308
|
* @param block - Unsigned block
|
|
249
309
|
*/
|
|
250
310
|
async signBlock(block) {
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
const headerActiveBytes = new Uint8Array(headerBytes.length + activeBytes.length);
|
|
254
|
-
headerActiveBytes.set(headerBytes, 0);
|
|
255
|
-
headerActiveBytes.set(activeBytes, headerBytes.length);
|
|
256
|
-
const hash = (0, sha256_1.sha256)(headerActiveBytes);
|
|
257
|
-
block.signature_data = await this.signHash(hash);
|
|
311
|
+
if (!block.id)
|
|
312
|
+
throw new Error("Missing block id");
|
|
258
313
|
// multihash 0x1220. 12: code sha2-256. 20: length (32 bytes)
|
|
259
|
-
block
|
|
314
|
+
// block id is a stringified multihash, need to extract the hash digest only
|
|
315
|
+
const hash = (0, utils_1.toUint8Array)(block.id.slice(6));
|
|
316
|
+
const signature = await this.signHash(hash);
|
|
317
|
+
block.signature = (0, utils_1.encodeBase64url)(signature);
|
|
260
318
|
return block;
|
|
261
319
|
}
|
|
262
320
|
/**
|
|
@@ -269,28 +327,54 @@ class Signer {
|
|
|
269
327
|
* @returns
|
|
270
328
|
*/
|
|
271
329
|
async sendTransaction(tx, _abis) {
|
|
272
|
-
|
|
273
|
-
|
|
330
|
+
var _a;
|
|
331
|
+
if (!tx.signatures || !((_a = tx.signatures) === null || _a === void 0 ? void 0 : _a.length))
|
|
332
|
+
tx = await this.signTransaction(tx);
|
|
274
333
|
if (!this.provider)
|
|
275
334
|
throw new Error("provider is undefined");
|
|
276
|
-
await this.provider.sendTransaction(tx);
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
throw new Error("provider is undefined");
|
|
282
|
-
return this.provider.wait(tx.id, type, timeout);
|
|
283
|
-
},
|
|
335
|
+
const { receipt } = await this.provider.sendTransaction(tx);
|
|
336
|
+
tx.wait = async (type = "byBlock", timeout = 60000) => {
|
|
337
|
+
if (!this.provider)
|
|
338
|
+
throw new Error("provider is undefined");
|
|
339
|
+
return this.provider.wait(tx.id, type, timeout);
|
|
284
340
|
};
|
|
341
|
+
return { receipt, transaction: tx };
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Function to recover the public key from hash and signature
|
|
345
|
+
* @param hash - hash sha256
|
|
346
|
+
* @param signature - compact signature
|
|
347
|
+
* @param compressed - default true
|
|
348
|
+
*/
|
|
349
|
+
static recoverPublicKey(hash, signature, compressed = true) {
|
|
350
|
+
const compactSignatureHex = (0, utils_1.toHexString)(signature);
|
|
351
|
+
const recovery = Number(`0x${compactSignatureHex.slice(0, 2)}`) - 31;
|
|
352
|
+
const rHex = compactSignatureHex.slice(2, 66);
|
|
353
|
+
const sHex = compactSignatureHex.slice(66);
|
|
354
|
+
const r = BigInt(`0x${rHex}`);
|
|
355
|
+
const s = BigInt(`0x${sHex}`);
|
|
356
|
+
const sig = new secp.Signature(r, s);
|
|
357
|
+
const publicKey = secp.recoverPublicKey((0, utils_1.toHexString)(hash), sig.toHex(), recovery);
|
|
358
|
+
if (!publicKey)
|
|
359
|
+
throw new Error("Public key cannot be recovered");
|
|
360
|
+
if (!compressed) {
|
|
361
|
+
return (0, utils_1.toHexString)(publicKey);
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
return secp.Point.fromHex(publicKey).toHex(true);
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
static recoverAddress(hash, signature, compressed = true) {
|
|
368
|
+
return (0, utils_1.bitcoinAddress)((0, utils_1.toUint8Array)(Signer.recoverPublicKey(hash, signature, compressed)));
|
|
285
369
|
}
|
|
286
370
|
/**
|
|
287
|
-
* Function to recover the
|
|
371
|
+
* Function to recover the publics keys from a signed
|
|
288
372
|
* transaction or block.
|
|
289
373
|
* The output format can be compressed (default) or uncompressed.
|
|
290
374
|
*
|
|
291
375
|
* @example
|
|
292
376
|
* ```ts
|
|
293
|
-
* const
|
|
377
|
+
* const publicKeys = await Signer.recoverPublicKeys(tx);
|
|
294
378
|
* ```
|
|
295
379
|
*
|
|
296
380
|
* If the signature data contains more data, like in the
|
|
@@ -324,7 +408,7 @@ class Signer {
|
|
|
324
408
|
* defaultTypeName: "pow_signature_data",
|
|
325
409
|
* });
|
|
326
410
|
*
|
|
327
|
-
* const
|
|
411
|
+
* const publicKeys = await signer.recoverPublicKeys(block, {
|
|
328
412
|
* transformSignature: async (signatureData) => {
|
|
329
413
|
* const powSignatureData = await serializer.deserialize(signatureData);
|
|
330
414
|
* return powSignatureData.recoverable_signature;
|
|
@@ -332,54 +416,50 @@ class Signer {
|
|
|
332
416
|
* });
|
|
333
417
|
* ```
|
|
334
418
|
*/
|
|
335
|
-
async
|
|
336
|
-
if (!txOrBlock.active)
|
|
337
|
-
throw new Error("active is not defined");
|
|
338
|
-
if (!txOrBlock.signature_data)
|
|
339
|
-
throw new Error("signature_data is not defined");
|
|
340
|
-
let signatureData = txOrBlock.signature_data;
|
|
341
|
-
if (opts && typeof opts.transformSignature === "function") {
|
|
342
|
-
signatureData = await opts.transformSignature(txOrBlock.signature_data);
|
|
343
|
-
}
|
|
419
|
+
async recoverPublicKeys(txOrBlock, opts) {
|
|
344
420
|
let compressed = true;
|
|
345
|
-
if (opts &&
|
|
421
|
+
if (opts && opts.compressed !== undefined) {
|
|
346
422
|
compressed = opts.compressed;
|
|
347
423
|
}
|
|
424
|
+
let signatures = [];
|
|
425
|
+
let headerBytes;
|
|
348
426
|
const block = txOrBlock;
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
427
|
+
if (block.signature) {
|
|
428
|
+
if (!block.header)
|
|
429
|
+
throw new Error("Missing block header");
|
|
430
|
+
if (!block.signature)
|
|
431
|
+
throw new Error("Missing block signature");
|
|
432
|
+
signatures = [block.signature];
|
|
433
|
+
const headerDecoded = (0, utils_1.btypeDecode)(block.header, btypeBlockHeader);
|
|
434
|
+
const message = protocol_proto_js_1.koinos.protocol.block_header.create(headerDecoded);
|
|
435
|
+
headerBytes = protocol_proto_js_1.koinos.protocol.block_header.encode(message).finish();
|
|
357
436
|
}
|
|
358
437
|
else {
|
|
359
|
-
|
|
360
|
-
|
|
438
|
+
const transaction = txOrBlock;
|
|
439
|
+
if (!transaction.header)
|
|
440
|
+
throw new Error("Missing transaction header");
|
|
441
|
+
if (!transaction.signatures)
|
|
442
|
+
throw new Error("Missing transaction signatures");
|
|
443
|
+
signatures = transaction.signatures;
|
|
444
|
+
const headerDecoded = (0, utils_1.btypeDecode)(transaction.header, btypeTransactionHeader);
|
|
445
|
+
const message = protocol_proto_js_1.koinos.protocol.transaction_header.create(headerDecoded);
|
|
446
|
+
headerBytes = protocol_proto_js_1.koinos.protocol.transaction_header.encode(message).finish();
|
|
361
447
|
}
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
const publicKey = secp.recoverPublicKey((0, utils_1.toHexString)(hash), sig.toHex(), recovery);
|
|
370
|
-
if (!publicKey)
|
|
371
|
-
throw new Error("Public key cannot be recovered");
|
|
372
|
-
if (!compressed)
|
|
373
|
-
return (0, utils_1.toHexString)(publicKey);
|
|
374
|
-
return secp.Point.fromHex(publicKey).toHex(true);
|
|
448
|
+
const hash = (0, sha256_1.sha256)(headerBytes);
|
|
449
|
+
return Promise.all(signatures.map(async (signature) => {
|
|
450
|
+
if (opts && typeof opts.transformSignature === "function") {
|
|
451
|
+
signature = await opts.transformSignature(signature);
|
|
452
|
+
}
|
|
453
|
+
return Signer.recoverPublicKey(hash, (0, utils_1.decodeBase64url)(signature), compressed);
|
|
454
|
+
}));
|
|
375
455
|
}
|
|
376
456
|
/**
|
|
377
|
-
* Function to recover the signer
|
|
457
|
+
* Function to recover the signer addresses from a signed
|
|
378
458
|
* transaction or block.
|
|
379
459
|
* The output format can be compressed (default) or uncompressed.
|
|
380
460
|
* @example
|
|
381
461
|
* ```ts
|
|
382
|
-
* const
|
|
462
|
+
* const addresses = await signer.recoverAddress(tx);
|
|
383
463
|
* ```
|
|
384
464
|
*
|
|
385
465
|
* If the signature data contains more data, like in the
|
|
@@ -413,7 +493,7 @@ class Signer {
|
|
|
413
493
|
* defaultTypeName: "pow_signature_data",
|
|
414
494
|
* });
|
|
415
495
|
*
|
|
416
|
-
* const
|
|
496
|
+
* const addresses = await signer.recoverAddress(block, {
|
|
417
497
|
* transformSignature: async (signatureData) => {
|
|
418
498
|
* const powSignatureData = await serializer.deserialize(signatureData);
|
|
419
499
|
* return powSignatureData.recoverable_signature;
|
|
@@ -421,46 +501,157 @@ class Signer {
|
|
|
421
501
|
* });
|
|
422
502
|
* ```
|
|
423
503
|
*/
|
|
424
|
-
async
|
|
425
|
-
const
|
|
426
|
-
return (0, utils_1.bitcoinAddress)((0, utils_1.toUint8Array)(publicKey));
|
|
504
|
+
async recoverAddresses(txOrBlock, opts) {
|
|
505
|
+
const publicKeys = await this.recoverPublicKeys(txOrBlock, opts);
|
|
506
|
+
return publicKeys.map((publicKey) => (0, utils_1.bitcoinAddress)((0, utils_1.toUint8Array)(publicKey)));
|
|
427
507
|
}
|
|
428
508
|
/**
|
|
429
|
-
* Function to
|
|
430
|
-
* @param
|
|
431
|
-
* operations. Do not set the nonce to get it from the blockchain
|
|
509
|
+
* Function to prepare a transaction
|
|
510
|
+
* @param tx - Do not set the nonce to get it from the blockchain
|
|
432
511
|
* using the provider. The rc_limit is 1e8 by default.
|
|
433
|
-
* @returns A transaction
|
|
434
|
-
* base64url
|
|
512
|
+
* @returns A prepared transaction. ()
|
|
435
513
|
*/
|
|
436
|
-
async
|
|
437
|
-
|
|
438
|
-
if (
|
|
514
|
+
async prepareTransaction(tx) {
|
|
515
|
+
var _a, _b;
|
|
516
|
+
if (!tx.header) {
|
|
517
|
+
tx.header = {};
|
|
518
|
+
}
|
|
519
|
+
const payer = (_a = tx.header.payer) !== null && _a !== void 0 ? _a : this.address;
|
|
520
|
+
const { payee } = tx.header;
|
|
521
|
+
let nonce;
|
|
522
|
+
if (tx.header.nonce === undefined) {
|
|
523
|
+
if (!this.provider)
|
|
524
|
+
throw new Error("Cannot get the nonce because provider is undefined. To skip this call set a nonce in the transaction header");
|
|
525
|
+
const oldNonce = (await this.provider.getNonce(payee || payer));
|
|
526
|
+
const message = protocol_proto_js_1.koinos.chain.value_type.create({
|
|
527
|
+
// todo: consider using bigint for big nonces
|
|
528
|
+
uint64_value: String(oldNonce + 1),
|
|
529
|
+
});
|
|
530
|
+
const nonceEncoded = protocol_proto_js_1.koinos.chain.value_type
|
|
531
|
+
.encode(message)
|
|
532
|
+
.finish();
|
|
533
|
+
nonce = (0, utils_1.encodeBase64url)(nonceEncoded);
|
|
534
|
+
}
|
|
535
|
+
else {
|
|
536
|
+
nonce = tx.header.nonce;
|
|
537
|
+
}
|
|
538
|
+
let rcLimit;
|
|
539
|
+
if (tx.header.rc_limit === undefined) {
|
|
439
540
|
if (!this.provider)
|
|
440
|
-
throw new Error("Cannot get the
|
|
441
|
-
|
|
442
|
-
// this depends on the final architecture for names on Koinos
|
|
443
|
-
nonce = await this.provider.getNonce(this.getAddress());
|
|
541
|
+
throw new Error("Cannot get the rc_limit because provider is undefined. To skip this call set a rc_limit in the transaction header");
|
|
542
|
+
rcLimit = await this.provider.getAccountRc(payer);
|
|
444
543
|
}
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
544
|
+
else {
|
|
545
|
+
rcLimit = tx.header.rc_limit;
|
|
546
|
+
}
|
|
547
|
+
let chainId = tx.header.chain_id || this.chainId;
|
|
548
|
+
if (!chainId) {
|
|
549
|
+
if (!this.provider)
|
|
550
|
+
throw new Error("Cannot get the chain_id because provider is undefined. To skip this call set a chain_id in the Signer");
|
|
551
|
+
chainId = await this.provider.getChainId();
|
|
552
|
+
this.chainId = chainId;
|
|
553
|
+
}
|
|
554
|
+
const operationsHashes = [];
|
|
555
|
+
if (tx.operations) {
|
|
556
|
+
for (let index = 0; index < ((_b = tx.operations) === null || _b === void 0 ? void 0 : _b.length); index += 1) {
|
|
557
|
+
const operationDecoded = (0, utils_1.btypeDecode)(tx.operations[index], btypesOperation);
|
|
558
|
+
const message = protocol_proto_js_1.koinos.protocol.operation.create(operationDecoded);
|
|
559
|
+
const operationEncoded = protocol_proto_js_1.koinos.protocol.operation
|
|
560
|
+
.encode(message)
|
|
561
|
+
.finish();
|
|
562
|
+
operationsHashes.push((0, sha256_1.sha256)(operationEncoded));
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
const operationMerkleRoot = (0, utils_1.encodeBase64url)(new Uint8Array([
|
|
566
|
+
// multihash sha256: 18, 32
|
|
567
|
+
18,
|
|
568
|
+
32,
|
|
569
|
+
...(0, utils_1.calculateMerkleRoot)(operationsHashes),
|
|
570
|
+
]));
|
|
571
|
+
tx.header = {
|
|
572
|
+
chain_id: chainId,
|
|
448
573
|
rc_limit: rcLimit,
|
|
449
574
|
nonce,
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
active: (0, utils_1.encodeBase64)(buffer),
|
|
575
|
+
operation_merkle_root: operationMerkleRoot,
|
|
576
|
+
payer,
|
|
577
|
+
...(payee && { payee }),
|
|
578
|
+
// TODO: Option to resolve names (payer, payee)
|
|
455
579
|
};
|
|
580
|
+
const headerDecoded = (0, utils_1.btypeDecode)(tx.header, btypeTransactionHeader);
|
|
581
|
+
const message = protocol_proto_js_1.koinos.protocol.transaction_header.create(headerDecoded);
|
|
582
|
+
const headerBytes = protocol_proto_js_1.koinos.protocol.transaction_header
|
|
583
|
+
.encode(message)
|
|
584
|
+
.finish();
|
|
585
|
+
const hash = (0, sha256_1.sha256)(headerBytes);
|
|
586
|
+
// multihash 0x1220. 12: code sha2-256. 20: length (32 bytes)
|
|
587
|
+
tx.id = `0x1220${(0, utils_1.toHexString)(hash)}`;
|
|
588
|
+
return tx;
|
|
456
589
|
}
|
|
457
590
|
/**
|
|
458
|
-
* Function to
|
|
591
|
+
* Function to prepare a block
|
|
592
|
+
* @param block -
|
|
593
|
+
* @returns A prepared block. ()
|
|
459
594
|
*/
|
|
460
|
-
async
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
595
|
+
async prepareBlock(block) {
|
|
596
|
+
var _a;
|
|
597
|
+
if (!block.header) {
|
|
598
|
+
block.header = {};
|
|
599
|
+
}
|
|
600
|
+
const hashes = [];
|
|
601
|
+
if (block.transactions) {
|
|
602
|
+
for (let index = 0; index < block.transactions.length; index++) {
|
|
603
|
+
const tx = block.transactions[index];
|
|
604
|
+
const headerDecoded = (0, utils_1.btypeDecode)(tx.header, btypeTransactionHeader);
|
|
605
|
+
const message = protocol_proto_js_1.koinos.protocol.transaction_header.create(headerDecoded);
|
|
606
|
+
const headerBytes = protocol_proto_js_1.koinos.protocol.transaction_header
|
|
607
|
+
.encode(message)
|
|
608
|
+
.finish();
|
|
609
|
+
hashes.push((0, sha256_1.sha256)(headerBytes));
|
|
610
|
+
let signaturesBytes = new Uint8Array();
|
|
611
|
+
(_a = tx.signatures) === null || _a === void 0 ? void 0 : _a.forEach((sig) => {
|
|
612
|
+
signaturesBytes = new Uint8Array([
|
|
613
|
+
...signaturesBytes,
|
|
614
|
+
...(0, utils_1.decodeBase64url)(sig),
|
|
615
|
+
]);
|
|
616
|
+
});
|
|
617
|
+
hashes.push((0, sha256_1.sha256)(signaturesBytes));
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
// retrieve head info if not provided
|
|
621
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
622
|
+
let { height, previous, previous_state_merkle_root } = block.header;
|
|
623
|
+
if (!height || !previous || !previous_state_merkle_root) {
|
|
624
|
+
if (!this.provider) {
|
|
625
|
+
throw new Error("Cannot get the head info because provider is undefined.");
|
|
626
|
+
}
|
|
627
|
+
const headInfo = await this.provider.getHeadInfo();
|
|
628
|
+
height = height || `${Number(headInfo.head_topology.height) + 1}`;
|
|
629
|
+
previous = previous || headInfo.head_topology.id;
|
|
630
|
+
previous_state_merkle_root =
|
|
631
|
+
previous_state_merkle_root || headInfo.head_state_merkle_root;
|
|
632
|
+
}
|
|
633
|
+
block.header = {
|
|
634
|
+
height,
|
|
635
|
+
previous,
|
|
636
|
+
previous_state_merkle_root,
|
|
637
|
+
timestamp: block.header.timestamp || `${Date.now()}`,
|
|
638
|
+
transaction_merkle_root: (0, utils_1.encodeBase64url)(new Uint8Array([
|
|
639
|
+
// multihash sha256: 18, 32
|
|
640
|
+
18,
|
|
641
|
+
32,
|
|
642
|
+
...(0, utils_1.calculateMerkleRoot)(hashes),
|
|
643
|
+
])),
|
|
644
|
+
signer: this.address,
|
|
645
|
+
};
|
|
646
|
+
const headerDecoded = (0, utils_1.btypeDecode)(block.header, btypeBlockHeader);
|
|
647
|
+
const message = protocol_proto_js_1.koinos.protocol.block_header.create(headerDecoded);
|
|
648
|
+
const headerBytes = protocol_proto_js_1.koinos.protocol.block_header
|
|
649
|
+
.encode(message)
|
|
650
|
+
.finish();
|
|
651
|
+
const hash = (0, sha256_1.sha256)(headerBytes);
|
|
652
|
+
// multihash 0x1220. 12: code sha2-256. 20: length (32 bytes)
|
|
653
|
+
block.id = `0x1220${(0, utils_1.toHexString)(hash)}`;
|
|
654
|
+
return block;
|
|
464
655
|
}
|
|
465
656
|
}
|
|
466
657
|
exports.Signer = Signer;
|
package/lib/Signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Signer.js","sourceRoot":"","sources":["../src/Signer.ts"],"names":[],"mappings":"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"}
|