algosdk 3.5.2 → 3.7.0-beta.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 (133) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.map +1 -1
  4. package/dist/cjs/appAccess.js +8 -5
  5. package/dist/cjs/appAccess.js.map +1 -1
  6. package/dist/cjs/client/v2/algod/accountApplicationsInformation.js +38 -0
  7. package/dist/cjs/client/v2/algod/accountApplicationsInformation.js.map +1 -0
  8. package/dist/cjs/client/v2/algod/accountAssetsInformation.js +31 -0
  9. package/dist/cjs/client/v2/algod/accountAssetsInformation.js.map +1 -0
  10. package/dist/cjs/client/v2/algod/algod.js +23 -19
  11. package/dist/cjs/client/v2/algod/algod.js.map +1 -1
  12. package/dist/cjs/client/v2/algod/getApplicationBoxes.js +116 -5
  13. package/dist/cjs/client/v2/algod/getApplicationBoxes.js.map +1 -1
  14. package/dist/cjs/client/v2/algod/models/types.js +243 -452
  15. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  16. package/dist/cjs/ed25519-signer.js +76 -0
  17. package/dist/cjs/ed25519-signer.js.map +1 -0
  18. package/dist/cjs/encoding/address.js +61 -1
  19. package/dist/cjs/encoding/address.js.map +1 -1
  20. package/dist/cjs/falcon-signer.js +17 -0
  21. package/dist/cjs/falcon-signer.js.map +1 -0
  22. package/dist/cjs/logicsig.js +201 -16
  23. package/dist/cjs/logicsig.js.map +1 -1
  24. package/dist/cjs/main.js +32 -63
  25. package/dist/cjs/main.js.map +1 -1
  26. package/dist/cjs/mnemonic/mnemonic.js +26 -1
  27. package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
  28. package/dist/cjs/multisigSigning.js +78 -1
  29. package/dist/cjs/multisigSigning.js.map +1 -1
  30. package/dist/cjs/pq-signer.js +54 -0
  31. package/dist/cjs/pq-signer.js.map +1 -0
  32. package/dist/cjs/signedTransaction.js +15 -1
  33. package/dist/cjs/signedTransaction.js.map +1 -1
  34. package/dist/cjs/signer.js.map +1 -1
  35. package/dist/cjs/signing.js +94 -7
  36. package/dist/cjs/signing.js.map +1 -1
  37. package/dist/cjs/transaction.js +9 -1
  38. package/dist/cjs/transaction.js.map +1 -1
  39. package/dist/cjs/types/transactions/encoded.js +51 -1
  40. package/dist/cjs/types/transactions/encoded.js.map +1 -1
  41. package/dist/cjs/utils/ed25519-check.js +69 -0
  42. package/dist/cjs/utils/ed25519-check.js.map +1 -0
  43. package/dist/esm/appAccess.js +8 -5
  44. package/dist/esm/appAccess.js.map +1 -1
  45. package/dist/esm/client/v2/algod/accountApplicationsInformation.js +32 -0
  46. package/dist/esm/client/v2/algod/accountApplicationsInformation.js.map +1 -0
  47. package/dist/esm/client/v2/algod/accountAssetsInformation.js +25 -0
  48. package/dist/esm/client/v2/algod/accountAssetsInformation.js.map +1 -0
  49. package/dist/esm/client/v2/algod/algod.js +23 -19
  50. package/dist/esm/client/v2/algod/algod.js.map +1 -1
  51. package/dist/esm/client/v2/algod/getApplicationBoxes.js +116 -5
  52. package/dist/esm/client/v2/algod/getApplicationBoxes.js.map +1 -1
  53. package/dist/esm/client/v2/algod/models/types.js +239 -445
  54. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  55. package/dist/esm/ed25519-signer.js +72 -0
  56. package/dist/esm/ed25519-signer.js.map +1 -0
  57. package/dist/esm/encoding/address.js +58 -0
  58. package/dist/esm/encoding/address.js.map +1 -1
  59. package/dist/esm/falcon-signer.js +13 -0
  60. package/dist/esm/falcon-signer.js.map +1 -0
  61. package/dist/esm/logicsig.js +200 -15
  62. package/dist/esm/logicsig.js.map +1 -1
  63. package/dist/esm/main.js +8 -56
  64. package/dist/esm/main.js.map +1 -1
  65. package/dist/esm/mnemonic/mnemonic.js +25 -1
  66. package/dist/esm/mnemonic/mnemonic.js.map +1 -1
  67. package/dist/esm/multisigSigning.js +75 -0
  68. package/dist/esm/multisigSigning.js.map +1 -1
  69. package/dist/esm/pq-signer.js +50 -0
  70. package/dist/esm/pq-signer.js.map +1 -0
  71. package/dist/esm/signedTransaction.js +16 -2
  72. package/dist/esm/signedTransaction.js.map +1 -1
  73. package/dist/esm/signer.js.map +1 -1
  74. package/dist/esm/signing.js +91 -8
  75. package/dist/esm/signing.js.map +1 -1
  76. package/dist/esm/transaction.js +9 -1
  77. package/dist/esm/transaction.js.map +1 -1
  78. package/dist/esm/types/transactions/encoded.js +49 -1
  79. package/dist/esm/types/transactions/encoded.js.map +1 -1
  80. package/dist/esm/utils/ed25519-check.js +65 -0
  81. package/dist/esm/utils/ed25519-check.js.map +1 -0
  82. package/dist/types/client/v2/algod/accountApplicationsInformation.d.ts +16 -0
  83. package/dist/types/client/v2/algod/accountAssetsInformation.d.ts +12 -0
  84. package/dist/types/client/v2/algod/algod.d.ts +19 -17
  85. package/dist/types/client/v2/algod/getApplicationBoxes.d.ts +100 -5
  86. package/dist/types/client/v2/algod/models/types.d.ts +146 -232
  87. package/dist/types/ed25519-signer.d.ts +7 -0
  88. package/dist/types/encoding/address.d.ts +37 -0
  89. package/dist/types/falcon-signer.d.ts +11 -0
  90. package/dist/types/logicsig.d.ts +72 -1
  91. package/dist/types/main.d.ts +8 -44
  92. package/dist/types/mnemonic/mnemonic.d.ts +13 -0
  93. package/dist/types/multisigSigning.d.ts +49 -0
  94. package/dist/types/pq-signer.d.ts +8 -0
  95. package/dist/types/signedTransaction.d.ts +7 -2
  96. package/dist/types/signer.d.ts +38 -0
  97. package/dist/types/signing.d.ts +45 -0
  98. package/dist/types/transaction.d.ts +9 -0
  99. package/dist/types/types/transactions/encoded.d.ts +27 -0
  100. package/dist/types/utils/ed25519-check.d.ts +10 -0
  101. package/package.json +2 -1
  102. package/src/appAccess.ts +10 -5
  103. package/src/client/v2/algod/accountApplicationsInformation.ts +46 -0
  104. package/src/client/v2/algod/accountAssetsInformation.ts +33 -0
  105. package/src/client/v2/algod/algod.ts +25 -20
  106. package/src/client/v2/algod/getApplicationBoxes.ts +123 -5
  107. package/src/client/v2/algod/models/types.ts +523 -846
  108. package/src/ed25519-signer.ts +125 -0
  109. package/src/encoding/address.ts +80 -0
  110. package/src/falcon-signer.ts +30 -0
  111. package/src/logicsig.ts +258 -16
  112. package/src/main.ts +30 -60
  113. package/src/mnemonic/mnemonic.ts +34 -1
  114. package/src/multisigSigning.ts +111 -0
  115. package/src/pq-signer.ts +90 -0
  116. package/src/signedTransaction.ts +24 -0
  117. package/src/signer.ts +53 -0
  118. package/src/signing.ts +109 -8
  119. package/src/transaction.ts +9 -1
  120. package/src/types/transactions/encoded.ts +88 -0
  121. package/src/utils/ed25519-check.ts +67 -0
  122. package/dist/cjs/client/v2/algod/dryrun.js +0 -34
  123. package/dist/cjs/client/v2/algod/dryrun.js.map +0 -1
  124. package/dist/cjs/dryrun.js +0 -214
  125. package/dist/cjs/dryrun.js.map +0 -1
  126. package/dist/esm/client/v2/algod/dryrun.js +0 -28
  127. package/dist/esm/client/v2/algod/dryrun.js.map +0 -1
  128. package/dist/esm/dryrun.js +0 -208
  129. package/dist/esm/dryrun.js.map +0 -1
  130. package/dist/types/client/v2/algod/dryrun.d.ts +0 -11
  131. package/dist/types/dryrun.d.ts +0 -28
  132. package/src/client/v2/algod/dryrun.ts +0 -38
  133. package/src/dryrun.ts +0 -292
