algosdk 3.1.0 → 3.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.
Files changed (34) 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/abi/abi_type.js +9 -7
  5. package/dist/cjs/abi/abi_type.js.map +1 -1
  6. package/dist/cjs/client/v2/algod/block.js +21 -0
  7. package/dist/cjs/client/v2/algod/block.js.map +1 -1
  8. package/dist/cjs/client/v2/algod/models/types.js +2 -43
  9. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  10. package/dist/cjs/client/v2/indexer/indexer.js +15 -0
  11. package/dist/cjs/client/v2/indexer/indexer.js.map +1 -1
  12. package/dist/cjs/client/v2/indexer/searchForBlockHeaders.js +217 -0
  13. package/dist/cjs/client/v2/indexer/searchForBlockHeaders.js.map +1 -0
  14. package/dist/esm/abi/abi_type.js +10 -8
  15. package/dist/esm/abi/abi_type.js.map +1 -1
  16. package/dist/esm/client/v2/algod/block.js +21 -0
  17. package/dist/esm/client/v2/algod/block.js.map +1 -1
  18. package/dist/esm/client/v2/algod/models/types.js +0 -40
  19. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  20. package/dist/esm/client/v2/indexer/indexer.js +15 -0
  21. package/dist/esm/client/v2/indexer/indexer.js.map +1 -1
  22. package/dist/esm/client/v2/indexer/searchForBlockHeaders.js +211 -0
  23. package/dist/esm/client/v2/indexer/searchForBlockHeaders.js.map +1 -0
  24. package/dist/types/abi/abi_type.d.ts +13 -1
  25. package/dist/types/client/v2/algod/block.d.ts +18 -0
  26. package/dist/types/client/v2/algod/models/types.d.ts +0 -21
  27. package/dist/types/client/v2/indexer/indexer.d.ts +13 -0
  28. package/dist/types/client/v2/indexer/searchForBlockHeaders.d.ts +176 -0
  29. package/package.json +2 -2
  30. package/src/abi/abi_type.ts +16 -9
  31. package/src/client/v2/algod/block.ts +22 -0
  32. package/src/client/v2/algod/models/types.ts +0 -52
  33. package/src/client/v2/indexer/indexer.ts +16 -0
  34. package/src/client/v2/indexer/searchForBlockHeaders.ts +223 -0
@@ -15,6 +15,7 @@ import LookupApplications from './lookupApplications.js';
15
15
  import LookupApplicationLogs from './lookupApplicationLogs.js';
16
16
  import LookupApplicationBoxByIDandName from './lookupApplicationBoxByIDandName.js';
17
17
  import SearchAccounts from './searchAccounts.js';
18
+ import SearchForBlockHeaders from './searchForBlockHeaders.js';
18
19
  import SearchForTransactions from './searchForTransactions.js';
19
20
  import SearchForAssets from './searchForAssets.js';
20
21
  import SearchForApplications from './searchForApplications.js';
