algosdk 1.12.0 → 1.13.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 (134) 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/src/abi/abi_type.js +693 -0
  5. package/dist/cjs/src/abi/abi_type.js.map +1 -0
  6. package/dist/cjs/src/abi/contract.js +27 -0
  7. package/dist/cjs/src/abi/contract.js.map +1 -0
  8. package/dist/cjs/src/abi/index.js +19 -0
  9. package/dist/cjs/src/abi/index.js.map +1 -0
  10. package/dist/cjs/src/abi/interface.js +23 -0
  11. package/dist/cjs/src/abi/interface.js.map +1 -0
  12. package/dist/cjs/src/abi/method.js +114 -0
  13. package/dist/cjs/src/abi/method.js.map +1 -0
  14. package/dist/cjs/src/abi/reference.js +25 -0
  15. package/dist/cjs/src/abi/reference.js.map +1 -0
  16. package/dist/cjs/src/abi/transaction.js +52 -0
  17. package/dist/cjs/src/abi/transaction.js.map +1 -0
  18. package/dist/cjs/src/client/baseHTTPClient.js +3 -0
  19. package/dist/cjs/src/client/baseHTTPClient.js.map +1 -0
  20. package/dist/cjs/src/client/client.js +164 -104
  21. package/dist/cjs/src/client/client.js.map +1 -1
  22. package/dist/cjs/src/client/urlTokenBaseHTTPClient.js +138 -0
  23. package/dist/cjs/src/client/urlTokenBaseHTTPClient.js.map +1 -0
  24. package/dist/cjs/src/client/v2/algod/algod.js +262 -9
  25. package/dist/cjs/src/client/v2/algod/algod.js.map +1 -1
  26. package/dist/cjs/src/client/v2/algod/models/types.js +2 -2
  27. package/dist/cjs/src/client/v2/indexer/indexer.js +160 -3
  28. package/dist/cjs/src/client/v2/indexer/indexer.js.map +1 -1
  29. package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js +98 -6
  30. package/dist/cjs/src/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  31. package/dist/cjs/src/client/v2/serviceClient.js +17 -8
  32. package/dist/cjs/src/client/v2/serviceClient.js.map +1 -1
  33. package/dist/cjs/src/composer.js +439 -0
  34. package/dist/cjs/src/composer.js.map +1 -0
  35. package/dist/cjs/src/dryrun.js +105 -0
  36. package/dist/cjs/src/dryrun.js.map +1 -0
  37. package/dist/cjs/src/encoding/bigint.js +38 -0
  38. package/dist/cjs/src/encoding/bigint.js.map +1 -0
  39. package/dist/cjs/src/logicsig.js +2 -2
  40. package/dist/cjs/src/logicsig.js.map +1 -1
  41. package/dist/cjs/src/main.js +12 -87
  42. package/dist/cjs/src/main.js.map +1 -1
  43. package/dist/cjs/src/makeTxn.js +29 -1
  44. package/dist/cjs/src/makeTxn.js.map +1 -1
  45. package/dist/cjs/src/multisig.js +77 -2
  46. package/dist/cjs/src/multisig.js.map +1 -1
  47. package/dist/cjs/src/signer.js +66 -0
  48. package/dist/cjs/src/signer.js.map +1 -0
  49. package/dist/cjs/src/transaction.js +8 -4
  50. package/dist/cjs/src/transaction.js.map +1 -1
  51. package/dist/cjs/src/types/intDecoding.js +0 -2
  52. package/dist/cjs/src/types/intDecoding.js.map +1 -1
  53. package/dist/cjs/src/types/transactions/base.js +0 -1
  54. package/dist/cjs/src/types/transactions/base.js.map +1 -1
  55. package/dist/cjs/src/wait.js +53 -0
  56. package/dist/cjs/src/wait.js.map +1 -0
  57. package/dist/esm/src/abi/abi_type.js +680 -0
  58. package/dist/esm/src/abi/abi_type.js.map +1 -0
  59. package/dist/esm/src/abi/contract.js +23 -0
  60. package/dist/esm/src/abi/contract.js.map +1 -0
  61. package/dist/esm/src/abi/index.js +7 -0
  62. package/dist/esm/src/abi/index.js.map +1 -0
  63. package/dist/esm/src/abi/interface.js +19 -0
  64. package/dist/esm/src/abi/interface.js.map +1 -0
  65. package/dist/esm/src/abi/method.js +110 -0
  66. package/dist/esm/src/abi/method.js.map +1 -0
  67. package/dist/esm/src/abi/reference.js +21 -0
  68. package/dist/esm/src/abi/reference.js.map +1 -0
  69. package/dist/esm/src/abi/transaction.js +47 -0
  70. package/dist/esm/src/abi/transaction.js.map +1 -0
  71. package/dist/esm/src/client/baseHTTPClient.js +2 -0
  72. package/dist/esm/src/client/baseHTTPClient.js.map +1 -0
  73. package/dist/esm/src/client/client.js +164 -101
  74. package/dist/esm/src/client/client.js.map +1 -1
  75. package/dist/esm/src/client/urlTokenBaseHTTPClient.js +112 -0
  76. package/dist/esm/src/client/urlTokenBaseHTTPClient.js.map +1 -0
  77. package/dist/esm/src/client/v2/algod/algod.js +262 -9
  78. package/dist/esm/src/client/v2/algod/algod.js.map +1 -1
  79. package/dist/esm/src/client/v2/algod/models/types.js +2 -2
  80. package/dist/esm/src/client/v2/indexer/indexer.js +160 -3
  81. package/dist/esm/src/client/v2/indexer/indexer.js.map +1 -1
  82. package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js +98 -6
  83. package/dist/esm/src/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  84. package/dist/esm/src/client/v2/serviceClient.js +17 -8
  85. package/dist/esm/src/client/v2/serviceClient.js.map +1 -1
  86. package/dist/esm/src/composer.js +435 -0
  87. package/dist/esm/src/composer.js.map +1 -0
  88. package/dist/esm/src/dryrun.js +101 -0
  89. package/dist/esm/src/dryrun.js.map +1 -0
  90. package/dist/esm/src/encoding/bigint.js +33 -0
  91. package/dist/esm/src/encoding/bigint.js.map +1 -0
  92. package/dist/esm/src/logicsig.js +2 -2
  93. package/dist/esm/src/logicsig.js.map +1 -1
  94. package/dist/esm/src/main.js +6 -82
  95. package/dist/esm/src/main.js.map +1 -1
  96. package/dist/esm/src/makeTxn.js +27 -0
  97. package/dist/esm/src/makeTxn.js.map +1 -1
  98. package/dist/esm/src/multisig.js +73 -1
  99. package/dist/esm/src/multisig.js.map +1 -1
  100. package/dist/esm/src/signer.js +59 -0
  101. package/dist/esm/src/signer.js.map +1 -0
  102. package/dist/esm/src/transaction.js +8 -4
  103. package/dist/esm/src/transaction.js.map +1 -1
  104. package/dist/esm/src/types/intDecoding.js +0 -2
  105. package/dist/esm/src/types/intDecoding.js.map +1 -1
  106. package/dist/esm/src/types/transactions/base.js +0 -1
  107. package/dist/esm/src/types/transactions/base.js.map +1 -1
  108. package/dist/esm/src/wait.js +49 -0
  109. package/dist/esm/src/wait.js.map +1 -0
  110. package/dist/types/src/abi/abi_type.d.ts +102 -0
  111. package/dist/types/src/abi/contract.d.ts +21 -0
  112. package/dist/types/src/abi/index.d.ts +6 -0
  113. package/dist/types/src/abi/interface.d.ts +13 -0
  114. package/dist/types/src/abi/method.d.ts +39 -0
  115. package/dist/types/src/abi/reference.d.ts +15 -0
  116. package/dist/types/src/abi/transaction.d.ts +33 -0
  117. package/dist/types/src/client/baseHTTPClient.d.ts +41 -0
  118. package/dist/types/src/client/client.d.ts +66 -31
  119. package/dist/types/src/client/kmd.d.ts +1 -1
  120. package/dist/types/src/client/urlTokenBaseHTTPClient.d.ts +44 -0
  121. package/dist/types/src/client/v2/algod/algod.d.ts +263 -9
  122. package/dist/types/src/client/v2/algod/models/types.d.ts +4 -4
  123. package/dist/types/src/client/v2/indexer/indexer.d.ts +161 -3
  124. package/dist/types/src/client/v2/indexer/lookupAssetBalances.d.ts +98 -0
  125. package/dist/types/src/client/v2/serviceClient.d.ts +6 -2
  126. package/dist/types/src/composer.d.ts +160 -0
  127. package/dist/types/src/dryrun.d.ts +20 -0
  128. package/dist/types/src/encoding/bigint.d.ts +14 -0
  129. package/dist/types/src/main.d.ts +7 -45
  130. package/dist/types/src/makeTxn.d.ts +18 -1
  131. package/dist/types/src/multisig.d.ts +39 -1
  132. package/dist/types/src/signer.d.ts +40 -0
  133. package/dist/types/src/wait.d.ts +11 -0
  134. package/package.json +6 -4