package/dist/esm/main.js CHANGED
@@ -1,56 +1,6 @@
1
- import * as nacl from './nacl/naclWrappers.js';
2
- import { Address } from './encoding/address.js';
3
1
  import * as convert from './convert.js';
4
- import * as utils from './utils/utils.js';
5
- const SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]); // "MX"
6
2
  // Errors
7
3
  export const MULTISIG_BAD_SENDER_ERROR_MSG = 'The transaction sender address and multisig preimage do not match.';
8
- /**
9
- * signTransaction takes an object with either payment or key registration fields and
10
- * a secret key and returns a signed blob.
11
- *
12
- * Payment transaction fields: from, to, amount, fee, firstValid, lastValid, genesisHash,
13
- * note(optional), GenesisID(optional), closeRemainderTo(optional)
14
- *
15
- * Key registration fields: fee, firstValid, lastValid, voteKey, selectionKey, voteFirst,
16
- * voteLast, voteKeyDilution, genesisHash, note(optional), GenesisID(optional)
17
- *
18
- * 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.
19
- * @param txn - object with either payment or key registration fields
20
- * @param sk - Algorand Secret Key
21
- * @returns object contains the binary signed transaction and its txID
22
- */
23
- export function signTransaction(txn, sk) {
24
- return {
25
- txID: txn.txID(),
26
- blob: txn.signTxn(sk),
27
- };
28
- }
29
- /**
30
- * signBytes takes arbitrary bytes and a secret key, prepends the bytes with "MX" for domain separation, signs the bytes
31
- * with the private key, and returns the signature.
32
- * @param bytes - Uint8array
33
- * @param sk - Algorand secret key
34
- * @returns binary signature
35
- */
36
- export function signBytes(bytes, sk) {
37
- const toBeSigned = utils.concatArrays(SIGN_BYTES_PREFIX, bytes);
38
- const sig = nacl.sign(toBeSigned, sk);
39
- return sig;
40
- }
41
- /**
42
- * verifyBytes takes array of bytes, an address, and a signature and verifies if the signature is correct for the public
43
- * key and the bytes (the bytes should have been signed with "MX" prepended for domain separation).
44
- * @param bytes - Uint8Array
45
- * @param signature - binary signature
46
- * @param addr - string address
47
- * @returns bool
48
- */
49
- export function verifyBytes(bytes, signature, addr) {
50
- const toBeVerified = utils.concatArrays(SIGN_BYTES_PREFIX, bytes);
51
- const addrObj = typeof addr === 'string' ? Address.fromString(addr) : addr;
52
- return nacl.verify(toBeVerified, signature, addrObj.publicKey);
53
- }
54
4
  export const ERROR_MULTISIG_BAD_SENDER = new Error(MULTISIG_BAD_SENDER_ERROR_MSG);
