algosdk 2.0.0 → 2.2.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/abi/abi_type.js +6 -5
- package/dist/cjs/abi/abi_type.js.map +1 -1
- package/dist/cjs/bid.js +6 -5
- package/dist/cjs/bid.js.map +1 -1
- package/dist/cjs/client/client.js +4 -3
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/client/kmd.js +12 -11
- package/dist/cjs/client/kmd.js.map +1 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js +2 -1
- package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +32 -0
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/compile.js +2 -1
- package/dist/cjs/client/v2/algod/compile.js.map +1 -1
- package/dist/cjs/client/v2/algod/disassemble.js +46 -0
- package/dist/cjs/client/v2/algod/disassemble.js.map +1 -0
- package/dist/cjs/client/v2/algod/dryrun.js +2 -1
- package/dist/cjs/client/v2/algod/dryrun.js.map +1 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js +2 -1
- package/dist/cjs/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +141 -21
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js +2 -1
- package/dist/cjs/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/cjs/client/v2/algod/simulateTransaction.js +88 -0
- package/dist/cjs/client/v2/algod/simulateTransaction.js.map +1 -0
- package/dist/cjs/client/v2/basemodel.js +3 -2
- package/dist/cjs/client/v2/basemodel.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +2 -1
- package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js +2 -1
- package/dist/cjs/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +39 -38
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/composer.js +75 -23
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/dryrun.js +6 -5
- package/dist/cjs/dryrun.js.map +1 -1
- package/dist/cjs/encoding/address.js +2 -1
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/encoding/bigint.js +2 -1
- package/dist/cjs/encoding/bigint.js.map +1 -1
- package/dist/cjs/encoding/encoding.js +14 -3
- package/dist/cjs/encoding/encoding.js.map +1 -1
- package/dist/cjs/encoding/uint64.js +14 -8
- package/dist/cjs/encoding/uint64.js.map +1 -1
- package/dist/cjs/group.js +6 -5
- package/dist/cjs/group.js.map +1 -1
- package/dist/cjs/logicsig.js +22 -8
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +7 -5
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/multisig.js +6 -5
- package/dist/cjs/multisig.js.map +1 -1
- package/dist/cjs/signer.js +17 -1
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/transaction.js +81 -64
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +0 -3
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/utils/utils.js +5 -1
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/esm/abi/abi_type.js +1 -0
- package/dist/esm/abi/abi_type.js.map +1 -1
- package/dist/esm/bid.js +1 -0
- package/dist/esm/bid.js.map +1 -1
- package/dist/esm/client/client.js +1 -0
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/client/kmd.js +1 -0
- package/dist/esm/client/kmd.js.map +1 -1
- package/dist/esm/client/urlTokenBaseHTTPClient.js +1 -0
- package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +32 -0
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/compile.js +1 -0
- package/dist/esm/client/v2/algod/compile.js.map +1 -1
- package/dist/esm/client/v2/algod/disassemble.js +38 -0
- package/dist/esm/client/v2/algod/disassemble.js.map +1 -0
- package/dist/esm/client/v2/algod/dryrun.js +1 -0
- package/dist/esm/client/v2/algod/dryrun.js.map +1 -1
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js +1 -0
- package/dist/esm/client/v2/algod/getApplicationBoxByName.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +117 -0
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/algod/sendRawTransaction.js +1 -0
- package/dist/esm/client/v2/algod/sendRawTransaction.js.map +1 -1
- package/dist/esm/client/v2/algod/simulateTransaction.js +57 -0
- package/dist/esm/client/v2/algod/simulateTransaction.js.map +1 -0
- package/dist/esm/client/v2/basemodel.js +1 -0
- package/dist/esm/client/v2/basemodel.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +1 -0
- package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js +1 -0
- package/dist/esm/client/v2/indexer/lookupApplicationBoxByIDandName.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +1 -0
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/composer.js +75 -23
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/dryrun.js +1 -0
- package/dist/esm/dryrun.js.map +1 -1
- package/dist/esm/encoding/address.js +1 -0
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/encoding/bigint.js +1 -0
- package/dist/esm/encoding/bigint.js.map +1 -1
- package/dist/esm/encoding/encoding.js +12 -2
- package/dist/esm/encoding/encoding.js.map +1 -1
- package/dist/esm/encoding/uint64.js +14 -8
- package/dist/esm/encoding/uint64.js.map +1 -1
- package/dist/esm/group.js +1 -0
- package/dist/esm/group.js.map +1 -1
- package/dist/esm/logicsig.js +13 -0
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +2 -1
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/multisig.js +1 -0
- package/dist/esm/multisig.js.map +1 -1
- package/dist/esm/signer.js +15 -0
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/transaction.js +16 -0
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +0 -3
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/utils/utils.js +5 -1
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/types/client/v2/algod/algod.d.ts +28 -0
- package/dist/types/client/v2/algod/disassemble.d.ts +20 -0
- package/dist/types/client/v2/algod/models/types.d.ts +103 -0
- package/dist/types/client/v2/algod/simulateTransaction.d.ts +19 -0
- package/dist/types/client/v2/basemodel.d.ts +0 -3
- package/dist/types/composer.d.ts +35 -2
- package/dist/types/encoding/encoding.d.ts +7 -0
- package/dist/types/logicsig.d.ts +8 -0
- package/dist/types/main.d.ts +1 -1
- package/dist/types/signer.d.ts +5 -0
- package/dist/types/transaction.d.ts +9 -0
- package/dist/types/types/transactions/builder.d.ts +1 -1
- package/dist/types/types/transactions/encoded.d.ts +1 -1
- package/dist/types/types/utils.d.ts +1 -1
- package/package.json +2 -3
- package/src/abi/abi_type.ts +1 -0
- package/src/bid.ts +1 -0
- package/src/client/client.ts +1 -0
- package/src/client/kmd.ts +1 -0
- package/src/client/urlTokenBaseHTTPClient.ts +1 -0
- package/src/client/v2/algod/algod.ts +34 -0
- package/src/client/v2/algod/compile.ts +1 -0
- package/src/client/v2/algod/disassemble.ts +46 -0
- package/src/client/v2/algod/dryrun.ts +1 -0
- package/src/client/v2/algod/getApplicationBoxByName.ts +1 -0
- package/src/client/v2/algod/models/types.ts +223 -0
- package/src/client/v2/algod/sendRawTransaction.ts +1 -0
- package/src/client/v2/algod/simulateTransaction.ts +74 -0
- package/src/client/v2/basemodel.ts +2 -0
- package/src/client/v2/indexer/lookupAccountTransactions.ts +1 -0
- package/src/client/v2/indexer/lookupApplicationBoxByIDandName.ts +1 -0
- package/src/client/v2/indexer/models/types.ts +1 -0
- package/src/composer.ts +130 -34
- package/src/dryrun.ts +1 -0
- package/src/encoding/address.ts +1 -0
- package/src/encoding/bigint.ts +2 -0
- package/src/encoding/encoding.ts +13 -2
- package/src/encoding/uint64.ts +16 -10
- package/src/group.ts +1 -0
- package/src/logicsig.ts +24 -0
- package/src/main.ts +2 -0
- package/src/multisig.ts +1 -0
- package/src/signer.ts +18 -1
- package/src/transaction.ts +19 -0
- package/src/types/transactions/builder.ts +4 -4
- package/src/types/transactions/encoded.ts +2 -0
- package/src/types/utils.ts +1 -1
- package/src/utils/utils.ts +3 -0
package/src/logicsig.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import * as nacl from './nacl/naclWrappers';
|
|
2
3
|
import * as address from './encoding/address';
|
|
3
4
|
import * as encoding from './encoding/encoding';
|
|
@@ -495,6 +496,29 @@ export function tealSign(
|
|
|
495
496
|
return nacl.sign(toBeSigned, sk);
|
|
496
497
|
}
|
|
497
498
|
|
|
499
|
+
/**
|
|
500
|
+
* verifyTealSign verifies a signature as would the ed25519verify opcode
|
|
501
|
+
* @param data - buffer with original signed data
|
|
502
|
+
* @param programHash - string representation of teal program hash (= contract address for LogicSigs)
|
|
503
|
+
* @param sig - uint8array with the signature to verify (produced by tealSign/tealSignFromProgram)
|
|
504
|
+
* @param pk - uint8array with public key to verify against
|
|
505
|
+
*/
|
|
506
|
+
export function verifyTealSign(
|
|
507
|
+
data: Uint8Array | Buffer,
|
|
508
|
+
programHash: string,
|
|
509
|
+
sig: Uint8Array,
|
|
510
|
+
pk: Uint8Array
|
|
511
|
+
) {
|
|
512
|
+
const parts = utils.concatArrays(
|
|
513
|
+
address.decodeAddress(programHash).publicKey,
|
|
514
|
+
data
|
|
515
|
+
);
|
|
516
|
+
const toBeSigned = Buffer.from(
|
|
517
|
+
utils.concatArrays(SIGN_PROGRAM_DATA_PREFIX, parts)
|
|
518
|
+
);
|
|
519
|
+
return nacl.verify(toBeSigned, sig, pk);
|
|
520
|
+
}
|
|
521
|
+
|
|
498
522
|
/**
|
|
499
523
|
* tealSignFromProgram creates a signature compatible with ed25519verify opcode from raw program bytes
|
|
500
524
|
* @param sk - uint8array with secret key
|
package/src/main.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import * as nacl from './nacl/naclWrappers';
|
|
2
3
|
import * as address from './encoding/address';
|
|
3
4
|
import * as encoding from './encoding/encoding';
|
|
@@ -160,6 +161,7 @@ export {
|
|
|
160
161
|
logicSigFromByte,
|
|
161
162
|
tealSign,
|
|
162
163
|
tealSignFromProgram,
|
|
164
|
+
verifyTealSign,
|
|
163
165
|
} from './logicsig';
|
|
164
166
|
export {
|
|
165
167
|
signMultisigTransaction,
|
package/src/multisig.ts
CHANGED
package/src/signer.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Transaction } from './transaction';
|
|
1
|
+
import { encodeUnsignedSimulateTransaction, Transaction } from './transaction';
|
|
2
2
|
import Account from './types/account';
|
|
3
3
|
import { LogicSigAccount, signLogicSigTransactionObject } from './logicsig';
|
|
4
4
|
import { MultisigMetadata } from './types/multisig';
|
|
@@ -80,6 +80,23 @@ export function makeMultiSigAccountTransactionSigner(
|
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Create a makeEmptyTransactionSigner that does not specify any signer or
|
|
85
|
+
* signing capabilities. This should only be used to simulate transactions.
|
|
86
|
+
*/
|
|
87
|
+
export function makeEmptyTransactionSigner(): TransactionSigner {
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
89
|
+
return (txnGroup: Transaction[], indexesToSign: number[]) => {
|
|
90
|
+
const unsigned: Uint8Array[] = [];
|
|
91
|
+
|
|
92
|
+
for (const index of indexesToSign) {
|
|
93
|
+
unsigned.push(encodeUnsignedSimulateTransaction(txnGroup[index]));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return Promise.resolve(unsigned);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
83
100
|
/** Represents an unsigned transactions and a signer that can authorize that transaction. */
|
|
84
101
|
export interface TransactionWithSigner {
|
|
85
102
|
/** An unsigned transaction */
|
package/src/transaction.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from 'buffer';
|
|
1
2
|
import base32 from 'hi-base32';
|
|
2
3
|
import * as address from './encoding/address';
|
|
3
4
|
import * as encoding from './encoding/encoding';
|
|
@@ -1277,6 +1278,24 @@ export class Transaction implements TransactionStorageStructure {
|
|
|
1277
1278
|
}
|
|
1278
1279
|
}
|
|
1279
1280
|
|
|
1281
|
+
/**
|
|
1282
|
+
* encodeUnsignedSimulateTransaction takes a txnBuilder.Transaction object,
|
|
1283
|
+
* converts it into a SignedTransaction-like object, and converts it to a Buffer.
|
|
1284
|
+
*
|
|
1285
|
+
* Note: this function should only be used to simulate unsigned transactions.
|
|
1286
|
+
*
|
|
1287
|
+
* @param transactionObject - Transaction object to simulate.
|
|
1288
|
+
*/
|
|
1289
|
+
export function encodeUnsignedSimulateTransaction(
|
|
1290
|
+
transactionObject: Transaction
|
|
1291
|
+
) {
|
|
1292
|
+
const objToEncode: EncodedSignedTransaction = {
|
|
1293
|
+
sig: null,
|
|
1294
|
+
txn: transactionObject.get_obj_for_encoding(),
|
|
1295
|
+
};
|
|
1296
|
+
return encoding.rawEncode(objToEncode);
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1280
1299
|
/**
|
|
1281
1300
|
* encodeUnsignedTransaction takes a completed txnBuilder.Transaction object, such as from the makeFoo
|
|
1282
1301
|
* family of transactions, and converts it to a Buffer
|
|
@@ -45,10 +45,10 @@ export type TransactionBase =
|
|
|
45
45
|
* - A: Additional parameters on top of the base transaction parameters
|
|
46
46
|
* - O: A set of overwrites for transaction parameters
|
|
47
47
|
*/
|
|
48
|
-
export type ConstructTransaction<
|
|
49
|
-
|
|
50
|
-
O
|
|
51
|
-
>;
|
|
48
|
+
export type ConstructTransaction<
|
|
49
|
+
A = {},
|
|
50
|
+
O extends Partial<TransactionBase & A> = {}
|
|
51
|
+
> = DistributiveOverwrite<TransactionBase & A, O>;
|
|
52
52
|
|
|
53
53
|
/**
|
|
54
54
|
* Only accept transaction objects that include suggestedParams as an object
|
package/src/types/utils.ts
CHANGED
|
@@ -27,7 +27,7 @@ export type Overwrite<T, U extends Partial<T>> = Pick<
|
|
|
27
27
|
/**
|
|
28
28
|
* Same as Overwrite, but will distribute the Overwrite over unions
|
|
29
29
|
*/
|
|
30
|
-
export type DistributiveOverwrite<T, K
|
|
30
|
+
export type DistributiveOverwrite<T, K extends Partial<T>> = T extends unknown
|
|
31
31
|
? Overwrite<T, K>
|
|
32
32
|
: never;
|
|
33
33
|
|
package/src/utils/utils.ts
CHANGED
|
@@ -114,8 +114,11 @@ export function removeUndefinedProperties(
|
|
|
114
114
|
*/
|
|
115
115
|
export function isNode() {
|
|
116
116
|
return (
|
|
117
|
+
// @ts-ignore
|
|
117
118
|
typeof process === 'object' &&
|
|
119
|
+
// @ts-ignore
|
|
118
120
|
typeof process.versions === 'object' &&
|
|
121
|
+
// @ts-ignore
|
|
119
122
|
typeof process.versions.node !== 'undefined'
|
|
120
123
|
);
|
|
121
124
|
}
|