@@ -3,12 +3,110 @@ import HTTPClient from '../../client';
3
3
  import IntDecoding from '../../../types/intDecoding';
4
4
  export default class LookupAssetBalances extends JSONRequest {
5
5
  private index;
6
+ /**
7
+ * Returns the list of accounts which hold the given asset and their balance.
8
+ *
9
+ * #### Example
10
+ * ```typescript
11
+ * const assetId = 163650;
12
+ * const assetBalances = await indexerClient.lookupAssetBalances(assetId).do();
13
+ * ```
14
+ *
15
+ * [Response data schema details](https://developer.algorand.org/docs/rest-apis/indexer/#get-v2assetsasset-idbalances)
16
+ * @param index - The asset ID to look up.
17
+ */
6
18
  constructor(c: HTTPClient, intDecoding: IntDecoding, index: number);
7
19
  path(): string;
20
+ /**
21
+ * Add a limit for filter.
22
+ *
23
+ * #### Example
24
+ * ```typescript
25
+ * const assetId = 163650;
26
+ * const maxResults = 20;
27
+ * const assetBalances = await indexerClient
28
+ * .lookupAssetBalances(assetId)
29
+ * .limit(maxResults)
30
+ * .do();
31
+ * ```
32
+ *
33
+ * @param limit - maximum number of results to return.
34
+ */
8
35
  limit(limit: number): this;
36
+ /**
37
+ * Specify round to filter with.
38
+ *
39
+ * #### Example
40
+ * ```typescript
41
+ * const assetId = 163650;
42
+ * const targetBlock = 18309917;
43
+ * const assetBalances = await indexerClient
44
+ * .lookupAssetBalances(assetId)
45
+ * .round(targetBlock)
46
+ * .do();
47
+ * ```
48
+ * @param round
49
+ */
9
50
  round(round: number): this;
51
+ /**
52
+ * Filtered results should have an asset balance greater than this value.
53
+ *
54
+ * #### Example
55
+ * ```typescript
56
+ * const assetId = 163650;
57
+ * const minBalance = 1000000;
58
+ * const assetBalances = await indexerClient
59
+ * .lookupAssetBalances(assetId)
60
+ * .currencyGreaterThan(minBalance)
61
+ * .do();
62
+ * ```
63
+ * @param greater
64
+ */
10
65
  currencyGreaterThan(greater: number): this;
66
+ /**
67
+ * Filtered results should have an asset balance less than this value.
68
+ *
69
+ * #### Example
70
+ * ```typescript
71
+ * const assetId = 163650;
72
+ * const maxBalance = 2000000;
73
+ * const assetBalances = await indexerClient
74
+ * .lookupAssetBalances(assetId)
75
+ * .currencyLessThan(maxBalance)
76
+ * .do();
77
+ * ```
78
+ * @param lesser
79
+ */
11
80
  currencyLessThan(lesser: number): this;
81
+ /**
82
+ * Specify the next page of results.
83
+ *
84
+ * #### Example
85
+ * ```typescript
86
+ * const assetId = 163650;
87
+ * const maxResults = 20;
88
+ * const nextToken = "APA6C7C3NCANRPIBUWQOF7WSKLJMK6RPQUVFLLDV4U5WCQE4DEF26D4E3E";
89
+ * const assetBalances = await indexerClient
90
+ * .lookupAssetBalances(assetId)
91
+ * .limit(maxResults)
92
+ * .next(nextToken)
93
+ * .do();
94
+ * ```
95
+ * @param nextToken - provided by the previous results.
96
+ */
12
97
  nextToken(nextToken: string): this;
98
+ /**
99
+ * Include all items including closed accounts, deleted applications, destroyed assets, opted-out asset holdings, and closed-out application localstates
100
+ *
101
+ * #### Example
102
+ * ```typescript
103
+ * const assetId = 163650;
104
+ * const assetBalances = await indexerClient
105
+ * .lookupAssetBalances(assetId)
106
+ * .includeAll(false)
107
+ * .do();
108
+ * ```
109
+ * @param value
110
+ */
13
111
  includeAll(value?: boolean): this;
14
112
  }
