algosdk 3.6.0 → 3.7.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.
- package/README.md +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/appAccess.js +4 -0
- package/dist/cjs/appAccess.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +0 -18
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +153 -437
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +163 -12
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/composer.js +4 -6
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/ed25519-signer.js +76 -0
- package/dist/cjs/ed25519-signer.js.map +1 -0
- package/dist/cjs/encoding/address.js +61 -1
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/falcon-signer.js +17 -0
- package/dist/cjs/falcon-signer.js.map +1 -0
- package/dist/cjs/heartbeat.js +7 -0
- package/dist/cjs/heartbeat.js.map +1 -1
- package/dist/cjs/logicsig.js +201 -16
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +32 -63
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/makeTxn.js +11 -2
- package/dist/cjs/makeTxn.js.map +1 -1
- package/dist/cjs/mnemonic/mnemonic.js +26 -1
- package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
- package/dist/cjs/multisigSigning.js +78 -1
- package/dist/cjs/multisigSigning.js.map +1 -1
- package/dist/cjs/pq-signer.js +80 -0
- package/dist/cjs/pq-signer.js.map +1 -0
- package/dist/cjs/signedTransaction.js +15 -1
- package/dist/cjs/signedTransaction.js.map +1 -1
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/signing.js +94 -7
- package/dist/cjs/signing.js.map +1 -1
- package/dist/cjs/transaction.js +17 -1
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/statedelta.js +17 -0
- package/dist/cjs/types/statedelta.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +51 -1
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/utils/ed25519-check.js +69 -0
- package/dist/cjs/utils/ed25519-check.js.map +1 -0
- package/dist/cjs/utils/utils.js +14 -1
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/esm/appAccess.js +4 -0
- package/dist/esm/appAccess.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +0 -18
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +149 -430
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +161 -11
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/composer.js +4 -6
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/ed25519-signer.js +72 -0
- package/dist/esm/ed25519-signer.js.map +1 -0
- package/dist/esm/encoding/address.js +58 -0
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/falcon-signer.js +13 -0
- package/dist/esm/falcon-signer.js.map +1 -0
- package/dist/esm/heartbeat.js +8 -1
- package/dist/esm/heartbeat.js.map +1 -1
- package/dist/esm/logicsig.js +200 -15
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +8 -56
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/makeTxn.js +11 -2
- package/dist/esm/makeTxn.js.map +1 -1
- package/dist/esm/mnemonic/mnemonic.js +25 -1
- package/dist/esm/mnemonic/mnemonic.js.map +1 -1
- package/dist/esm/multisigSigning.js +75 -0
- package/dist/esm/multisigSigning.js.map +1 -1
- package/dist/esm/pq-signer.js +76 -0
- package/dist/esm/pq-signer.js.map +1 -0
- package/dist/esm/signedTransaction.js +16 -2
- package/dist/esm/signedTransaction.js.map +1 -1
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/signing.js +91 -8
- package/dist/esm/signing.js.map +1 -1
- package/dist/esm/transaction.js +17 -1
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/statedelta.js +17 -0
- package/dist/esm/types/statedelta.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +49 -1
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/utils/ed25519-check.js +65 -0
- package/dist/esm/utils/ed25519-check.js.map +1 -0
- package/dist/esm/utils/utils.js +12 -0
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/types/client/v2/algod/algod.d.ts +0 -16
- package/dist/types/client/v2/algod/models/types.d.ts +90 -220
- package/dist/types/client/v2/indexer/models/types.d.ts +114 -7
- package/dist/types/composer.d.ts +3 -3
- package/dist/types/ed25519-signer.d.ts +7 -0
- package/dist/types/encoding/address.d.ts +37 -0
- package/dist/types/falcon-signer.d.ts +11 -0
- package/dist/types/heartbeat.d.ts +2 -0
- package/dist/types/logicsig.d.ts +72 -1
- package/dist/types/main.d.ts +8 -44
- package/dist/types/makeTxn.d.ts +8 -2
- package/dist/types/mnemonic/mnemonic.d.ts +13 -0
- package/dist/types/multisigSigning.d.ts +49 -0
- package/dist/types/pq-signer.d.ts +8 -0
- package/dist/types/signedTransaction.d.ts +7 -2
- package/dist/types/signer.d.ts +46 -0
- package/dist/types/signing.d.ts +45 -0
- package/dist/types/transaction.d.ts +10 -0
- package/dist/types/types/statedelta.d.ts +18 -0
- package/dist/types/types/transactions/base.d.ts +10 -0
- package/dist/types/types/transactions/encoded.d.ts +27 -0
- package/dist/types/utils/ed25519-check.d.ts +10 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/package.json +2 -1
- package/src/appAccess.ts +5 -0
- package/src/client/v2/algod/algod.ts +0 -19
- package/src/client/v2/algod/models/types.ts +324 -790
- package/src/client/v2/indexer/models/types.ts +280 -8
- package/src/composer.ts +7 -11
- package/src/ed25519-signer.ts +125 -0
- package/src/encoding/address.ts +80 -0
- package/src/falcon-signer.ts +33 -0
- package/src/heartbeat.ts +11 -0
- package/src/logicsig.ts +258 -16
- package/src/main.ts +30 -60
- package/src/makeTxn.ts +13 -4
- package/src/mnemonic/mnemonic.ts +34 -1
- package/src/multisigSigning.ts +111 -0
- package/src/pq-signer.ts +123 -0
- package/src/signedTransaction.ts +24 -0
- package/src/signer.ts +62 -0
- package/src/signing.ts +109 -8
- package/src/transaction.ts +19 -1
- package/src/types/statedelta.ts +34 -0
- package/src/types/transactions/base.ts +11 -0
- package/src/types/transactions/encoded.ts +88 -0
- package/src/utils/ed25519-check.ts +67 -0
- package/src/utils/utils.ts +13 -0
- package/dist/cjs/client/v2/algod/dryrun.js +0 -34
- package/dist/cjs/client/v2/algod/dryrun.js.map +0 -1
- package/dist/cjs/dryrun.js +0 -214
- package/dist/cjs/dryrun.js.map +0 -1
- package/dist/esm/client/v2/algod/dryrun.js +0 -28
- package/dist/esm/client/v2/algod/dryrun.js.map +0 -1
- package/dist/esm/dryrun.js +0 -208
- package/dist/esm/dryrun.js.map +0 -1
- package/dist/types/client/v2/algod/dryrun.d.ts +0 -11
- package/dist/types/dryrun.d.ts +0 -28
- package/src/client/v2/algod/dryrun.ts +0 -38
- package/src/dryrun.ts +0 -292
package/dist/cjs/makeTxn.js
CHANGED
|
@@ -303,11 +303,17 @@ function makeApplicationCreateTxnFromObject({ sender, onComplete, appArgs, accou
|
|
|
303
303
|
}
|
|
304
304
|
exports.makeApplicationCreateTxnFromObject = makeApplicationCreateTxnFromObject;
|
|
305
305
|
/**
|
|
306
|
-
* Make a transaction that changes an application's approval and clear programs
|
|
306
|
+
* Make a transaction that changes an application's approval and clear programs.
|
|
307
|
+
*
|
|
308
|
+
* The application's global state schema and extra program pages may also be changed during an
|
|
309
|
+
* update by providing numGlobalInts, numGlobalByteSlices, and/or extraPages. The local state schema
|
|
310
|
+
* cannot be changed after application creation. If the pages or global schema increases in size, the entire
|
|
311
|
+
* MBR for the application will move to the sender of the update and that account will become the `sizeSponsor`
|
|
312
|
+
* in the application's parameters. A decrease in schema or pages does not affect MBR or `sizeSponsor`.
|
|
307
313
|
*
|
|
308
314
|
* @param options - Application update transaction parameters
|
|
309
315
|
*/
|
|
310
|
-
function makeApplicationUpdateTxnFromObject({ sender, appIndex, appArgs, accounts, foreignApps, foreignAssets, boxes, convertToAccess, holdings, locals, access, approvalProgram, clearProgram, note, lease, rekeyTo, suggestedParams, }) {
|
|
316
|
+
function makeApplicationUpdateTxnFromObject({ sender, appIndex, appArgs, accounts, foreignApps, foreignAssets, boxes, convertToAccess, holdings, locals, access, approvalProgram, clearProgram, numGlobalInts, numGlobalByteSlices, extraPages, note, lease, rekeyTo, suggestedParams, }) {
|
|
311
317
|
if (!appIndex) {
|
|
312
318
|
throw Error('appIndex must be provided');
|
|
313
319
|
}
|
|
@@ -329,6 +335,9 @@ function makeApplicationUpdateTxnFromObject({ sender, appIndex, appArgs, account
|
|
|
329
335
|
access,
|
|
330
336
|
approvalProgram,
|
|
331
337
|
clearProgram,
|
|
338
|
+
numGlobalInts,
|
|
339
|
+
numGlobalByteSlices,
|
|
340
|
+
extraPages,
|
|
332
341
|
note,
|
|
333
342
|
lease,
|
|
334
343
|
rekeyTo,
|
package/dist/cjs/makeTxn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeTxn.js","sourceRoot":"","sources":["../../src/makeTxn.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"makeTxn.js","sourceRoot":"","sources":["../../src/makeTxn.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,11 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.masterDerivationKeyToMnemonic = exports.mnemonicToMasterDerivationKey = exports.secretKeyToMnemonic = exports.mnemonicToSecretKey = exports.seedFromMnemonic = exports.mnemonicFromSeed = exports.NOT_IN_WORDS_LIST_ERROR_MSG = exports.FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = void 0;
|
|
29
|
+
exports.pq25WordMnemonicToSeed = exports.masterDerivationKeyToMnemonic = exports.mnemonicToMasterDerivationKey = exports.secretKeyToMnemonic = exports.mnemonicToSecretKey = exports.seedFromMnemonic = exports.mnemonicFromSeed = exports.NOT_IN_WORDS_LIST_ERROR_MSG = exports.FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = void 0;
|
|
30
30
|
/* eslint-disable no-bitwise */
|
|
31
31
|
const english_js_1 = __importDefault(require("./wordlists/english.js"));
|
|
32
32
|
const nacl = __importStar(require("../nacl/naclWrappers.js"));
|
|
33
33
|
const address_js_1 = require("../encoding/address.js");
|
|
34
|
+
const utils_js_1 = require("../utils/utils.js");
|
|
34
35
|
exports.FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = 'failed to decode mnemonic';
|
|
35
36
|
exports.NOT_IN_WORDS_LIST_ERROR_MSG = 'the mnemonic contains a word that is not in the wordlist';
|
|
36
37
|
// https://stackoverflow.com/a/51452614
|
|
@@ -188,4 +189,28 @@ function masterDerivationKeyToMnemonic(mdk) {
|
|
|
188
189
|
return mnemonicFromSeed(mdk);
|
|
189
190
|
}
|
|
190
191
|
exports.masterDerivationKeyToMnemonic = masterDerivationKeyToMnemonic;
|
|
192
|
+
/**
|
|
193
|
+
* The domain-separation prefix prepended to a post-quantum key seed preimage
|
|
194
|
+
* before hashing. Matches go-algorand's protocol.PostQuantumKey HashID.
|
|
195
|
+
*/
|
|
196
|
+
const PQ_KEY_PREFIX = new TextEncoder().encode('PQK');
|
|
197
|
+
/**
|
|
198
|
+
* pq25WordMnemonicToSeed derives a post-quantum key seed from a standard 25-word
|
|
199
|
+
* Algorand mnemonic.
|
|
200
|
+
*
|
|
201
|
+
* The seed is domain-separated by the PQ scheme, so the same mnemonic yields a
|
|
202
|
+
* different key for each scheme, and a different key again from the ed25519
|
|
203
|
+
* account that `mnemonicToSecretKey` derives from it.
|
|
204
|
+
*
|
|
205
|
+
* @param mn - A 25-word Algorand mnemonic
|
|
206
|
+
* @param scheme - The 2-byte ASCII PQ scheme identifier (e.g. "f1" for Falcon-1024)
|
|
207
|
+
* @returns The 32-byte seed to hand to the scheme's key generator
|
|
208
|
+
*/
|
|
209
|
+
function pq25WordMnemonicToSeed(mn, scheme) {
|
|
210
|
+
if (scheme.length !== address_js_1.PQ_SCHEME_SIZE) {
|
|
211
|
+
throw new Error(`invalid PQ scheme length: expected ${address_js_1.PQ_SCHEME_SIZE} bytes, got ${scheme.length}`);
|
|
212
|
+
}
|
|
213
|
+
return new Uint8Array(nacl.genericHash((0, utils_js_1.concatArrays)(PQ_KEY_PREFIX, scheme, seedFromMnemonic(mn))));
|
|
214
|
+
}
|
|
215
|
+
exports.pq25WordMnemonicToSeed = pq25WordMnemonicToSeed;
|
|
191
216
|
//# sourceMappingURL=mnemonic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../src/mnemonic/mnemonic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,wEAA6C;AAC7C,8DAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../src/mnemonic/mnemonic.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,13 +23,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.appendSignRawMultisigSignature = exports.appendSignMultisigTransaction = exports.signMultisigTransaction = exports.mergeMultisigTransactions = exports.createMultisigTransaction = exports.MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = exports.MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = exports.MULTISIG_NO_MUTATE_ERROR_MSG = exports.MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = exports.MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = exports.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = exports.MULTISIG_MERGE_MISMATCH_ERROR_MSG = exports.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = void 0;
|
|
26
|
+
exports.appendSignRawMultisigSignature = exports.appendSignMultisigTransactionWithSigner = exports.appendSignMultisigTransaction = exports.signMultisigTransactionWithSigner = exports.signMultisigTransaction = exports.mergeMultisigTransactions = exports.createMultisigTransaction = exports.MULTISIG_SIGNATURE_LENGTH_ERROR_MSG = exports.MULTISIG_USE_PARTIAL_SIGN_ERROR_MSG = exports.MULTISIG_NO_MUTATE_ERROR_MSG = exports.MULTISIG_MERGE_SIG_MISMATCH_ERROR_MSG = exports.MULTISIG_MERGE_WRONG_PREIMAGE_ERROR_MSG = exports.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = exports.MULTISIG_MERGE_MISMATCH_ERROR_MSG = exports.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = void 0;
|
|
27
27
|
const nacl = __importStar(require("./nacl/naclWrappers.js"));
|
|
28
28
|
const address_js_1 = require("./encoding/address.js");
|
|
29
29
|
const encoding = __importStar(require("./encoding/encoding.js"));
|
|
30
30
|
const utils = __importStar(require("./utils/utils.js"));
|
|
31
31
|
const signedTransaction_js_1 = require("./signedTransaction.js");
|
|
32
32
|
const multisig_js_1 = require("./multisig.js");
|
|
33
|
+
const signing_js_1 = require("./signing.js");
|
|
33
34
|
exports.MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = 'Not enough multisig transactions to merge. Need at least two';
|
|
34
35
|
exports.MULTISIG_MERGE_MISMATCH_ERROR_MSG = 'Cannot merge txs. txIDs differ';
|
|
35
36
|
exports.MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = 'Cannot merge txs. Auth addrs differ';
|
|
@@ -122,6 +123,22 @@ function partialSignTxn(transaction, { version, threshold, pks }, sk) {
|
|
|
122
123
|
const myPk = nacl.keyPairFromSecretKey(sk).publicKey;
|
|
123
124
|
return createMultisigTransactionWithSignature(transaction, { rawSig: transaction.rawSignTxn(sk), myPk }, { version, threshold, pks });
|
|
124
125
|
}
|
|
126
|
+
async function partialSignTxnWithSigner(transaction, { version, threshold, pks }, txnSigner) {
|
|
127
|
+
const { stxn } = await (0, signing_js_1.signTransactionWithSigner)(transaction, txnSigner);
|
|
128
|
+
const rawSig = stxn.sig;
|
|
129
|
+
if (rawSig === undefined) {
|
|
130
|
+
throw Error(`Expected TransactionSigner to return a signed transaction with a sig, but sig was empty`);
|
|
131
|
+
}
|
|
132
|
+
// A signer reports which key it signed with in `sgnr`, but omits it when that
|
|
133
|
+
// key is the transaction sender, so fall back to the sender. If neither is a
|
|
134
|
+
// member of the multisig, createMultisigTransactionWithSignature rejects it
|
|
135
|
+
// rather than attaching the signature to the wrong subsig.
|
|
136
|
+
const myPk = (stxn.sgnr ?? transaction.sender).publicKey;
|
|
137
|
+
return createMultisigTransactionWithSignature(transaction, {
|
|
138
|
+
rawSig,
|
|
139
|
+
myPk,
|
|
140
|
+
}, { version, threshold, pks });
|
|
141
|
+
}
|
|
125
142
|
/**
|
|
126
143
|
* partialSignWithMultisigSignature partially signs this transaction with an external raw multisig signature and returns
|
|
127
144
|
* a partially-signed multisig transaction, encoded with msgpack as a typed array.
|
|
@@ -217,6 +234,8 @@ function mergeMultisigTransactions(multisigTxnBlobs) {
|
|
|
217
234
|
}
|
|
218
235
|
exports.mergeMultisigTransactions = mergeMultisigTransactions;
|
|
219
236
|
/**
|
|
237
|
+
* @deprecated Use {@link signMultisigTransactionWithSigner} instead
|
|
238
|
+
*
|
|
220
239
|
* signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
|
|
221
240
|
* a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
|
|
222
241
|
* multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendSignMultisigTransaction.
|
|
@@ -239,6 +258,36 @@ function signMultisigTransaction(txn, { version, threshold, addrs }, sk) {
|
|
|
239
258
|
}
|
|
240
259
|
exports.signMultisigTransaction = signMultisigTransaction;
|
|
241
260
|
/**
|
|
261
|
+
* signMultisigTransactionWithSigner takes a raw transaction, a multisig preimage and a signer, and
|
|
262
|
+
* returns a multisig transaction: a blob representing a transaction and multisignature account
|
|
263
|
+
* preimage. The returned multisig txn can accumulate additional signatures through
|
|
264
|
+
* mergeMultisigTransactions or appendSignMultisigTransactionWithSigner.
|
|
265
|
+
*
|
|
266
|
+
* The signer must hold a key belonging to the multisig. That key is taken from the `sgnr` field of
|
|
267
|
+
* the transaction the signer returns, falling back to the transaction sender when `sgnr` is absent
|
|
268
|
+
* — which is the same convention signers use when writing it. Every signer this SDK provides
|
|
269
|
+
* follows it. Note that `AddressWithTransactionSigner.address` cannot be used for this: it is the
|
|
270
|
+
* address the signer sends transactions from, which for a rekeyed account is not the signing key.
|
|
271
|
+
*
|
|
272
|
+
* @param txn - the transaction to sign
|
|
273
|
+
* @param version - multisig version
|
|
274
|
+
* @param threshold - multisig threshold
|
|
275
|
+
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
276
|
+
* @param txnSigner - the signer to sign with
|
|
277
|
+
* @returns an object with txID and blob properties
|
|
278
|
+
*/
|
|
279
|
+
async function signMultisigTransactionWithSigner(txn, { version, threshold, addrs }, txnSigner) {
|
|
280
|
+
const pks = (0, multisig_js_1.pksFromAddresses)(addrs);
|
|
281
|
+
const blob = await partialSignTxnWithSigner(txn, { version, threshold, pks }, txnSigner);
|
|
282
|
+
return {
|
|
283
|
+
txID: txn.txID(),
|
|
284
|
+
blob,
|
|
285
|
+
};
|
|
286
|
+
}
|
|
287
|
+
exports.signMultisigTransactionWithSigner = signMultisigTransactionWithSigner;
|
|
288
|
+
/**
|
|
289
|
+
* @deprecated Use {@link appendSignMultisigTransactionWithSigner} instead
|
|
290
|
+
*
|
|
242
291
|
* appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
|
|
243
292
|
* While we could derive public key preimagery from the partially-signed multisig transaction,
|
|
244
293
|
* we ask the caller to pass it back in, to ensure they know what they are signing.
|
|
@@ -260,6 +309,34 @@ function appendSignMultisigTransaction(multisigTxnBlob, { version, threshold, ad
|
|
|
260
309
|
};
|
|
261
310
|
}
|
|
262
311
|
exports.appendSignMultisigTransaction = appendSignMultisigTransaction;
|
|
312
|
+
/**
|
|
313
|
+
* appendSignMultisigTransactionWithSigner takes a multisig transaction blob, and appends the given
|
|
314
|
+
* signer's signature to it. While we could derive public key preimagery from the partially-signed
|
|
315
|
+
* multisig transaction, we ask the caller to pass it back in, to ensure they know what they are
|
|
316
|
+
* signing.
|
|
317
|
+
*
|
|
318
|
+
* As with {@link signMultisigTransactionWithSigner}, the signer's key is taken from the `sgnr`
|
|
319
|
+
* field of the transaction it returns, falling back to the transaction sender when `sgnr` is
|
|
320
|
+
* absent.
|
|
321
|
+
*
|
|
322
|
+
* @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
|
|
323
|
+
* @param version - multisig version
|
|
324
|
+
* @param threshold - multisig threshold
|
|
325
|
+
* @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
|
|
326
|
+
* @param txnSigner - the signer to sign with
|
|
327
|
+
* @returns an object with txID and blob properties
|
|
328
|
+
*/
|
|
329
|
+
async function appendSignMultisigTransactionWithSigner(multisigTxnBlob, { version, threshold, addrs }, txnSigner) {
|
|
330
|
+
const pks = (0, multisig_js_1.pksFromAddresses)(addrs);
|
|
331
|
+
// obtain underlying txn, sign it, and merge it
|
|
332
|
+
const multisigTxObj = encoding.decodeMsgpack(multisigTxnBlob, signedTransaction_js_1.SignedTransaction);
|
|
333
|
+
const partialSignedBlob = await partialSignTxnWithSigner(multisigTxObj.txn, { version, threshold, pks }, txnSigner);
|
|
334
|
+
return {
|
|
335
|
+
txID: multisigTxObj.txn.txID(),
|
|
336
|
+
blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
exports.appendSignMultisigTransactionWithSigner = appendSignMultisigTransactionWithSigner;
|
|
263
340
|
/**
|
|
264
341
|
* appendMultisigTransactionSignature takes a multisig transaction blob, and appends a given raw signature to it.
|
|
265
342
|
* This makes it possible to compile a multisig signature using only raw signatures from external methods.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multisigSigning.js","sourceRoot":"","sources":["../../src/multisigSigning.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAC/C,sDAAgD;AAChD,iEAAmD;AAEnD,wDAA0C;AAE1C,iEAA2D;AAC3D,+CAIuB;
|
|
1
|
+
{"version":3,"file":"multisigSigning.js","sourceRoot":"","sources":["../../src/multisigSigning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addressWithSignersFromRawPQSigner = void 0;
|
|
4
|
+
const address_js_1 = require("./encoding/address.js");
|
|
5
|
+
const encoding_js_1 = require("./encoding/encoding.js");
|
|
6
|
+
const logicsig_js_1 = require("./logicsig.js");
|
|
7
|
+
const signedTransaction_js_1 = require("./signedTransaction.js");
|
|
8
|
+
const utils_js_1 = require("./utils/utils.js");
|
|
9
|
+
function addressWithSignersFromRawPQSigner(signingKey, sendingAddress) {
|
|
10
|
+
const { pqPublicKey, pqSigner: rawSigner, pqScheme } = signingKey;
|
|
11
|
+
const { address: authAddress, salt } = (0, address_js_1.addressFromPQKey)(pqScheme, pqPublicKey);
|
|
12
|
+
const txnSigner = async (txnGroup, indexesToSign) => {
|
|
13
|
+
const stxns = [];
|
|
14
|
+
for (const index of indexesToSign) {
|
|
15
|
+
const txn = txnGroup[index];
|
|
16
|
+
// eslint-disable-next-line no-await-in-loop
|
|
17
|
+
const sig = await rawSigner(txn.bytesToSign());
|
|
18
|
+
const pqsig = {
|
|
19
|
+
sch: pqScheme,
|
|
20
|
+
slt: salt,
|
|
21
|
+
pk: pqPublicKey,
|
|
22
|
+
sig,
|
|
23
|
+
};
|
|
24
|
+
const stxn = new signedTransaction_js_1.SignedTransaction({
|
|
25
|
+
txn,
|
|
26
|
+
pqsig,
|
|
27
|
+
sgnr: txn.sender.equals(authAddress) ? undefined : authAddress,
|
|
28
|
+
});
|
|
29
|
+
stxns.push(stxn);
|
|
30
|
+
}
|
|
31
|
+
return stxns.map((stxn) => (0, encoding_js_1.encodeMsgpack)(stxn));
|
|
32
|
+
};
|
|
33
|
+
// A TransactionSigner that attaches a placeholder PQ envelope rather than a
|
|
34
|
+
// real signature. The scheme, salt, and public key are populated but the
|
|
35
|
+
// signature bytes are left empty. When simulated with `allowEmptySignatures`,
|
|
36
|
+
// algod derives the authorizer from this envelope and charges the post-quantum
|
|
37
|
+
// fee surcharge, so the reported fee usage matches a genuinely signed group -
|
|
38
|
+
// all without paying the cost of producing a (large, slow) Falcon signature.
|
|
39
|
+
const emptyTxnSigner = (txnGroup, indexesToSign) => {
|
|
40
|
+
const stxns = [];
|
|
41
|
+
for (const index of indexesToSign) {
|
|
42
|
+
const txn = txnGroup[index];
|
|
43
|
+
const pqsig = {
|
|
44
|
+
sch: pqScheme,
|
|
45
|
+
slt: salt,
|
|
46
|
+
pk: pqPublicKey,
|
|
47
|
+
sig: new Uint8Array(),
|
|
48
|
+
};
|
|
49
|
+
const stxn = new signedTransaction_js_1.SignedTransaction({
|
|
50
|
+
txn,
|
|
51
|
+
pqsig,
|
|
52
|
+
sgnr: txn.sender.equals(authAddress) ? undefined : authAddress,
|
|
53
|
+
});
|
|
54
|
+
stxns.push((0, encoding_js_1.encodeMsgpack)(stxn));
|
|
55
|
+
}
|
|
56
|
+
return Promise.resolve(stxns);
|
|
57
|
+
};
|
|
58
|
+
const delegatedLsigSigner = async (lsig, msig) => {
|
|
59
|
+
if (msig) {
|
|
60
|
+
throw Error(`post-quantum scheme ${new TextDecoder().decode(pqScheme)} does not support multisig signing`);
|
|
61
|
+
}
|
|
62
|
+
const toBeSigned = new Uint8Array((0, utils_js_1.concatArrays)(logicsig_js_1.PQ_PROGRAM_TAG, authAddress.publicKey, lsig.logic));
|
|
63
|
+
const sig = await rawSigner(toBeSigned);
|
|
64
|
+
const pqsig = {
|
|
65
|
+
sch: pqScheme,
|
|
66
|
+
slt: salt,
|
|
67
|
+
pk: pqPublicKey,
|
|
68
|
+
sig,
|
|
69
|
+
};
|
|
70
|
+
return { address: authAddress, pqsig };
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
address: sendingAddress ?? authAddress,
|
|
74
|
+
txnSigner,
|
|
75
|
+
emptyTxnSigner,
|
|
76
|
+
delegatedLsigSigner,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
exports.addressWithSignersFromRawPQSigner = addressWithSignersFromRawPQSigner;
|
|
80
|
+
//# sourceMappingURL=pq-signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pq-signer.js","sourceRoot":"","sources":["../../src/pq-signer.ts"],"names":[],"mappings":";;;AAAA,sDAAkE;AAClE,wDAAuD;AACvD,+CAAyD;AAEzD,iEAA2D;AAU3D,+CAAgD;AAQhD,SAAgB,iCAAiC,CAC/C,UAAwB,EACxB,cAAwB;IAIxB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAClE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,IAAA,6BAAgB,EACrD,QAAQ,EACR,WAAW,CACZ,CAAC;IAEF,MAAM,SAAS,GAAsB,KAAK,EACxC,QAAuB,EACvB,aAAuB,EACvB,EAAE;QACF,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,4CAA4C;YAC5C,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAiB;gBAC1B,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,IAAI;gBACT,EAAE,EAAE,WAAW;gBACf,GAAG;aACJ,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,wCAAiB,CAAC;gBACjC,GAAG;gBACH,KAAK;gBACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;aAC/D,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,4EAA4E;IAC5E,yEAAyE;IACzE,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,cAAc,GAAsB,CACxC,QAAuB,EACvB,aAAuB,EACvB,EAAE;QACF,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAiB;gBAC1B,GAAG,EAAE,QAAQ;gBACb,GAAG,EAAE,IAAI;gBACT,EAAE,EAAE,WAAW;gBACf,GAAG,EAAE,IAAI,UAAU,EAAE;aACtB,CAAC;YACF,MAAM,IAAI,GAAG,IAAI,wCAAiB,CAAC;gBACjC,GAAG;gBACH,KAAK;gBACL,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;aAC/D,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAA,2BAAa,EAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAwB,KAAK,EACpD,IAAc,EACd,IAAuB,EACvB,EAAE;QACF,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,CACT,uBAAuB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,oCAAoC,CAC9F,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAC/B,IAAA,uBAAY,EAAC,4BAAc,EAAE,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAChE,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,KAAK,GAAiB;YAC1B,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,IAAI;YACT,EAAE,EAAE,WAAW;YACf,GAAG;SACJ,CAAC;QAEF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,cAAc,IAAI,WAAW;QACtC,SAAS;QACT,cAAc;QACd,mBAAmB;KACpB,CAAC;AACJ,CAAC;AApGD,8EAoGC"}
|
|
@@ -7,11 +7,12 @@ const logicsig_js_1 = require("./logicsig.js");
|
|
|
7
7
|
const index_js_1 = require("./types/transactions/index.js");
|
|
8
8
|
const index_js_2 = require("./encoding/schema/index.js");
|
|
9
9
|
class SignedTransaction {
|
|
10
|
-
constructor({ txn, sig, msig, lsig, sgnr, }) {
|
|
10
|
+
constructor({ txn, sig, msig, lsig, pqsig, sgnr, }) {
|
|
11
11
|
this.txn = txn;
|
|
12
12
|
this.sig = sig;
|
|
13
13
|
this.msig = msig;
|
|
14
14
|
this.lsig = lsig;
|
|
15
|
+
this.pqsig = pqsig;
|
|
15
16
|
this.sgnr = sgnr;
|
|
16
17
|
let numberOfSigs = 0;
|
|
17
18
|
if (sig)
|
|
@@ -20,6 +21,8 @@ class SignedTransaction {
|
|
|
20
21
|
numberOfSigs += 1;
|
|
21
22
|
if (lsig)
|
|
22
23
|
numberOfSigs += 1;
|
|
24
|
+
if (pqsig)
|
|
25
|
+
numberOfSigs += 1;
|
|
23
26
|
if (numberOfSigs > 1) {
|
|
24
27
|
throw new Error(`SignedTransaction must not have more than 1 signature. Got ${numberOfSigs}`);
|
|
25
28
|
}
|
|
@@ -37,6 +40,10 @@ class SignedTransaction {
|
|
|
37
40
|
this.msig ? (0, index_js_1.encodedMultiSigToEncodingData)(this.msig) : undefined,
|
|
38
41
|
],
|
|
39
42
|
['lsig', this.lsig ? this.lsig.toEncodingData() : undefined],
|
|
43
|
+
[
|
|
44
|
+
'pqsig',
|
|
45
|
+
this.pqsig ? (0, index_js_1.encodedPQSigToEncodingData)(this.pqsig) : undefined,
|
|
46
|
+
],
|
|
40
47
|
['sgnr', this.sgnr],
|
|
41
48
|
]);
|
|
42
49
|
}
|
|
@@ -53,6 +60,9 @@ class SignedTransaction {
|
|
|
53
60
|
lsig: data.get('lsig')
|
|
54
61
|
? logicsig_js_1.LogicSig.fromEncodingData(data.get('lsig'))
|
|
55
62
|
: undefined,
|
|
63
|
+
pqsig: data.get('pqsig')
|
|
64
|
+
? (0, index_js_1.encodedPQSigFromEncodingData)(data.get('pqsig'))
|
|
65
|
+
: undefined,
|
|
56
66
|
sgnr: data.get('sgnr'),
|
|
57
67
|
});
|
|
58
68
|
}
|
|
@@ -75,6 +85,10 @@ SignedTransaction.encodingSchema = new index_js_2.NamedMapSchema((0, index_js_2.
|
|
|
75
85
|
key: 'lsig',
|
|
76
86
|
valueSchema: new index_js_2.OptionalSchema(logicsig_js_1.LogicSig.encodingSchema),
|
|
77
87
|
},
|
|
88
|
+
{
|
|
89
|
+
key: 'pqsig',
|
|
90
|
+
valueSchema: new index_js_2.OptionalSchema(index_js_1.ENCODED_PQSIG_SCHEMA),
|
|
91
|
+
},
|
|
78
92
|
{
|
|
79
93
|
key: 'sgnr',
|
|
80
94
|
valueSchema: new index_js_2.OptionalSchema(new index_js_2.AddressSchema()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signedTransaction.js","sourceRoot":"","sources":["../../src/signedTransaction.ts"],"names":[],"mappings":";;;AAAA,wDAIgC;AAEhC,qDAA+C;AAC/C,+CAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"signedTransaction.js","sourceRoot":"","sources":["../../src/signedTransaction.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":";;;AAEA,iEAA2E;AAE3E,6CAA6D;AAE7D,6DAG8B;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/signing.js
CHANGED
|
@@ -23,15 +23,95 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.signLogicSigTransaction = exports.signLogicSigTransactionObject = void 0;
|
|
26
|
+
exports.signLogicSigTransaction = exports.signLogicSigTransactionObject = exports.verifyBytes = exports.signBytes = exports.signTransactionWithSigner = exports.signTransaction = exports.SIGN_BYTES_PREFIX = void 0;
|
|
27
27
|
const nacl = __importStar(require("./nacl/naclWrappers.js"));
|
|
28
28
|
const address_js_1 = require("./encoding/address.js");
|
|
29
29
|
const encoding = __importStar(require("./encoding/encoding.js"));
|
|
30
|
+
const utils = __importStar(require("./utils/utils.js"));
|
|
30
31
|
const signedTransaction_js_1 = require("./signedTransaction.js");
|
|
31
32
|
const logicsig_js_1 = require("./logicsig.js");
|
|
32
33
|
const multisig_js_1 = require("./multisig.js");
|
|
34
|
+
exports.SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]); // "MX"
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use signTransactionWithSigner
|
|
37
|
+
*
|
|
38
|
+
* signTransaction takes an object with either payment or key registration fields and
|
|
39
|
+
* a secret key and returns a signed blob.
|
|
40
|
+
*
|
|
41
|
+
* Payment transaction fields: from, to, amount, fee, firstValid, lastValid, genesisHash,
|
|
42
|
+
* note(optional), GenesisID(optional), closeRemainderTo(optional)
|
|
43
|
+
*
|
|
44
|
+
* Key registration fields: fee, firstValid, lastValid, voteKey, selectionKey, voteFirst,
|
|
45
|
+
* voteLast, voteKeyDilution, genesisHash, note(optional), GenesisID(optional)
|
|
46
|
+
*
|
|
47
|
+
* If flatFee is not set and the final calculated fee is lower than the protocol minimum fee, the fee will be increased to match the minimum.
|
|
48
|
+
* @param txn - object with either payment or key registration fields
|
|
49
|
+
* @param sk - Algorand Secret Key
|
|
50
|
+
* @returns object contains the binary signed transaction and its txID
|
|
51
|
+
*/
|
|
52
|
+
function signTransaction(txn, sk) {
|
|
53
|
+
return {
|
|
54
|
+
txID: txn.txID(),
|
|
55
|
+
blob: txn.signTxn(sk),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
exports.signTransaction = signTransaction;
|
|
59
|
+
async function signTransactionWithSigner(txn, signer) {
|
|
60
|
+
const [blob] = await signer([txn], [0]);
|
|
61
|
+
return {
|
|
62
|
+
blob,
|
|
63
|
+
txID: txn.txID(),
|
|
64
|
+
stxn: encoding.decodeMsgpack(blob, signedTransaction_js_1.SignedTransaction),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
exports.signTransactionWithSigner = signTransactionWithSigner;
|
|
68
|
+
/**
|
|
69
|
+
* signBytes takes arbitrary bytes and a secret key, prepends the bytes with "MX" for domain separation, signs the bytes
|
|
70
|
+
* with the private key, and returns the signature.
|
|
71
|
+
* @param bytes - Uint8array
|
|
72
|
+
* @param sk - Algorand secret key
|
|
73
|
+
* @returns binary signature
|
|
74
|
+
*/
|
|
75
|
+
function signBytes(bytes, sk) {
|
|
76
|
+
const toBeSigned = utils.concatArrays(exports.SIGN_BYTES_PREFIX, bytes);
|
|
77
|
+
const sig = nacl.sign(toBeSigned, sk);
|
|
78
|
+
return sig;
|
|
79
|
+
}
|
|
80
|
+
exports.signBytes = signBytes;
|
|
81
|
+
/**
|
|
82
|
+
* verifyBytes takes array of bytes, an address, and a signature and verifies if the signature is correct for the public
|
|
83
|
+
* key and the bytes (the bytes should have been signed with "MX" prepended for domain separation).
|
|
84
|
+
* @param bytes - Uint8Array
|
|
85
|
+
* @param signature - binary signature
|
|
86
|
+
* @param addr - string address
|
|
87
|
+
* @returns bool
|
|
88
|
+
*/
|
|
89
|
+
function verifyBytes(bytes, signature, addr) {
|
|
90
|
+
const toBeVerified = utils.concatArrays(exports.SIGN_BYTES_PREFIX, bytes);
|
|
91
|
+
const addrObj = typeof addr === 'string' ? address_js_1.Address.fromString(addr) : addr;
|
|
92
|
+
return nacl.verify(toBeVerified, signature, addrObj.publicKey);
|
|
93
|
+
}
|
|
94
|
+
exports.verifyBytes = verifyBytes;
|
|
33
95
|
function signLogicSigTransactionWithAddress(txn, lsig, lsigAddress) {
|
|
34
|
-
|
|
96
|
+
// `lsig.verify` enforces this for the non-PQ paths, but the PQ path below
|
|
97
|
+
// skips it, so check it up front for every path.
|
|
98
|
+
const sigCount = [lsig.sig, lsig.msig, lsig.lmsig, lsig.pqsig].filter(Boolean).length;
|
|
99
|
+
if (sigCount > 1) {
|
|
100
|
+
throw new Error('LogicSig has too many signatures. At most one of sig, msig, lmsig, or pqsig may be present');
|
|
101
|
+
}
|
|
102
|
+
if (lsig.pqsig) {
|
|
103
|
+
// This SDK cannot validate the post-quantum signature itself, so it checks
|
|
104
|
+
// what it can and leaves the signature to the network: the program must be
|
|
105
|
+
// well-formed, and the signature's scheme, salt and public key must derive
|
|
106
|
+
// the delegating address.
|
|
107
|
+
try {
|
|
108
|
+
(0, logicsig_js_1.sanityCheckProgram)(lsig.logic);
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
throw new Error(`Logic signature verification failed. Ensure the program is valid: ${e.message}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
else if (!lsig.verify(lsigAddress.publicKey)) {
|
|
35
115
|
throw new Error('Logic signature verification failed. Ensure the program and signature are valid.');
|
|
36
116
|
}
|
|
37
117
|
let sgnr;
|
|
@@ -66,11 +146,18 @@ function signLogicSigTransactionObject(txn, lsigObject) {
|
|
|
66
146
|
}
|
|
67
147
|
else {
|
|
68
148
|
lsig = lsigObject;
|
|
69
|
-
if (lsig.
|
|
70
|
-
//
|
|
71
|
-
//
|
|
72
|
-
//
|
|
73
|
-
//
|
|
149
|
+
if (lsig.pqsig) {
|
|
150
|
+
// A PQ signature carries the scheme, salt and public key of the
|
|
151
|
+
// delegating account, so its address is derivable. This is what lets a
|
|
152
|
+
// bare PQ-delegated LogicSig authorize a transaction whose sender was
|
|
153
|
+
// rekeyed to the delegating account.
|
|
154
|
+
lsigAddress = (0, address_js_1.addressFromPQSig)(lsig.pqsig);
|
|
155
|
+
}
|
|
156
|
+
else if (lsig.sig) {
|
|
157
|
+
// For an ed25519 LogicSig with a non-multisig delegating account, we
|
|
158
|
+
// cannot derive the address of that account from only its signature, so
|
|
159
|
+
// assume the delegating account is the sender. If that's not the case,
|
|
160
|
+
// the signing will fail.
|
|
74
161
|
lsigAddress = new address_js_1.Address(txn.sender.publicKey);
|
|
75
162
|
}
|
|
76
163
|
else if (lsig.lmsig) {
|
package/dist/cjs/signing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"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"}
|