@@ -295,6 +296,20 @@ export class IndexerClient extends ServiceClient {
295
296
  searchAccounts() {
296
297
  return new SearchAccounts(this.c);
297
298
  }
299
+ /**
300
+ * Returns information about indexed block headers.
301
+ *
302
+ * #### Example
303
+ * ```typescript
304
+ * const bhs = await indexerClient.searchForBlockHeaders().do();
305
+ * ```
306
+ *
307
+ * [Response data schema details](https://developer.algorand.org/docs/rest-apis/indexer/#get-v2block-headers)
308
+ * @category GET
309
+ */
310
+ searchForBlockHeaders() {
311
+ return new SearchForBlockHeaders(this.c);
312
+ }
298
313
  /**
299
314
  * Returns information about indexed transactions.
300
315
  *
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../../../src/client/v2/indexer/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../../../../../src/client/v2/indexer/indexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,211 @@
1
+ import JSONRequest from '../jsonrequest.js';
2
+ import { decodeJSON } from '../../../encoding/encoding.js';
3
+ import { BlockHeadersResponse } from './models/types.js';
4
+ /**
5
+ * Returns information about indexed block headers.
6
+ *
7
+ * #### Example
8
+ * ```typescript
9
+ * const bhs = await indexerClient.searchForBlockHeaders().do();
10
+ * ```
11
+ *
12
+ * [Response data schema details](https://developer.algorand.org/docs/rest-apis/indexer/#get-v2block-headers)
13
+ * @category GET
14
+ */
15
+ export default class SearchForBlockHeaders extends JSONRequest {
16
+ /**
17
+ * @returns `/v2/block-headers`
18
+ */
19
+ // eslint-disable-next-line class-methods-use-this
20
+ path() {
21
+ return '/v2/block-headers';
22
+ }
23
+ /**
24
+ * Accounts marked as absent in the block header's participation updates.
25
+ *
26
+ * #### Example
27
+ * ```typescript
28
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
29
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
30
+ * const bhs = await indexerClient
31
+ * .searchForBlockHeaders()
32
+ * .absent([address1,address2])
33
+ * .do();
34
+ * ```
35
+ *
36
+ * @param absent - a comma separated list of addresses
37
+ * @category query
38
+ */
39
+ absent(absent) {
40
+ this.query.absent = absent;
41
+ return this;
42
+ }
43
+ /**
44
+ * Include results after the given time.
45
+ *
46
+ * #### Example
47
+ * ```typescript
48
+ * const afterTime = "2022-10-21T00:00:11.55Z";
49
+ * const bhs = await indexerClient
50
+ * .searchForBlockHeaders()
51
+ * .afterTime(afterTime)
52
+ * .do();
53
+ * ```
54
+ *
55
+ * @param after - rfc3339 string or Date object
56
+ * @category query
57
+ */
58
+ afterTime(after) {
59
+ this.query['after-time'] =
60
+ after instanceof Date ? after.toISOString() : after;
61
+ return this;
62
+ }
63
+ /**
64
+ * Include results before the given time.
65
+ *
66
+ * #### Example
67
+ * ```typescript
68
+ * const beforeTime = "2022-02-02T20:20:22.02Z";
69
+ * const bhs = await indexerClient
70
+ * .searchForBlockHeaders()
71
+ * .beforeTime(beforeTime)
72
+ * .do();
73
+ * ```
74
+ *
75
+ * @param before - rfc3339 string or Date object
76
+ * @category query
77
+ */
78
+ beforeTime(before) {
79
+ this.query['before-time'] =
80
+ before instanceof Date ? before.toISOString() : before;
81
+ return this;
82
+ }
83
+ /**
84
+ * Accounts marked as expired in the block header's participation updates.
85
+ *
86
+ * #### Example
87
+ * ```typescript
88
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
89
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
90
+ * const bhs = await indexerClient
91
+ * .searchForBlockHeaders()
92
+ * .expired([address1,address2])
93
+ * .do();
94
+ * ```
95
+ *
96
+ * @param expired - - a comma separated list of addresses
97
+ * @category query
98
+ */
99
+ expired(expired) {
100
+ this.query.expired = expired;
101
+ return this;
102
+ }
103
+ /**
104
+ * Maximum number of results to return.
105
+ *
106
+ * #### Example
107
+ * ```typescript
108
+ * const maxResults = 25;
109
+ * const bhs = await indexerClient
110
+ * .searchForBlockHeaders()
111
+ * .limit(maxResults)
112
+ * .do();
113
+ * ```
114
+ *
115
+ * @param limit
116
+ * @category query
117
+ */
118
+ limit(limit) {
119
+ this.query.limit = limit;
120
+ return this;
121
+ }
122
+ /**
123
+ * Include results at or before the specified max-round.
124
+ *
125
+ * #### Example
126
+ * ```typescript
127
+ * const maxRound = 18309917;
128
+ * const bhs = await indexerClient
129
+ * .searchForBlockHeaders()
130
+ * .maxRound(maxRound)
131
+ * .do();
132
+ * ```
133
+ *
134
+ * @param round
135
+ * @category query
136
+ */
137
+ maxRound(round) {
138
+ this.query['max-round'] = round;
139
+ return this;
140
+ }
141
+ /**
142
+ * Include results at or after the specified min-round.
143
+ *
144
+ * #### Example
145
+ * ```typescript
146
+ * const minRound = 18309917;
147
+ * const bhs = await indexerClient
148
+ * .searchForBlockHeaders()
149
+ * .minRound(minRound)
150
+ * .do();
151
+ * ```
152
+ *
153
+ * @param round
154
+ * @category query
155
+ */
156
+ minRound(round) {
157
+ this.query['min-round'] = round;
158
+ return this;
159
+ }
160
+ /**
161
+ * The next page of results.
162
+ *
163
+ * #### Example
164
+ * ```typescript
165
+ * const maxResults = 25;
166
+ *
167
+ * const bh1 = await indexerClient
168
+ * .searchForBlockHeaders()
169
+ * .limit(maxResults)
170
+ * .do();
171
+ *
172
+ * const bh2 = await indexerClient
173
+ * .searchForBlockHeaders()
174
+ * .limit(maxResults)
175
+ * .nextToken(bh1["next-token"])
176
+ * .do();
177
+ * ```
178
+ *
179
+ * @param nextToken - provided by the previous results
180
+ * @category query
181
+ */
182
+ nextToken(nextToken) {
183
+ this.query.next = nextToken;
184
+ return this;
185
+ }
186
+ /**
187
+ * Accounts marked as proposer in the block header's participation updates.
188
+ *
189
+ * #### Example
190
+ * ```typescript
191
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
192
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
193
+ * const bhs = await indexerClient
194
+ * .searchForBlockHeaders()
195
+ * .proposers([address1,address2])
196
+ * .do();
197
+ * ```
198
+ *
199
+ * @param proposers - a comma separated list of addresses
200
+ * @category query
201
+ */
202
+ proposers(proposers) {
203
+ this.query.proposers = proposers;
204
+ return this;
205
+ }
206
+ // eslint-disable-next-line class-methods-use-this
207
+ prepare(response) {
208
+ return decodeJSON(response.getJSONText(), BlockHeadersResponse);
209
+ }
210
+ }
211
+ //# sourceMappingURL=searchForBlockHeaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchForBlockHeaders.js","sourceRoot":"","sources":["../../../../../src/client/v2/indexer/searchForBlockHeaders.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,WAAiC;IAClF;;OAEG;IACH,kDAAkD;IAClD,IAAI;QACF,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAA4B;QACjC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAC,KAAoB;QAC5B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YACtB,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,MAAqB;QAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACvB,MAAM,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,OAA6B;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,KAAa;QACjB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAsB;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,KAAsB;QAC7B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,SAAiB;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,SAA+B;QACvC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,QAA4B;QAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,9 +1,21 @@
1
+ /**
2
+ //ABI-Types: uint<N>: An N-bit unsigned integer (8 <= N <= 512 and N % 8 = 0).
3
+ // | byte (alias for uint8)
4
+ // | ufixed <N> x <M> (8 <= N <= 512, N % 8 = 0, and 0 < M <= 160)
5
+ // | bool
6
+ // | address (alias for byte[32])
7
+ // | <type> [<N>]
8
+ // | <type> []
9
+ // | string
10
+ // | (T1, ..., Tn)
11
+ */
12
+ import { Address } from '../encoding/address.js';
1
13
  export declare const MAX_LEN: number;
2
14
  export declare const ADDR_BYTE_SIZE = 32;
3
15
  export declare const SINGLE_BYTE_SIZE = 1;
4
16
  export declare const SINGLE_BOOL_SIZE = 1;
5
17
  export declare const LENGTH_ENCODE_BYTE_SIZE = 2;
6
- export type ABIValue = boolean | number | bigint | string | Uint8Array | ABIValue[];
18
+ export type ABIValue = boolean | number | bigint | string | Uint8Array | ABIValue[] | Address;
7
19
  export declare abstract class ABIType {
8
20
  abstract toString(): string;
9
21
  abstract equals(other: ABIType): boolean;
@@ -8,5 +8,23 @@ export default class Block extends JSONRequest<BlockResponse> {
8
8
  private round;
9
9
  constructor(c: HTTPClient, roundNumber: number | bigint);
10
10
  path(): string;
11
+ /**
12
+ * If true, only the block header (exclusive of payset or certificate) may be included in response.
13
+ *
14
+ * #### Example
15
+ * ```typescript
16
+ *
17
+ * const roundNumber = 41000000;
18
+ *
19
+ * const blockResponse = await algodClient
20
+ * .block(roundNumber)
21
+ * .headerOnly(true)
22
+ * .do();
23
+ * ```
24
+ *
25
+ * @param headerOnly - the flag indicating whether exclusively return header in response
26
+ * @category query
27
+ */
28
+ headerOnly(headerOnly: boolean): this;
11
29
  prepare(response: HTTPClientResponse): BlockResponse;
12
30
  }
@@ -1087,27 +1087,6 @@ export declare class BlockHashResponse implements Encodable {
1087
1087
  toEncodingData(): Map<string, unknown>;
1088
1088
  static fromEncodingData(data: unknown): BlockHashResponse;
1089
1089
  }
1090
- /**
1091
- * Block header.
1092
- */
1093
- export declare class BlockHeaderResponse implements Encodable {
1094
- private static encodingSchemaValue;
1095
- static get encodingSchema(): Schema;
1096
- /**
1097
- * Block header data.
1098
- */
1099
- blockheader: Block;
1100
- /**
1101
- * Creates a new `BlockHeaderResponse` object.
1102
- * @param blockheader - Block header data.
1103
- */
1104
- constructor({ blockheader }: {
1105
- blockheader: Block;
1106
- });
1107
- getEncodingSchema(): Schema;
1108
- toEncodingData(): Map<string, unknown>;
1109
- static fromEncodingData(data: unknown): BlockHeaderResponse;
1110
- }
1111
1090
  /**
1112
1091
  * All logs emitted in the given round. Each app call, whether top-level or inner,
1113
1092
  * that contains logs results in a separate AppCallLogs object. Therefore there may
@@ -15,6 +15,7 @@ import LookupApplications from './lookupApplications.js';
15
15
  import LookupApplicationLogs from './lookupApplicationLogs.js';
16
16
  import LookupApplicationBoxByIDandName from './lookupApplicationBoxByIDandName.js';
17
17
  import SearchAccounts from './searchAccounts.js';
18
+ import SearchForBlockHeaders from './searchForBlockHeaders.js';
18
19
  import SearchForTransactions from './searchForTransactions.js';
19
20
  import SearchForAssets from './searchForAssets.js';
20
21
  import SearchForApplications from './searchForApplications.js';
@@ -266,6 +267,18 @@ export declare class IndexerClient extends ServiceClient {
266
267
  * @category GET
267
268
  */
268
269
  searchAccounts(): SearchAccounts;
270
+ /**
271
+ * Returns information about indexed block headers.
272
+ *
273
+ * #### Example
274
+ * ```typescript
275
+ * const bhs = await indexerClient.searchForBlockHeaders().do();
276
+ * ```
277
+ *
278
+ * [Response data schema details](https://developer.algorand.org/docs/rest-apis/indexer/#get-v2block-headers)
279
+ * @category GET
280
+ */
281
+ searchForBlockHeaders(): SearchForBlockHeaders;
269
282
  /**
270
283
  * Returns information about indexed transactions.
271
284
  *
@@ -0,0 +1,176 @@
1
+ import JSONRequest from '../jsonrequest.js';
2
+ import { HTTPClientResponse } from '../../client.js';
3
+ import { Address } from '../../../encoding/address.js';
4
+ import { BlockHeadersResponse } from './models/types.js';
5
+ /**
6
+ * Returns information about indexed block headers.
7
+ *
8
+ * #### Example
9
+ * ```typescript
10
+ * const bhs = await indexerClient.searchForBlockHeaders().do();
11
+ * ```
12
+ *
13
+ * [Response data schema details](https://developer.algorand.org/docs/rest-apis/indexer/#get-v2block-headers)
14
+ * @category GET
15
+ */
16
+ export default class SearchForBlockHeaders extends JSONRequest<BlockHeadersResponse> {
17
+ /**
18
+ * @returns `/v2/block-headers`
19
+ */
20
+ path(): string;
21
+ /**
22
+ * Accounts marked as absent in the block header's participation updates.
23
+ *
24
+ * #### Example
25
+ * ```typescript
26
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
27
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
28
+ * const bhs = await indexerClient
29
+ * .searchForBlockHeaders()
30
+ * .absent([address1,address2])
31
+ * .do();
32
+ * ```
33
+ *
34
+ * @param absent - a comma separated list of addresses
35
+ * @category query
36
+ */
37
+ absent(absent: (string | Address)[]): this;
38
+ /**
39
+ * Include results after the given time.
40
+ *
41
+ * #### Example
42
+ * ```typescript
43
+ * const afterTime = "2022-10-21T00:00:11.55Z";
44
+ * const bhs = await indexerClient
45
+ * .searchForBlockHeaders()
46
+ * .afterTime(afterTime)
47
+ * .do();
48
+ * ```
49
+ *
50
+ * @param after - rfc3339 string or Date object
51
+ * @category query
52
+ */
53
+ afterTime(after: string | Date): this;
54
+ /**
55
+ * Include results before the given time.
56
+ *
57
+ * #### Example
58
+ * ```typescript
59
+ * const beforeTime = "2022-02-02T20:20:22.02Z";
60
+ * const bhs = await indexerClient
61
+ * .searchForBlockHeaders()
62
+ * .beforeTime(beforeTime)
63
+ * .do();
64
+ * ```
65
+ *
66
+ * @param before - rfc3339 string or Date object
67
+ * @category query
68
+ */
69
+ beforeTime(before: string | Date): this;
70
+ /**
71
+ * Accounts marked as expired in the block header's participation updates.
72
+ *
73
+ * #### Example
74
+ * ```typescript
75
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
76
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
77
+ * const bhs = await indexerClient
78
+ * .searchForBlockHeaders()
79
+ * .expired([address1,address2])
80
+ * .do();
81
+ * ```
82
+ *
83
+ * @param expired - - a comma separated list of addresses
84
+ * @category query
85
+ */
86
+ expired(expired: (string | Address)[]): this;
87
+ /**
88
+ * Maximum number of results to return.
89
+ *
90
+ * #### Example
91
+ * ```typescript
92
+ * const maxResults = 25;
93
+ * const bhs = await indexerClient
94
+ * .searchForBlockHeaders()
95
+ * .limit(maxResults)
96
+ * .do();
97
+ * ```
98
+ *
99
+ * @param limit
100
+ * @category query
101
+ */
102
+ limit(limit: number): this;
103
+ /**
104
+ * Include results at or before the specified max-round.
105
+ *
106
+ * #### Example
107
+ * ```typescript
108
+ * const maxRound = 18309917;
109
+ * const bhs = await indexerClient
110
+ * .searchForBlockHeaders()
111
+ * .maxRound(maxRound)
112
+ * .do();
113
+ * ```
114
+ *
115
+ * @param round
116
+ * @category query
117
+ */
118
+ maxRound(round: number | bigint): this;
119
+ /**
120
+ * Include results at or after the specified min-round.
121
+ *
122
+ * #### Example
123
+ * ```typescript
124
+ * const minRound = 18309917;
125
+ * const bhs = await indexerClient
126
+ * .searchForBlockHeaders()
127
+ * .minRound(minRound)
128
+ * .do();
129
+ * ```
130
+ *
131
+ * @param round
132
+ * @category query
133
+ */
134
+ minRound(round: number | bigint): this;
135
+ /**
136
+ * The next page of results.
137
+ *
138
+ * #### Example
139
+ * ```typescript
140
+ * const maxResults = 25;
141
+ *
142
+ * const bh1 = await indexerClient
143
+ * .searchForBlockHeaders()
144
+ * .limit(maxResults)
145
+ * .do();
146
+ *
147
+ * const bh2 = await indexerClient
148
+ * .searchForBlockHeaders()
149
+ * .limit(maxResults)
150
+ * .nextToken(bh1["next-token"])
151
+ * .do();
152
+ * ```
153
+ *
154
+ * @param nextToken - provided by the previous results
155
+ * @category query
156
+ */
157
+ nextToken(nextToken: string): this;
158
+ /**
159
+ * Accounts marked as proposer in the block header's participation updates.
160
+ *
161
+ * #### Example
162
+ * ```typescript
163
+ * const address1 = "XBYLS2E6YI6XXL5BWCAMOA4GTWHXWENZMX5UHXMRNWWUQ7BXCY5WC5TEPA";
164
+ * const address2 = "4H5UNRBJ2Q6JENAXQ6HNTGKLKINP4J4VTQBEPK5F3I6RDICMZBPGNH6KD4";
165
+ * const bhs = await indexerClient
166
+ * .searchForBlockHeaders()
167
+ * .proposers([address1,address2])
168
+ * .do();
169
+ * ```
170
+ *
171
+ * @param proposers - a comma separated list of addresses
172
+ * @category query
173
+ */
174
+ proposers(proposers: (string | Address)[]): this;
175
+ prepare(response: HTTPClientResponse): BlockHeadersResponse;
176
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "algosdk",
3
- "version": "3.1.0",
3
+ "version": "3.2.0",
4
4
  "description": "The official JavaScript SDK for Algorand",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -78,7 +78,7 @@
78
78
  "geckodriver": "^4.3.0",
79
79
  "husky": "^4.3.8",
80
80
  "lint-staged": "^10.5.4",
81
- "mocha": "^9.0.0",
81
+ "mocha": "^11.1.0",
82
82
  "mock-http-server": "^1.4.3",
83
83
  "prettier": "^3.2.1",
84
84
  "selenium-webdriver": "^4.10.0",
@@ -13,7 +13,7 @@
13
13
  // | string
14
14
  // | (T1, ..., Tn)
15
15
  */
16
- import { encodeAddress, decodeAddress } from '../encoding/address.js';
16
+ import { encodeAddress, decodeAddress, Address } from '../encoding/address.js';
17
17
  import { bigIntToBytes, bytesToBigInt } from '../encoding/bigint.js';
18
18
  import { concatArrays } from '../utils/utils.js';
19
19
 
@@ -37,7 +37,8 @@ export type ABIValue =
37
37
  | bigint
38
38
  | string
39
39
  | Uint8Array
40
- | ABIValue[];
40
+ | ABIValue[]
41
+ | Address;
41
42
 
42
43
  export abstract class ABIType {
43
44
  // Converts a ABIType object to a string
@@ -255,18 +256,24 @@ export class ABIAddressType extends ABIType {
255
256
  }
256
257
 
257
258
  encode(value: ABIValue) {
258
- if (typeof value !== 'string' && !(value instanceof Uint8Array)) {
259
- throw new Error(`Cannot encode value as ${this.toString()}: ${value}`);
260
- }
261
259
  if (typeof value === 'string') {
262
260
  const decodedAddress = decodeAddress(value);
263
261
  return decodedAddress.publicKey;
264
262
  }
265
- // Return the address if it is already in bytes
266
- if (value.byteLength !== 32) {
267
- throw new Error(`byte string must be 32 bytes long for an address`);
263
+
264
+ if (value instanceof Address) {
265
+ return value.publicKey;
268
266
  }
269
- return value;
267
+
268
+ if (value instanceof Uint8Array) {
269
+ if (value.byteLength !== 32) {
270
+ throw new Error(`byte string must be 32 bytes long for an address`);
271
+ }
272
+
273
+ return value;
274
+ }
275
+
276
+ throw new Error(`Cannot encode value as ${this.toString()}: ${value}`);
270
277
  }
271
278
 
272
279
  decode(byteString: Uint8Array): string {
@@ -19,6 +19,28 @@ export default class Block extends JSONRequest<BlockResponse> {
19
19
  return `/v2/blocks/${this.round}`;
20
20
  }
21
21
 
22
+ /**
23
+ * If true, only the block header (exclusive of payset or certificate) may be included in response.
24
+ *
25
+ * #### Example
26
+ * ```typescript
27
+ *
28
+ * const roundNumber = 41000000;
29
+ *
30
+ * const blockResponse = await algodClient
31
+ * .block(roundNumber)
32
+ * .headerOnly(true)
33
+ * .do();
34
+ * ```
35
+ *
36
+ * @param headerOnly - the flag indicating whether exclusively return header in response
37
+ * @category query
38
+ */
39
+ headerOnly(headerOnly: boolean) {
40
+ this.query['header-only'] = headerOnly;
41
+ return this;
42
+ }
43
+
22
44
  // eslint-disable-next-line class-methods-use-this
23
45
  prepare(response: HTTPClientResponse): BlockResponse {
24
46
  return decodeMsgpack(response.body, BlockResponse);