@@ -1,13 +1,17 @@
1
- import HTTPClient, { TokenHeader } from '../client';
1
+ import HTTPClient from '../client';
2
2
  import IntDecoding from '../../types/intDecoding';
3
+ import { BaseHTTPClient } from '../baseHTTPClient';
4
+ import { TokenHeader } from '../urlTokenBaseHTTPClient';
3
5
  export declare type TokenHeaderIdentifier = 'X-Indexer-API-Token' | 'X-KMD-API-Token' | 'X-Algo-API-Token' | string;
4
6
  /**
5
7
  * Abstract service client to encapsulate shared AlgodClient and IndexerClient logic
6
8
  */
7
9
  export default abstract class ServiceClient {
10
+ /** @ignore */
8
11
  c: HTTPClient;
12
+ /** @ignore */
9
13
  intDecoding: IntDecoding;
10
- constructor(tokenHeaderIdentifier: TokenHeaderIdentifier, tokenHeaderOrStr: string | TokenHeader, baseServer: string, port?: string | number, defaultHeaders?: Record<string, any>);
14
+ constructor(tokenHeaderIdentifier: TokenHeaderIdentifier, tokenHeaderOrStrOrBaseClient: string | TokenHeader | BaseHTTPClient, baseServer: string, port?: string | number, defaultHeaders?: Record<string, any>);
11
15
  /**
12
16
  * Set the default int decoding method for all JSON requests this client creates.
13
17
  * @param method - \{"default" | "safe" | "mixed" | "bigint"\} method The method to use when parsing the
@@ -0,0 +1,160 @@
1
+ import { ABIValue, ABIMethod } from './abi';
2
+ import Algodv2 from './client/v2/algod/algod';
3
+ import { TransactionSigner, TransactionWithSigner } from './signer';
4
+ import { OnApplicationComplete, SuggestedParams } from './types/transactions/base';
5
+ export declare type ABIArgument = ABIValue | TransactionWithSigner;
6
+ /** Represents the output from a successful ABI method call. */
7
+ export interface ABIResult {
8
+ /** The TxID of the transaction that invoked the ABI method call. */
9
+ txID: string;
10
+ /**
11
+ * The raw bytes of the return value from the ABI method call. This will be empty if the method
12
+ * does not return a value (return type "void").
13
+ */
14
+ rawReturnValue: Uint8Array;
15
+ /**
16
+ * The return value from the ABI method call. This will be undefined if the method does not return
17
+ * a value (return type "void"), or if the SDK was unable to decode the returned value.
18
+ */
19
+ returnValue?: ABIValue;
20
+ /** If the SDK was unable to decode a return value, the error will be here. */
21
+ decodeError?: Error;
22
+ }
23
+ export declare enum AtomicTransactionComposerStatus {
24
+ /** The atomic group is still under construction. */
25
+ BUILDING = 0,
26
+ /** The atomic group has been finalized, but not yet signed. */
27
+ BUILT = 1,
28
+ /** The atomic group has been finalized and signed, but not yet submitted to the network. */
29
+ SIGNED = 2,
30
+ /** The atomic group has been finalized, signed, and submitted to the network. */
31
+ SUBMITTED = 3,
32
+ /** The atomic group has been finalized, signed, submitted, and successfully committed to a block. */
33
+ COMMITTED = 4
34
+ }
35
+ /** A class used to construct and execute atomic transaction groups */
36
+ export declare class AtomicTransactionComposer {
37
+ /** The maximum size of an atomic transaction group. */
38
+ static MAX_GROUP_SIZE: number;
39
+ private status;
40
+ private transactions;
41
+ private methodCalls;
42
+ private signedTxns;
43
+ private txIDs;
44
+ /**
45
+ * Get the status of this composer's transaction group.
46
+ */
47
+ getStatus(): AtomicTransactionComposerStatus;
48
+ /**
49
+ * Get the number of transactions currently in this atomic group.
50
+ */
51
+ count(): number;
52
+ /**
53
+ * Create a new composer with the same underlying transactions. The new composer's status will be
54
+ * BUILDING, so additional transactions may be added to it.
55
+ */
56
+ clone(): AtomicTransactionComposer;
57
+ /**
58
+ * Add a transaction to this atomic group.
59
+ *
60
+ * An error will be thrown if the transaction has a nonzero group ID, the composer's status is
61
+ * not BUILDING, or if adding this transaction causes the current group to exceed MAX_GROUP_SIZE.
62
+ */
63
+ addTransaction(txnAndSigner: TransactionWithSigner): void;
64
+ /**
65
+ * Add a smart contract method call to this atomic group.
66
+ *
67
+ * An error will be thrown if the composer's status is not BUILDING, if adding this transaction
68
+ * causes the current group to exceed MAX_GROUP_SIZE, or if the provided arguments are invalid
69
+ * for the given method.
70
+ */
71
+ addMethodCall({ appID, method, methodArgs, sender, suggestedParams, onComplete, approvalProgram, clearProgram, numGlobalInts, numGlobalByteSlices, numLocalInts, numLocalByteSlices, extraPages, note, lease, rekeyTo, signer, }: {
72
+ /** The ID of the smart contract to call. Set this to 0 to indicate an application creation call. */
73
+ appID: number;
74
+ /** The method to call on the smart contract */
75
+ method: ABIMethod;
76
+ /** The arguments to include in the method call. If omitted, no arguments will be passed to the method. */
77
+ methodArgs?: ABIArgument[];
78
+ /** The address of the sender of this application call */
79
+ sender: string;
80
+ /** Transactions params to use for this application call */
81
+ suggestedParams: SuggestedParams;
82
+ /** The OnComplete action to take for this application call. If omitted, OnApplicationComplete.NoOpOC will be used. */
83
+ onComplete?: OnApplicationComplete;
84
+ /** The approval program for this application call. Only set this if this is an application creation call, or if onComplete is OnApplicationComplete.UpdateApplicationOC */
85
+ approvalProgram?: Uint8Array;
86
+ /** The clear program for this application call. Only set this if this is an application creation call, or if onComplete is OnApplicationComplete.UpdateApplicationOC */
87
+ clearProgram?: Uint8Array;
88
+ /** The global integer schema size. Only set this if this is an application creation call. */
89
+ numGlobalInts?: number;
90
+ /** The global byte slice schema size. Only set this if this is an application creation call. */
91
+ numGlobalByteSlices?: number;
92
+ /** The local integer schema size. Only set this if this is an application creation call. */
93
+ numLocalInts?: number;
94
+ /** The local byte slice schema size. Only set this if this is an application creation call. */
95
+ numLocalByteSlices?: number;
96
+ /** The number of extra pages to allocate for the application's programs. Only set this if this is an application creation call. If omitted, defaults to 0. */
97
+ extraPages?: number;
98
+ /** The note value for this application call */
99
+ note?: Uint8Array;
100
+ /** The lease value for this application call */
101
+ lease?: Uint8Array;
102
+ /** If provided, the address that the sender will be rekeyed to at the conclusion of this application call */
103
+ rekeyTo?: string;
104
+ /** A transaction signer that can authorize this application call from sender */
105
+ signer: TransactionSigner;
106
+ }): void;
107
+ /**
108
+ * Finalize the transaction group and returned the finalized transactions.
109
+ *
110
+ * The composer's status will be at least BUILT after executing this method.
111
+ */
112
+ buildGroup(): TransactionWithSigner[];
113
+ /**
114
+ * Obtain signatures for each transaction in this group. If signatures have already been obtained,
115
+ * this method will return cached versions of the signatures.
116
+ *
117
+ * The composer's status will be at least SIGNED after executing this method.
118
+ *
119
+ * An error will be thrown if signing any of the transactions fails.
120
+ *
121
+ * @returns A promise that resolves to an array of signed transactions.
122
+ */
123
+ gatherSignatures(): Promise<Uint8Array[]>;
124
+ /**
125
+ * Send the transaction group to the network, but don't wait for it to be committed to a block. An
126
+ * error will be thrown if submission fails.
127
+ *
128
+ * The composer's status must be SUBMITTED or lower before calling this method. If submission is
129
+ * successful, this composer's status will update to SUBMITTED.
130
+ *
131
+ * Note: a group can only be submitted again if it fails.
132
+ *
133
+ * @param client - An Algodv2 client
134
+ *
135
+ * @returns A promise that, upon success, resolves to a list of TxIDs of the submitted transactions.
136
+ */
137
+ submit(client: Algodv2): Promise<string[]>;
138
+ /**
139
+ * Send the transaction group to the network and wait until it's committed to a block. An error
140
+ * will be thrown if submission or execution fails.
141
+ *
142
+ * The composer's status must be SUBMITTED or lower before calling this method, since execution is
143
+ * only allowed once. If submission is successful, this composer's status will update to SUBMITTED.
144
+ * If the execution is also successful, this composer's status will update to COMMITTED.
145
+ *
146
+ * Note: a group can only be submitted again if it fails.
147
+ *
148
+ * @param client - An Algodv2 client
149
+ * @param waitRounds - The maximum number of rounds to wait for transaction confirmation
150
+ *
151
+ * @returns A promise that, upon success, resolves to an object containing the confirmed round for
152
+ * this transaction, the txIDs of the submitted transactions, and an array of results containing
153
+ * one element for each method call transaction in this group.
154
+ */
155
+ execute(client: Algodv2, waitRounds: number): Promise<{
156
+ confirmedRound: number;
157
+ txIDs: string[];
158
+ methodResults: ABIResult[];
159
+ }>;
160
+ }
@@ -0,0 +1,20 @@
1
+ import AlgodClient from './client/v2/algod/algod';
2
+ import { DryrunRequest, DryrunSource } from './client/v2/algod/models/types';
3
+ import { SignedTransaction } from './transaction';
4
+ /**
5
+ * createDryrun takes an Algod Client (from algod.AlgodV2Client) and an array of Signed Transactions
6
+ * from (transaction.SignedTransaction) and creates a DryrunRequest object with relevant balances
7
+ * @param client - the AlgodClient to make requests against
8
+ * @param txns - the array of SignedTransaction to use for generating the DryrunRequest object
9
+ * @param protocolVersion - the string representing the protocol version to use
10
+ * @param latestTimestamp - the timestamp
11
+ * @returns the DryrunRequest object constructed from the SignedTransactions passed
12
+ */
13
+ export declare function createDryrun({ client, txns, protocolVersion, latestTimestamp, round, sources, }: {
14
+ client: AlgodClient;
15
+ txns: SignedTransaction[];
16
+ protocolVersion?: string;
17
+ latestTimestamp?: number | bigint;
18
+ round?: number | bigint;
19
+ sources?: DryrunSource[];
20
+ }): Promise<DryrunRequest>;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * bigIntToBytes converts a BigInt to a big-endian Uint8Array for encoding.
3
+ * @param bi - The bigint to convert.
4
+ * @param size - The size of the resulting byte array.
5
+ * @returns A byte array containing the big-endian encoding of the input bigint
6
+ */
7
+ export declare function bigIntToBytes(bi: bigint | number, size: number): Uint8Array;
8
+ /**
9
+ * bytesToBigInt produces a bigint from a binary representation.
10
+ *
11
+ * @param bytes - The Uint8Array to convert.
12
+ * @returns The bigint that was encoded in the input data.
13
+ */
14
+ export declare function bytesToBigInt(bytes: Uint8Array): bigint;
@@ -1,6 +1,5 @@
1
1
  import * as txnBuilder from './transaction';
2
2
  import { BidOptions } from './bid';
3
- import { MultisigMetadata } from './types/multisig';
4
3
  export declare const MULTISIG_BAD_SENDER_ERROR_MSG = "The transaction sender address and multisig preimage do not match.";
5
4
  /**
6
5
  * signTransaction takes an object with either payment or key registration fields and
@@ -46,50 +45,6 @@ export declare function signBytes(bytes: Uint8Array, sk: Uint8Array): Uint8Array
46
45
  * @returns bool
47
46
  */
48
47
  export declare function verifyBytes(bytes: Uint8Array, signature: Uint8Array, addr: string): boolean;
49
- /**
50
- * signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
51
- * a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
52
- * multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendMultisigTransaction.
53
- * @param txn - object with either payment or key registration fields
54
- * @param version - multisig version
55
- * @param threshold - multisig threshold
56
- * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
57
- * @param sk - Algorand secret key. The corresponding pk should be in the pre image.
58
- * @returns object containing txID, and blob of partially signed multisig transaction (with multisig preimage information)
59
- * If the final calculated fee is lower than the protocol minimum fee, the fee will be increased to match the minimum.
60
- */
61
- export declare function signMultisigTransaction(txn: txnBuilder.TransactionLike, { version, threshold, addrs }: MultisigMetadata, sk: Uint8Array): {
62
- txID: string;
63
- blob: Uint8Array;
64
- };
65
- /**
66
- * mergeMultisigTransactions takes a list of multisig transaction blobs, and merges them.
67
- * @param multisigTxnBlobs - a list of blobs representing encoded multisig txns
68
- * @returns blob representing encoded multisig txn
69
- */
70
- export declare function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]): Uint8Array;
71
- /**
72
- * appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
73
- * While we could derive public key preimagery from the partially-signed multisig transaction,
74
- * we ask the caller to pass it back in, to ensure they know what they are signing.
75
- * @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
76
- * @param version - multisig version
77
- * @param threshold - multisig threshold
78
- * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
79
- * @param sk - Algorand secret key
80
- * @returns object containing txID, and blob representing encoded multisig txn
81
- */
82
- export declare function appendSignMultisigTransaction(multisigTxnBlob: Uint8Array, { version, threshold, addrs }: MultisigMetadata, sk: Uint8Array): {
83
- txID: string;
84
- blob: Uint8Array;
85
- };
86
- /**
87
- * multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
88
- * @param version - mutlisig version
89
- * @param threshold - multisig threshold
90
- * @param addrs - list of Algorand addresses
91
- */
92
- export declare function multisigAddress({ version, threshold, addrs, }: MultisigMetadata): string;
93
48
  /**
94
49
  * encodeObj takes a javascript object and returns its msgpack encoding
95
50
  * Note that the encoding sorts the fields alphabetically
@@ -111,6 +66,8 @@ export { default as Kmd } from './client/kmd';
111
66
  export { default as IntDecoding } from './types/intDecoding';
112
67
  export { default as Account } from './types/account';
113
68
  export { default as Indexer } from './client/v2/indexer/indexer';
69
+ export { BaseHTTPClient, BaseHTTPClientResponse, BaseHTTPClientError, } from './client/baseHTTPClient';
70
+ export { waitForConfirmation } from './wait';
114
71
  export { isValidAddress, encodeAddress, decodeAddress, getApplicationAddress, } from './encoding/address';
115
72
  export { encodeUint64, decodeUint64 } from './encoding/uint64';
116
73
  export { default as generateAccount } from './account';
@@ -119,7 +76,12 @@ export { mnemonicToMasterDerivationKey, masterDerivationKeyToMnemonic, secretKey
119
76
  export { microalgosToAlgos, algosToMicroalgos, INVALID_MICROALGOS_ERROR_MSG, } from './convert';
120
77
  export { computeGroupID, assignGroupID } from './group';
121
78
  export { LogicSigAccount, makeLogicSig, signLogicSigTransaction, signLogicSigTransactionObject, logicSigFromByte, tealSign, tealSignFromProgram, } from './logicsig';
79
+ export { signMultisigTransaction, mergeMultisigTransactions, appendSignMultisigTransaction, multisigAddress, } from './multisig';
122
80
  export declare const LogicTemplates: any;
81
+ export * from './dryrun';
123
82
  export * from './makeTxn';
124
83
  export * from './transaction';
84
+ export * from './signer';
85
+ export * from './composer';
125
86
  export * from './types';
87
+ export * from './abi';
@@ -455,7 +455,7 @@ export declare function makeApplicationDeleteTxnFromObject(o: Pick<RenamePropert
455
455
  * @param lease - Lease a transaction
456
456
  * @param rekeyTo - String representation of the Algorand address that will be used to authorize all future transactions
457
457
  */