55
5
  export const ERROR_INVALID_MICROALGOS = new Error(convert.INVALID_MICROALGOS_ERROR_MSG);
56
6
  export { AlgodClient as Algodv2 } from './client/v2/algod/algod.js';
@@ -59,7 +9,7 @@ export { default as IntDecoding } from './types/intDecoding.js';
59
9
  export { IndexerClient as Indexer } from './client/v2/indexer/indexer.js';
60
10
  export { waitForConfirmation } from './wait.js';
61
11
  export { encodeObj, decodeObj, msgpackRawEncode, msgpackRawDecode, msgpackRawDecodeAsMap, encodeMsgpack, decodeMsgpack, encodeJSON, decodeJSON, } from './encoding/encoding.js';
62
- export { Address, isValidAddress, encodeAddress, decodeAddress, getApplicationAddress, ALGORAND_ZERO_ADDRESS_STRING, } from './encoding/address.js';
12
+ export { Address, isValidAddress, encodeAddress, decodeAddress, getApplicationAddress, addressFromPQKey, addressFromPQSig, PQ_SCHEME_SIZE, PQ_SALT_MAX, ALGORAND_ZERO_ADDRESS_STRING, } from './encoding/address.js';
63
13
  export { bytesToBigInt, bigIntToBytes } from './encoding/bigint.js';
64
14
  export { base64ToBytes, bytesToBase64, bytesToString, coerceToBytes, bytesToHex, hexToBytes, } from './encoding/binarydata.js';
65
15
  export { encodeUint64, decodeUint64 } from './encoding/uint64.js';
@@ -73,16 +23,18 @@ import * as modelsv2_1 from './client/v2/algod/models/types.js';
73
23
  export { modelsv2_1 as modelsv2 };
74
24
  import * as indexerModels_1 from './client/v2/indexer/models/types.js';
75
25
  export { indexerModels_1 as indexerModels };
76
- export { mnemonicToMasterDerivationKey, masterDerivationKeyToMnemonic, secretKeyToMnemonic, mnemonicToSecretKey, seedFromMnemonic, mnemonicFromSeed, } from './mnemonic/mnemonic.js';
26
+ export { mnemonicToMasterDerivationKey, masterDerivationKeyToMnemonic, secretKeyToMnemonic, mnemonicToSecretKey, seedFromMnemonic, mnemonicFromSeed, pq25WordMnemonicToSeed, } from './mnemonic/mnemonic.js';
77
27
  export { microalgosToAlgos, algosToMicroalgos, INVALID_MICROALGOS_ERROR_MSG, } from './convert.js';
78
28
  export { computeGroupID, assignGroupID } from './group.js';
79
29
  export { SignedTransaction, decodeSignedTransaction, encodeUnsignedSimulateTransaction, } from './signedTransaction.js';
80
- export { signLogicSigTransaction, signLogicSigTransactionObject, } from './signing.js';
81
- export { LogicSig, LogicSigAccount, logicSigFromByte, tealSign, tealSignFromProgram, verifyTealSign, } from './logicsig.js';
30
+ export { SIGN_BYTES_PREFIX, signTransaction, signTransactionWithSigner, signBytes, verifyBytes, signLogicSigTransaction, signLogicSigTransactionObject, } from './signing.js';
31
+ export { LogicSig, LogicSigAccount, logicSigFromByte, tealSign, tealSignFromProgram, verifyTealSign, PROGRAM_TAG, PQ_PROGRAM_TAG, MSIG_PROGRAM_TAG, SIGN_PROGRAM_DATA_PREFIX, } from './logicsig.js';
82
32
  export { verifyMultisig, multisigAddress, } from './multisig.js';
83
- export { signMultisigTransaction, mergeMultisigTransactions, appendSignMultisigTransaction, createMultisigTransaction, appendSignRawMultisigSignature, } from './multisigSigning.js';
33
+ export { signMultisigTransaction, mergeMultisigTransactions, appendSignMultisigTransaction, createMultisigTransaction, appendSignRawMultisigSignature, signMultisigTransactionWithSigner, appendSignMultisigTransactionWithSigner, } from './multisigSigning.js';
84
34
  export { ProgramSourceMap, } from './logic/sourcemap.js';