458
- export declare function makeApplicationOptInTxn(from: AppOptInTxn['from'], suggestedParams: MustHaveSuggestedParams<AppOptInTxn>['suggestedParams'], appIndex: AppOptInTxn['appIndex'], appArgs?: AppOptInTxn['appArgs'], accounts?: AppOptInTxn['appAccounts'], foreignApps?: AppOptInTxn['appForeignApps'], foreignAssets?: AppOptInTxn['appForeignApps'], note?: AppOptInTxn['note'], lease?: AppOptInTxn['lease'], rekeyTo?: AppOptInTxn['reKeyTo']): txnBuilder.Transaction;
458
+ export declare function makeApplicationOptInTxn(from: AppOptInTxn['from'], suggestedParams: MustHaveSuggestedParams<AppOptInTxn>['suggestedParams'], appIndex: AppOptInTxn['appIndex'], appArgs?: AppOptInTxn['appArgs'], accounts?: AppOptInTxn['appAccounts'], foreignApps?: AppOptInTxn['appForeignApps'], foreignAssets?: AppOptInTxn['appForeignAssets'], note?: AppOptInTxn['note'], lease?: AppOptInTxn['lease'], rekeyTo?: AppOptInTxn['reKeyTo']): txnBuilder.Transaction;
459
459
  export declare function makeApplicationOptInTxnFromObject(o: Pick<RenameProperties<MustHaveSuggestedParams<AppOptInTxn>, {
460
460
  appAccounts: 'accounts';
461
461
  appForeignApps: 'foreignApps';
@@ -544,3 +544,20 @@ export declare function makeApplicationNoOpTxnFromObject(o: Pick<RenamePropertie
544
544
  reKeyTo: 'rekeyTo';
545
545
  }>, 'from' | 'suggestedParams' | 'appIndex' | 'appArgs' | 'accounts' | 'foreignApps' | 'foreignAssets' | 'note' | 'lease' | 'rekeyTo'>): txnBuilder.Transaction;
546
546
  export { OnApplicationComplete } from './types/transactions/base';
547
+ /**
548
+ * Generic function for creating any application call transaction.
549
+ */
550
+ export declare function makeApplicationCallTxnFromObject(options: Pick<RenameProperties<MustHaveSuggestedParams<AppCreateTxn>, {
551
+ appOnComplete: 'onComplete';
552
+ appAccounts: 'accounts';
553
+ appForeignApps: 'foreignApps';
554
+ appForeignAssets: 'foreignAssets';
555
+ reKeyTo: 'rekeyTo';
556
+ }>, 'from' | 'suggestedParams' | 'appIndex' | 'onComplete' | 'appArgs' | 'accounts' | 'foreignApps' | 'foreignAssets' | 'note' | 'lease' | 'rekeyTo' | 'extraPages'> & Partial<Pick<RenameProperties<MustHaveSuggestedParams<AppCreateTxn>, {
557
+ appApprovalProgram: 'approvalProgram';
558
+ appClearProgram: 'clearProgram';
559
+ appLocalInts: 'numLocalInts';
560
+ appLocalByteSlices: 'numLocalByteSlices';
561
+ appGlobalInts: 'numGlobalInts';
562
+ appGlobalByteSlices: 'numGlobalByteSlices';
563
+ }>, 'approvalProgram' | 'clearProgram' | 'numLocalInts' | 'numLocalByteSlices' | 'numGlobalInts' | 'numGlobalByteSlices'>>): txnBuilder.Transaction;
@@ -50,4 +50,42 @@ export declare class MultisigTransaction extends txnBuilder.Transaction {
50
50
  */
51
51
  export declare function mergeMultisigTransactions(multisigTxnBlobs: Uint8Array[]): Uint8Array;
52
52
  export declare function verifyMultisig(toBeVerified: Uint8Array, msig: EncodedMultisig, publicKey: Uint8Array): boolean;
53
- export default MultisigTransaction;
53
+ /**
54
+ * signMultisigTransaction takes a raw transaction (see signTransaction), a multisig preimage, a secret key, and returns
55
+ * a multisig transaction, which is a blob representing a transaction and multisignature account preimage. The returned
56
+ * multisig txn can accumulate additional signatures through mergeMultisigTransactions or appendMultisigTransaction.
57
+ * @param txn - object with either payment or key registration fields
58
+ * @param version - multisig version
59
+ * @param threshold - multisig threshold
60
+ * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
61
+ * @param sk - Algorand secret key. The corresponding pk should be in the pre image.
62
+ * @returns object containing txID, and blob of partially signed multisig transaction (with multisig preimage information)
63
+ * If the final calculated fee is lower than the protocol minimum fee, the fee will be increased to match the minimum.
64
+ */
65
+ export declare function signMultisigTransaction(txn: txnBuilder.TransactionLike, { version, threshold, addrs }: MultisigMetadata, sk: Uint8Array): {
66
+ txID: string;
67
+ blob: Uint8Array;
68
+ };
69
+ /**
70
+ * appendSignMultisigTransaction takes a multisig transaction blob, and appends our signature to it.
71
+ * While we could derive public key preimagery from the partially-signed multisig transaction,
72
+ * we ask the caller to pass it back in, to ensure they know what they are signing.
73
+ * @param multisigTxnBlob - an encoded multisig txn. Supports non-payment txn types.
74
+ * @param version - multisig version
75
+ * @param threshold - multisig threshold
76
+ * @param addrs - a list of Algorand addresses representing possible signers for this multisig. Order is important.
77
+ * @param sk - Algorand secret key
78
+ * @returns object containing txID, and blob representing encoded multisig txn
79
+ */
80
+ export declare function appendSignMultisigTransaction(multisigTxnBlob: Uint8Array, { version, threshold, addrs }: MultisigMetadata, sk: Uint8Array): {
81
+ txID: string;
82
+ blob: Uint8Array;
83
+ };
84
+ /**
85
+ * multisigAddress takes multisig metadata (preimage) and returns the corresponding human readable Algorand address.
86
+ * @param version - mutlisig version
87
+ * @param threshold - multisig threshold
88
+ * @param addrs - list of Algorand addresses
89
+ */
90
+ export declare function multisigAddress({ version, threshold, addrs, }: MultisigMetadata): string;
91
+ export {};
@@ -0,0 +1,40 @@
1
+ import { Transaction } from './transaction';
2
+ import Account from './types/account';
3
+ import { LogicSigAccount } from './logicsig';
4
+ import { MultisigMetadata } from './types/multisig';
5
+ /**
6
+ * This type represents a function which can sign transactions from an atomic transaction group.
7
+ * @param txnGroup - The atomic group containing transactions to be signed
8
+ * @param indexesToSign - An array of indexes in the atomic transaction group that should be signed
9
+ * @returns A promise which resolves an array of encoded signed transactions. The length of the
10
+ * array will be the same as the length of indexesToSign, and each index i in the array
11
+ * corresponds to the signed transaction from txnGroup[indexesToSign[i]]
12
+ */
13
+ export declare type TransactionSigner = (txnGroup: Transaction[], indexesToSign: number[]) => Promise<Uint8Array[]>;
14
+ /**
15
+ * Create a TransactionSigner that can sign transactions for the provided basic Account.
16
+ */
17
+ export declare function makeBasicAccountTransactionSigner(account: Account): TransactionSigner;
18
+ /**
19
+ * Create a TransactionSigner that can sign transactions for the provided LogicSigAccount.
20
+ */
21
+ export declare function makeLogicSigAccountTransactionSigner(account: LogicSigAccount): TransactionSigner;
22
+ /**
23
+ * Create a TransactionSigner that can sign transactions for the provided Multisig account.
24
+ * @param msig - The Multisig account metadata
25
+ * @param sks - An array of private keys belonging to the msig which should sign the transactions.
26
+ */
27
+ export declare function makeMultiSigAccountTransactionSigner(msig: MultisigMetadata, sks: Uint8Array[]): TransactionSigner;
28
+ /** Represents an unsigned transactions and a signer that can authorize that transaction. */
29
+ export interface TransactionWithSigner {
30
+ /** An unsigned transaction */
31
+ txn: Transaction;
32
+ /** A transaction signer that can authorize txn */
33
+ signer: TransactionSigner;
34
+ }
35
+ /**
36
+ * Check if a value conforms to the TransactionWithSigner structure.
37
+ * @param value - The value to check.
38
+ * @returns True if an only if the value has the structure of a TransactionWithSigner.
39
+ */
40
+ export declare function isTransactionWithSigner(value: any): value is TransactionWithSigner;
@@ -0,0 +1,11 @@
1
+ import Algodv2 from './client/v2/algod/algod';
2
+ /**
3
+ * Wait until a transaction has been confirmed or rejected by the network, or
4
+ * until 'waitRounds' number of rounds have passed.
5
+ * @param client - An Algodv2 client
6
+ * @param txid - The ID of the transaction to wait for.
7
+ * @param waitRounds - The maximum number of rounds to wait for.
8
+ * @returns A promise that, upon success, will resolve to the output of the
9
+ * `pendingTransactionInformation` call for the confirmed transaction.
10
+ */
11
+ export declare function waitForConfirmation(client: Algodv2, txid: string, waitRounds: number): Promise<Record<string, any>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "algosdk",
3
- "version": "1.12.0",
3
+ "version": "1.13.1",
4
4
  "description": "The official JavaScript SDK for Algorand",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -36,7 +36,7 @@
36
36
  "@typescript-eslint/eslint-plugin": "^4.26.1",
37
37
  "@typescript-eslint/parser": "^4.26.1",
38
38
  "assert": "^2.0.0",
39
- "chromedriver": "^93.0.1",
39
+ "chromedriver": "^97.0.0",
40
40
  "concurrently": "^6.2.0",
41
41
  "coveralls": "^3.1.0",
42
42
  "cucumber": "^5.1.0",
@@ -59,7 +59,9 @@
59
59
  "source-map-loader": "^2.0.2",
60
60
  "ts-loader": "^8.3.0",
61
61
  "ts-node": "^10.0.0",
62
- "typedoc": "^0.20.36",
62
+ "typedoc": "^0.22.10",
63
+ "typedoc-plugin-missing-exports": "^0.22.6",
64
+ "typedoc-plugin-rename-defaults": "^0.4.0",
63
65
  "typescript": "^4.2.3",
64
66
  "webpack": "^5.38.1",
65
67
  "webpack-cli": "^4.7.2"
@@ -69,7 +71,7 @@
69
71
  "prepare": "npm run build",
70
72
  "prepare-browser-tests": "npm run build && mkdir -p tests/cucumber/browser/build && cp dist/browser/algosdk.min.* tests/cucumber/browser/build/ && webpack --config tests/cucumber/browser/webpack.config.js",
71
73
  "build": "concurrently \"webpack --config webpack.config.js\" \"tsc -p tsconfig-esm.json\" \"tsc -p tsconfig-cjs.json\"",
72
- "docs": "typedoc src/main.ts",
74
+ "docs": "typedoc src/main.ts --options typedoc.config.json",
73
75
  "lint": "eslint .",
74
76
  "lint:fix": "eslint --fix .",
75
77
  "format": "prettier --write .",