85
- export * from './dryrun.js';
35
+ export { addressWithSignersFromRawEd25519Signer, } from './ed25519-signer.js';
36
+ export { FALCON_1024_SCHEME, addressWithSignersFromRawFalcon1024Signer, } from './falcon-signer.js';
37
+ export { addressWithSignersFromRawPQSigner, } from './pq-signer.js';
86
38
  export * from './makeTxn.js';
87
39
  export * from './transaction.js';
88
40
  export * from './signer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /* eslint-disable no-bitwise */
2
2
  import english from './wordlists/english.js';
3
3
  import * as nacl from '../nacl/naclWrappers.js';
4
- import { Address } from '../encoding/address.js';
4
+ import { Address, PQ_SCHEME_SIZE } from '../encoding/address.js';
5
+ import { concatArrays } from '../utils/utils.js';
5
6
  export const FAIL_TO_DECODE_MNEMONIC_ERROR_MSG = 'failed to decode mnemonic';
6
7
  export const NOT_IN_WORDS_LIST_ERROR_MSG = 'the mnemonic contains a word that is not in the wordlist';
7
8
  // https://stackoverflow.com/a/51452614
@@ -153,4 +154,27 @@ export function mnemonicToMasterDerivationKey(mn) {
153
154
  export function masterDerivationKeyToMnemonic(mdk) {
154
155
  return mnemonicFromSeed(mdk);
155
156
  }
157
+ /**
158
+ * The domain-separation prefix prepended to a post-quantum key seed preimage
159
+ * before hashing. Matches go-algorand's protocol.PostQuantumKey HashID.
160
+ */
161
+ const PQ_KEY_PREFIX = new TextEncoder().encode('PQK');
162
+ /**
163
+ * pq25WordMnemonicToSeed derives a post-quantum key seed from a standard 25-word
164
+ * Algorand mnemonic.
165
+ *
166
+ * The seed is domain-separated by the PQ scheme, so the same mnemonic yields a
167
+ * different key for each scheme, and a different key again from the ed25519
168
+ * account that `mnemonicToSecretKey` derives from it.
169
+ *
170
+ * @param mn - A 25-word Algorand mnemonic
171
+ * @param scheme - The 2-byte ASCII PQ scheme identifier (e.g. "f1" for Falcon-1024)
172
+ * @returns The 32-byte seed to hand to the scheme's key generator
173
+ */
174
+ export function pq25WordMnemonicToSeed(mn, scheme) {
175
+ if (scheme.length !== PQ_SCHEME_SIZE) {
176
+ throw new Error(`invalid PQ scheme length: expected ${PQ_SCHEME_SIZE} bytes, got ${scheme.length}`);
177
+ }
178
+ return new Uint8Array(nacl.genericHash(concatArrays(PQ_KEY_PREFIX, scheme, seedFromMnemonic(mn))));
179
+ }
156
180
  //# sourceMappingURL=mnemonic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../src/mnemonic/mnemonic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../src/mnemonic/mnemonic.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import * as encoding from './encoding/encoding.js';
4
4
  import * as utils from './utils/utils.js';
5
5
  import { SignedTransaction } from './signedTransaction.js';
6
6
  import { addressFromMultisigPreImg, pksFromAddresses, } from './multisig.js';
7
+ import { signTransactionWithSigner } from './signing.js';
7
8
  export const MULTISIG_MERGE_LESSTHANTWO_ERROR_MSG = 'Not enough multisig transactions to merge. Need at least two';
8
9
  export const MULTISIG_MERGE_MISMATCH_ERROR_MSG = 'Cannot merge txs. txIDs differ';
9
10
  export const MULTISIG_MERGE_MISMATCH_AUTH_ADDR_MSG = 'Cannot merge txs. Auth addrs differ';
@@ -95,6 +96,22 @@ function partialSignTxn(transaction, { version, threshold, pks }, sk) {
95
96
  const myPk = nacl.keyPairFromSecretKey(sk).publicKey;
96
97
  return createMultisigTransactionWithSignature(transaction, { rawSig: transaction.rawSignTxn(sk), myPk }, { version, threshold, pks });
97
98
  }
99
+ async function partialSignTxnWithSigner(transaction, { version, threshold, pks }, txnSigner) {
100
+ const { stxn } = await signTransactionWithSigner(transaction, txnSigner);
101
+ const rawSig = stxn.sig;
102
+ if (rawSig === undefined) {
103
+ throw Error(`Expected TransactionSigner to return a signed transaction with a sig, but sig was empty`);
104
+ }
105
+ // A signer reports which key it signed with in `sgnr`, but omits it when that
106
+ // key is the transaction sender, so fall back to the sender. If neither is a
107
+ // member of the multisig, createMultisigTransactionWithSignature rejects it
108
+ // rather than attaching the signature to the wrong subsig.
109
+ const myPk = (stxn.sgnr ?? transaction.sender).publicKey;
110
+ return createMultisigTransactionWithSignature(transaction, {
111
+ rawSig,
112
+ myPk,
113
+ }, { version, threshold, pks });
114
+ }
98
115
  /**
99
116
  * partialSignWithMultisigSignature partially signs this transaction with an external raw multisig signature and returns
100
117
  * a partially-signed multisig transaction, encoded with msgpack as a typed array.
@@ -189,6 +206,8 @@ export function mergeMultisigTransactions(multisigTxnBlobs) {
189
206
  return encoding.encodeMsgpack(signedTxn);
190
207
  }
191
208
  /**
209
+ * @deprecated Use {@link signMultisigTransactionWithSigner} instead
210
+ *
192
211
  * signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
193
212
  * a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
194
213
  * multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendSignMultisigTransaction.
@@ -210,6 +229,35 @@ export function signMultisigTransaction(txn, { version, threshold, addrs }, sk)
210
229
  };
211
230
  }
212
231
  /**
232
+ * signMultisigTransactionWithSigner takes a raw transaction, a multisig preimage and a signer, and
233
+ * returns a multisig transaction: a blob representing a transaction and multisignature account
234
+ * preimage. The returned multisig txn can accumulate additional signatures through
235
+ * mergeMultisigTransactions or appendSignMultisigTransactionWithSigner.
236
+ *
237
+ * The signer must hold a key belonging to the multisig. That key is taken from the `sgnr` field of
238
+ * the transaction the signer returns, falling back to the transaction sender when `sgnr` is absent
239
+ * — which is the same convention signers use when writing it. Every signer this SDK provides
240
+ * follows it. Note that `AddressWithTransactionSigner.address` cannot be used for this: it is the
241
+ * address the signer sends transactions from, which for a rekeyed account is not the signing key.
242
+ *
243
+ * @param txn - the transaction to sign
244
+ * @param version - multisig version
245
+ * @param threshold - multisig threshold
246
+ * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
247
+ * @param txnSigner - the signer to sign with
248
+ * @returns an object with txID and blob properties
249
+ */
250
+ export async function signMultisigTransactionWithSigner(txn, { version, threshold, addrs }, txnSigner) {
251
+ const pks = pksFromAddresses(addrs);
252
+ const blob = await partialSignTxnWithSigner(txn, { version, threshold, pks }, txnSigner);
253
+ return {
254
+ txID: txn.txID(),
255
+ blob,
256
+ };
257
+ }
258
+ /**
259
+ * @deprecated Use {@link appendSignMultisigTransactionWithSigner} instead
260
+ *
213
261
  * appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
214
262
  * While we could derive public key preimagery from the partially-signed multisig transaction,
215
263
  * we ask the caller to pass it back in, to ensure they know what they are signing.
@@ -230,6 +278,33 @@ export function appendSignMultisigTransaction(multisigTxnBlob, { version, thresh
230
278
  blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
231
279
  };
232
280
  }
281
+ /**
282
+ * appendSignMultisigTransactionWithSigner takes a multisig transaction blob, and appends the given
283
+ * signer's signature to it. While we could derive public key preimagery from the partially-signed
284
+ * multisig transaction, we ask the caller to pass it back in, to ensure they know what they are
285
+ * signing.
286
+ *
287
+ * As with {@link signMultisigTransactionWithSigner}, the signer's key is taken from the `sgnr`
288
+ * field of the transaction it returns, falling back to the transaction sender when `sgnr` is
289
+ * absent.
290
+ *
291
+ * @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
292
+ * @param version - multisig version
293
+ * @param threshold - multisig threshold
294
+ * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
295
+ * @param txnSigner - the signer to sign with
296
+ * @returns an object with txID and blob properties
297
+ */
298
+ export async function appendSignMultisigTransactionWithSigner(multisigTxnBlob, { version, threshold, addrs }, txnSigner) {
299
+ const pks = pksFromAddresses(addrs);
300
+ // obtain underlying txn, sign it, and merge it
301
+ const multisigTxObj = encoding.decodeMsgpack(multisigTxnBlob, SignedTransaction);
302
+ const partialSignedBlob = await partialSignTxnWithSigner(multisigTxObj.txn, { version, threshold, pks }, txnSigner);
303
+ return {
304
+ txID: multisigTxObj.txn.txID(),
305
+ blob: mergeMultisigTransactions([multisigTxnBlob, partialSignedBlob]),
306
+ };
307
+ }
233
308
  /**
234
309
  * appendMultisigTransactionSignature takes a multisig transaction blob, and appends a given raw signature to it.
235
310
  * 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":"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"}
1
+ {"version":3,"file":"multisigSigning.js","sourceRoot":"","sources":["../../src/multisigSigning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { addressFromPQKey } from './encoding/address.js';
2
+ import { encodeMsgpack } from './encoding/encoding.js';
3
+ import { PQ_PROGRAM_TAG } from './logicsig.js';
4
+ import { SignedTransaction } from './signedTransaction.js';
5
+ import { concatArrays } from './utils/utils.js';
6
+ export function addressWithSignersFromRawPQSigner(signingKey, sendingAddress) {
7
+ const { pqPublicKey, pqSigner: rawSigner, pqScheme } = signingKey;
8
+ const { address: authAddress, salt } = addressFromPQKey(pqScheme, pqPublicKey);
9
+ const txnSigner = async (txnGroup, indexesToSign) => {
10
+ const stxns = [];
11
+ for (const index of indexesToSign) {
12
+ const txn = txnGroup[index];
13
+ // eslint-disable-next-line no-await-in-loop
14
+ const sig = await rawSigner(txn.bytesToSign());
15
+ const pqsig = {
16
+ sch: pqScheme,
17
+ slt: salt,
18
+ pk: pqPublicKey,
19
+ sig,
20
+ };
21
+ const stxn = new SignedTransaction({
22
+ txn,
23
+ pqsig,
24
+ sgnr: txn.sender.equals(authAddress) ? undefined : authAddress,
25
+ });
26
+ stxns.push(stxn);
27
+ }
28
+ return stxns.map((stxn) => encodeMsgpack(stxn));
29
+ };
30
+ const delegatedLsigSigner = async (lsig, msig) => {
31
+ if (msig) {
32
+ throw Error(`post-quantum scheme ${new TextDecoder().decode(pqScheme)} does not support multisig signing`);
33
+ }
34
+ const toBeSigned = new Uint8Array(concatArrays(PQ_PROGRAM_TAG, authAddress.publicKey, lsig.logic));
35
+ const sig = await rawSigner(toBeSigned);
36
+ const pqsig = {
37
+ sch: pqScheme,
38
+ slt: salt,
39
+ pk: pqPublicKey,
40
+ sig,
41
+ };
42
+ return { address: authAddress, pqsig };
43
+ };
44
+ return {
45
+ address: sendingAddress ?? authAddress,
46
+ txnSigner,
47
+ delegatedLsigSigner,
48
+ };
49
+ }
50
+ //# sourceMappingURL=pq-signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pq-signer.js","sourceRoot":"","sources":["../../src/pq-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAY,cAAc,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAS3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAQhD,MAAM,UAAU,iCAAiC,CAC/C,UAAwB,EACxB,cAAwB;IAExB,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;IAClE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,gBAAgB,CACrD,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,iBAAiB,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,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,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,YAAY,CAAC,cAAc,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,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
@@ -1,14 +1,15 @@
1
1
  import { encodeMsgpack, decodeMsgpack, } from './encoding/encoding.js';
2
2
  import { Transaction } from './transaction.js';
3
3
  import { LogicSig } from './logicsig.js';
4
- import { encodedMultiSigToEncodingData, encodedMultiSigFromEncodingData, ENCODED_MULTISIG_SCHEMA, } from './types/transactions/index.js';
4
+ import { encodedMultiSigToEncodingData, encodedMultiSigFromEncodingData, ENCODED_MULTISIG_SCHEMA, encodedPQSigToEncodingData, encodedPQSigFromEncodingData, ENCODED_PQSIG_SCHEMA, } from './types/transactions/index.js';
5
5
  import { AddressSchema, FixedLengthByteArraySchema, OptionalSchema, NamedMapSchema, allOmitEmpty, } from './encoding/schema/index.js';
6
6
  export class SignedTransaction {
7
- constructor({ txn, sig, msig, lsig, sgnr, }) {
7
+ constructor({ txn, sig, msig, lsig, pqsig, sgnr, }) {
8
8
  this.txn = txn;
9
9
  this.sig = sig;
10
10
  this.msig = msig;
11
11
  this.lsig = lsig;
12
+ this.pqsig = pqsig;
12
13
  this.sgnr = sgnr;
13
14
  let numberOfSigs = 0;
14
15
  if (sig)
@@ -17,6 +18,8 @@ export class SignedTransaction {
17
18
  numberOfSigs += 1;
18
19
  if (lsig)
19
20
  numberOfSigs += 1;
21
+ if (pqsig)
22
+ numberOfSigs += 1;
20
23
  if (numberOfSigs > 1) {
21
24
  throw new Error(`SignedTransaction must not have more than 1 signature. Got ${numberOfSigs}`);
22
25
  }
@@ -34,6 +37,10 @@ export class SignedTransaction {
34
37
  this.msig ? encodedMultiSigToEncodingData(this.msig) : undefined,
35
38
  ],
36
39
  ['lsig', this.lsig ? this.lsig.toEncodingData() : undefined],
40
+ [
41
+ 'pqsig',
42
+ this.pqsig ? encodedPQSigToEncodingData(this.pqsig) : undefined,
43
+ ],
37
44
  ['sgnr', this.sgnr],
38
45
  ]);
39
46
  }
@@ -50,6 +57,9 @@ export class SignedTransaction {
50
57
  lsig: data.get('lsig')
51
58
  ? LogicSig.fromEncodingData(data.get('lsig'))
52
59
  : undefined,
60
+ pqsig: data.get('pqsig')
61
+ ? encodedPQSigFromEncodingData(data.get('pqsig'))
62
+ : undefined,
53
63
  sgnr: data.get('sgnr'),
54
64
  });
55
65
  }
@@ -71,6 +81,10 @@ SignedTransaction.encodingSchema = new NamedMapSchema(allOmitEmpty([
71
81
  key: 'lsig',
72
82
  valueSchema: new OptionalSchema(LogicSig.encodingSchema),
73
83
  },
84
+ {
85
+ key: 'pqsig',
86
+ valueSchema: new OptionalSchema(ENCODED_PQSIG_SCHEMA),
87
+ },
74
88
  {
75
89
  key: 'sgnr',
76
90
  valueSchema: new OptionalSchema(new AddressSchema()),
@@ -1 +1 @@
1
- {"version":3,"file":"signedTransaction.js","sourceRoot":"","sources":["../../src/signedTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signedTransaction.js","sourceRoot":"","sources":["../../src/signedTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,aAAa,GACd,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAEL,6BAA6B,EAC7B,+BAA+B,EAC/B,uBAAuB,EAEvB,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,4BAA4B,CAAC;AAEpC,MAAM,OAAO,iBAAiB;IA4D5B,YAAY,EACV,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,GAQL;QACC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG;YAAE,YAAY,IAAI,CAAC,CAAC;QAC3B,IAAI,IAAI;YAAE,YAAY,IAAI,CAAC,CAAC;QAC5B,IAAI,IAAI;YAAE,YAAY,IAAI,CAAC,CAAC;QAC5B,IAAI,KAAK;YAAE,YAAY,IAAI,CAAC,CAAC;QAC7B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,8DAA8D,YAAY,EAAE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kDAAkD;IAC3C,iBAAiB;QACtB,OAAO,iBAAiB,CAAC,cAAc,CAAC;IAC1C,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,GAAG,CAAkB;YAC9B,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;YAClC,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YACjB;gBACE,MAAM;gBACN,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;aACjE;YACD,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5D;gBACE,OAAO;gBACP,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;aAChE;YACD,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;SACpB,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,IAAa;QAC1C,IAAI,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnD,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;gBACpB,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACjD,CAAC,CAAC,SAAS;YACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;;AArIe,gCAAc,GAAG,IAAI,cAAc,CACjD,YAAY,CAAC;IACX;QACE,GAAG,EAAE,KAAK;QACV,WAAW,EAAE,WAAW,CAAC,cAAc;KACxC;IACD;QACE,GAAG,EAAE,KAAK;QACV,WAAW,EAAE,IAAI,cAAc,CAAC,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC;KACpE;IACD;QACE,GAAG,EAAE,MAAM;QACX,WAAW,EAAE,IAAI,cAAc,CAAC,uBAAuB,CAAC;KACzD;IACD;QACE,GAAG,EAAE,MAAM;QACX,WAAW,EAAE,IAAI,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC;KACzD;IACD;QACE,GAAG,EAAE,OAAO;QACZ,WAAW,EAAE,IAAI,cAAc,CAAC,oBAAoB,CAAC;KACtD;IACD;QACE,GAAG,EAAE,MAAM;QACX,WAAW,EAAE,IAAI,cAAc,CAAC,IAAI,aAAa,EAAE,CAAC;KACrD;CACF,CAAC,CACH,CAAC;AA6GJ;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,iBAA6B;IAE7B,OAAO,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAAC,GAAgB;IAChE,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -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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"}
@@ -1,11 +1,87 @@
1
1
  import * as nacl from './nacl/naclWrappers.js';
2
- import { Address } from './encoding/address.js';
2
+ import { Address, addressFromPQSig } from './encoding/address.js';
3
3
  import * as encoding from './encoding/encoding.js';
4
+ import * as utils from './utils/utils.js';
4
5
  import { SignedTransaction } from './signedTransaction.js';
5
- import { LogicSigAccount } from './logicsig.js';
6
+ import { LogicSigAccount, sanityCheckProgram } from './logicsig.js';
6
7
  import { addressFromMultisigPreImg } from './multisig.js';
8
+ export const SIGN_BYTES_PREFIX = Uint8Array.from([77, 88]); // "MX"
9
+ /**
10
+ * @deprecated Use signTransactionWithSigner
11
+ *
12
+ * signTransaction takes an object with either payment or key registration fields and
13
+ * a secret key and returns a signed blob.
14
+ *
15
+ * Payment transaction fields: from, to, amount, fee, firstValid, lastValid, genesisHash,
16
+ * note(optional), GenesisID(optional), closeRemainderTo(optional)
17
+ *
18
+ * Key registration fields: fee, firstValid, lastValid, voteKey, selectionKey, voteFirst,
19
+ * voteLast, voteKeyDilution, genesisHash, note(optional), GenesisID(optional)
20
+ *
21
+ * 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.
22
+ * @param txn - object with either payment or key registration fields
23
+ * @param sk - Algorand Secret Key
24
+ * @returns object contains the binary signed transaction and its txID
25
+ */
26
+ export function signTransaction(txn, sk) {
27
+ return {
28
+ txID: txn.txID(),
29
+ blob: txn.signTxn(sk),
30
+ };
31
+ }
32
+ export async function signTransactionWithSigner(txn, signer) {
33
+ const [blob] = await signer([txn], [0]);
34
+ return {
35
+ blob,
36
+ txID: txn.txID(),
37
+ stxn: encoding.decodeMsgpack(blob, SignedTransaction),
38
+ };
39
+ }
40
+ /**
41
+ * signBytes takes arbitrary bytes and a secret key, prepends the bytes with "MX" for domain separation, signs the bytes
42
+ * with the private key, and returns the signature.
43
+ * @param bytes - Uint8array
44
+ * @param sk - Algorand secret key
45
+ * @returns binary signature
46
+ */
47
+ export function signBytes(bytes, sk) {
48
+ const toBeSigned = utils.concatArrays(SIGN_BYTES_PREFIX, bytes);
49
+ const sig = nacl.sign(toBeSigned, sk);
50
+ return sig;
51
+ }
52
+ /**
53
+ * verifyBytes takes array of bytes, an address, and a signature and verifies if the signature is correct for the public
54
+ * key and the bytes (the bytes should have been signed with "MX" prepended for domain separation).
55
+ * @param bytes - Uint8Array
56
+ * @param signature - binary signature
57
+ * @param addr - string address
58
+ * @returns bool
59
+ */
60
+ export function verifyBytes(bytes, signature, addr) {
61
+ const toBeVerified = utils.concatArrays(SIGN_BYTES_PREFIX, bytes);
62
+ const addrObj = typeof addr === 'string' ? Address.fromString(addr) : addr;
63
+ return nacl.verify(toBeVerified, signature, addrObj.publicKey);
64
+ }
7
65
  function signLogicSigTransactionWithAddress(txn, lsig, lsigAddress) {
8
- if (!lsig.verify(lsigAddress.publicKey)) {
66
+ // `lsig.verify` enforces this for the non-PQ paths, but the PQ path below
67
+ // skips it, so check it up front for every path.
68
+ const sigCount = [lsig.sig, lsig.msig, lsig.lmsig, lsig.pqsig].filter(Boolean).length;
69
+ if (sigCount > 1) {
70
+ throw new Error('LogicSig has too many signatures. At most one of sig, msig, lmsig, or pqsig may be present');
71
+ }
72
+ if (lsig.pqsig) {
73
+ // This SDK cannot validate the post-quantum signature itself, so it checks
74
+ // what it can and leaves the signature to the network: the program must be
75
+ // well-formed, and the signature's scheme, salt and public key must derive
76
+ // the delegating address.
77
+ try {
78
+ sanityCheckProgram(lsig.logic);
79
+ }
80
+ catch (e) {
81
+ throw new Error(`Logic signature verification failed. Ensure the program is valid: ${e.message}`);
82
+ }
83
+ }
84
+ else if (!lsig.verify(lsigAddress.publicKey)) {
9
85
  throw new Error('Logic signature verification failed. Ensure the program and signature are valid.');
10
86
  }
11
87
  let sgnr;
@@ -40,11 +116,18 @@ export function signLogicSigTransactionObject(txn, lsigObject) {
40
116
  }
41
117
  else {
42
118
  lsig = lsigObject;
43
- if (lsig.sig) {
44
- // For a LogicSig with a non-multisig delegating account, we cannot derive
45
- // the address of that account from only its signature, so assume the
46
- // delegating account is the sender. If that's not the case, the signing
47
- // will fail.
119
+ if (lsig.pqsig) {
120
+ // A PQ signature carries the scheme, salt and public key of the
121
+ // delegating account, so its address is derivable. This is what lets a
122
+ // bare PQ-delegated LogicSig authorize a transaction whose sender was
123
+ // rekeyed to the delegating account.
124
+ lsigAddress = addressFromPQSig(lsig.pqsig);
125
+ }
126
+ else if (lsig.sig) {
127
+ // For an ed25519 LogicSig with a non-multisig delegating account, we
128
+ // cannot derive the address of that account from only its signature, so
129
+ // assume the delegating account is the sender. If that's not the case,
130
+ // the signing will fail.
48
131
  lsigAddress = new Address(txn.sender.publicKey);
49
132
  }
50
133
  else if (lsig.lmsig) {
@@ -1 +1 @@
1
- {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAY,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,SAAS,kCAAkC,CACzC,GAAgB,EAChB,IAAc,EACd,WAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,IAAyB,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClE,IAAI,GAAG,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC;QACtC,IAAI;QACJ,GAAG;QACH,IAAI;KACL,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QAChB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAC3C,GAAgB,EAChB,UAAsC;IAEtC,IAAI,IAAc,CAAC;IACnB,IAAI,WAAoB,CAAC;IAEzB,IAAI,UAAU,YAAY,eAAe,EAAE,CAAC;QAC1C,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACvB,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,UAAU,CAAC;QAElB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,0EAA0E;YAC1E,qEAAqE;YACrE,wEAAwE;YACxE,aAAa;YACb,WAAW,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG;gBACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG;gBACzB,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;aAClD,CAAC;YACF,WAAW,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,kCAAkC,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAgB,EAChB,UAAsC;IAEtC,OAAO,6BAA6B,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"signing.js","sourceRoot":"","sources":["../../src/signing.ts"],"names":[],"mappings":"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"}
@@ -664,12 +664,20 @@ export class Transaction {
664
664
  toByte() {
665
665
  return encoding.encodeMsgpack(this);
666
666
  }
667
- // returns the raw signature
667
+ /**
668
+ * @deprecated Use `(await signTransactionWithSigner(txn, signer)).stxn.sig` instead
669
+ *
670
+ * returns the raw signature
671
+ *
672
+ */
668
673
  rawSignTxn(sk) {
669
674
  const toBeSigned = this.bytesToSign();
670
675
  const sig = nacl.sign(toBeSigned, sk);
671
676
  return sig;
672
677
  }
678
+ /**
679
+ * @deprecated Use `await signTransactionWithSigner(txn, signer)`
680
+ */
673
681
  signTxn(sk) {
674
682
  // TODO: deprecate in favor of SignedTransaction class
675
683
  const keypair = nacl.keyPairFromSecretKey(sk);