algosdk 1.24.1 → 2.0.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 (105) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.LICENSE.txt +0 -18
  4. package/dist/browser/algosdk.min.js.map +1 -1
  5. package/dist/cjs/client/v2/algod/algod.js +1 -1
  6. package/dist/cjs/client/v2/algod/algod.js.map +1 -1
  7. package/dist/cjs/client/v2/algod/models/types.js +161 -123
  8. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  9. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +0 -7
  10. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  11. package/dist/cjs/dryrun.js +16 -7
  12. package/dist/cjs/dryrun.js.map +1 -1
  13. package/dist/cjs/logicsig.js +3 -14
  14. package/dist/cjs/logicsig.js.map +1 -1
  15. package/dist/cjs/main.js +3 -6
  16. package/dist/cjs/main.js.map +1 -1
  17. package/dist/cjs/makeTxn.js +1 -193
  18. package/dist/cjs/makeTxn.js.map +1 -1
  19. package/dist/esm/client/v2/algod/algod.js +1 -1
  20. package/dist/esm/client/v2/algod/algod.js.map +1 -1
  21. package/dist/esm/client/v2/algod/models/types.js +160 -120
  22. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  23. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +0 -7
  24. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  25. package/dist/esm/dryrun.js +16 -7
  26. package/dist/esm/dryrun.js.map +1 -1
  27. package/dist/esm/logicsig.js +2 -12
  28. package/dist/esm/logicsig.js.map +1 -1
  29. package/dist/esm/main.js +1 -4
  30. package/dist/esm/main.js.map +1 -1
  31. package/dist/esm/makeTxn.js +0 -185
  32. package/dist/esm/makeTxn.js.map +1 -1
  33. package/dist/types/client/v2/algod/algod.d.ts +1 -1
  34. package/dist/types/client/v2/algod/models/types.d.ts +122 -67
  35. package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +0 -4
  36. package/dist/types/logicsig.d.ts +2 -10
  37. package/dist/types/main.d.ts +1 -3
  38. package/dist/types/makeTxn.d.ts +1 -147
  39. package/dist/types/types/transactions/encoded.d.ts +0 -15
  40. package/package.json +1 -1
  41. package/src/client/v2/algod/algod.ts +2 -2
  42. package/src/client/v2/algod/models/types.ts +318 -249
  43. package/src/client/v2/indexer/lookupAssetTransactions.ts +0 -8
  44. package/src/dryrun.ts +13 -13
  45. package/src/logicsig.ts +2 -13
  46. package/src/main.ts +1 -5
  47. package/src/makeTxn.ts +0 -421
  48. package/src/types/transactions/encoded.ts +0 -17
  49. package/dist/cjs/client/algod.js +0 -295
  50. package/dist/cjs/client/algod.js.map +0 -1
  51. package/dist/cjs/logic/langspec.json +0 -2014
  52. package/dist/cjs/logic/logic.js +0 -262
  53. package/dist/cjs/logic/logic.js.map +0 -1
  54. package/dist/cjs/logicTemplates/dynamicfee.js +0 -192
  55. package/dist/cjs/logicTemplates/dynamicfee.js.map +0 -1
  56. package/dist/cjs/logicTemplates/htlc.js +0 -145
  57. package/dist/cjs/logicTemplates/htlc.js.map +0 -1
  58. package/dist/cjs/logicTemplates/index.js +0 -19
  59. package/dist/cjs/logicTemplates/index.js.map +0 -1
  60. package/dist/cjs/logicTemplates/limitorder.js +0 -167
  61. package/dist/cjs/logicTemplates/limitorder.js.map +0 -1
  62. package/dist/cjs/logicTemplates/periodicpayment.js +0 -163
  63. package/dist/cjs/logicTemplates/periodicpayment.js.map +0 -1
  64. package/dist/cjs/logicTemplates/split.js +0 -154
  65. package/dist/cjs/logicTemplates/split.js.map +0 -1
  66. package/dist/cjs/logicTemplates/templates.js +0 -67
  67. package/dist/cjs/logicTemplates/templates.js.map +0 -1
  68. package/dist/esm/client/algod.js +0 -295
  69. package/dist/esm/client/algod.js.map +0 -1
  70. package/dist/esm/logic/langspec.json +0 -2014
  71. package/dist/esm/logic/logic.js +0 -249
  72. package/dist/esm/logic/logic.js.map +0 -1
  73. package/dist/esm/logicTemplates/dynamicfee.js +0 -192
  74. package/dist/esm/logicTemplates/dynamicfee.js.map +0 -1
  75. package/dist/esm/logicTemplates/htlc.js +0 -145
  76. package/dist/esm/logicTemplates/htlc.js.map +0 -1
  77. package/dist/esm/logicTemplates/index.js +0 -19
  78. package/dist/esm/logicTemplates/index.js.map +0 -1
  79. package/dist/esm/logicTemplates/limitorder.js +0 -167
  80. package/dist/esm/logicTemplates/limitorder.js.map +0 -1
  81. package/dist/esm/logicTemplates/periodicpayment.js +0 -163
  82. package/dist/esm/logicTemplates/periodicpayment.js.map +0 -1
  83. package/dist/esm/logicTemplates/split.js +0 -154
  84. package/dist/esm/logicTemplates/split.js.map +0 -1
  85. package/dist/esm/logicTemplates/templates.js +0 -67
  86. package/dist/esm/logicTemplates/templates.js.map +0 -1
  87. package/dist/types/client/algod.d.ts +0 -162
  88. package/dist/types/logic/logic.d.ts +0 -45
  89. package/dist/types/logicTemplates/dynamicfee.d.ts +0 -59
  90. package/dist/types/logicTemplates/htlc.d.ts +0 -51
  91. package/dist/types/logicTemplates/index.d.ts +0 -16
  92. package/dist/types/logicTemplates/limitorder.d.ts +0 -70
  93. package/dist/types/logicTemplates/periodicpayment.d.ts +0 -58
  94. package/dist/types/logicTemplates/split.d.ts +0 -57
  95. package/dist/types/logicTemplates/templates.d.ts +0 -6
  96. package/src/client/algod.js +0 -365
  97. package/src/logic/langspec.json +0 -2014
  98. package/src/logic/logic.ts +0 -316
  99. package/src/logicTemplates/dynamicfee.js +0 -219
  100. package/src/logicTemplates/htlc.js +0 -165
  101. package/src/logicTemplates/index.js +0 -20
  102. package/src/logicTemplates/limitorder.js +0 -227
  103. package/src/logicTemplates/periodicpayment.js +0 -208
  104. package/src/logicTemplates/split.js +0 -208
  105. package/src/logicTemplates/templates.js +0 -78
@@ -1,295 +0,0 @@
1
- const { default: HTTPClient } = require('./client');
2
- const { setSendTransactionHeaders } = require('./v2/algod/sendRawTransaction');
3
- /** @deprecated v1 algod APIs are deprecated, please use the v2 client */
4
- function Algod(token = '', baseServer = 'http://r2.algorand.network', port = 4180, headers = {}) {
5
- // workaround to allow backwards compatibility for multiple headers
6
- let tokenHeader = token;
7
- if (typeof tokenHeader === 'string') {
8
- tokenHeader = { 'X-Algo-API-Token': tokenHeader };
9
- }
10
- // Get client
11
- const c = new HTTPClient(tokenHeader, baseServer, port, headers);
12
- /**
13
- * Takes an object and convert its note field to Buffer, if exist.
14
- * @param o
15
- * @returns {*}
16
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
17
- */
18
- function noteb64ToNote(o) {
19
- if (!(o.noteb64 === undefined || o.noteb64 === null)) {
20
- // eslint-disable-next-line no-param-reassign
21
- o.note = Buffer.from(o.noteb64, 'base64');
22
- }
23
- return o;
24
- }
25
- /**
26
- * status retrieves the StatusResponse from the running node
27
- * @param headerObj, optional
28
- * @returns {Promise<*>}
29
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
30
- */
31
- this.status = async (headerObj = {}) => {
32
- const res = await c.get('/v1/status', {}, headerObj);
33
- return res.body;
34
- };
35
- /**
36
- * healthCheck returns an empty object iff the node is running
37
- * @param headerObj, optional
38
- * @returns {Promise<*>}
39
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
40
- */
41
- this.healthCheck = async (headerObj = {}) => {
42
- const res = await c.get('/health', {}, headerObj);
43
- if (!res.ok) {
44
- throw new Error(`Health response: ${res.status}`);
45
- }
46
- return {};
47
- };
48
- /**
49
- * statusAfterBlock waits for round roundNumber to occur then returns the StatusResponse for this round.
50
- * This call blocks
51
- * @param roundNumber
52
- * @param headerObj, optional
53
- * @returns {Promise<*>}
54
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
55
- */
56
- this.statusAfterBlock = async (roundNumber, headerObj = {}) => {
57
- if (!Number.isInteger(roundNumber))
58
- throw Error('roundNumber should be an integer');
59
- const res = await c.get(`/v1/status/wait-for-block-after/${roundNumber}`, {}, headerObj);
60
- return res.body;
61
- };
62
- /**
63
- * pendingTransactions asks algod for a snapshot of current pending txns on the node, bounded by maxTxns.
64
- * If maxTxns = 0, fetches as many transactions as possible.
65
- * @param maxTxns - number
66
- * @param headerObj, optional
67
- * @returns {Promise<*>}
68
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
69
- */
70
- this.pendingTransactions = async (maxTxns, headerObj = {}) => {
71
- if (!Number.isInteger(maxTxns))
72
- throw Error('maxTxns should be an integer');
73
- const res = await c.get('/v1/transactions/pending', { max: maxTxns }, headerObj);
74
- if (res.statusCode === 200 &&
75
- res.body.truncatedTxns.transactions !== undefined) {
76
- for (let i = 0; i < res.body.truncatedTxns.transactions.length; i++) {
77
- res.body.truncatedTxns.transactions[i] = noteb64ToNote(res.body.truncatedTxns.transactions[i]);
78
- }
79
- }
80
- return res.body;
81
- };
82
- /**
83
- * versions retrieves the VersionResponse from the running node
84
- * @param headerObj, optional
85
- * @returns {Promise<*>}
86
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
87
- */
88
- this.versions = async (headerObj = {}) => {
89
- const res = await c.get('/versions', {}, headerObj);
90
- return res.body;
91
- };
92
- /**
93
- * LedgerSupply gets the supply details for the specified node's Ledger
94
- * @param headerObj, optional
95
- * @returns {Promise<*>}
96
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
97
- */
98
- this.ledgerSupply = async (headerObj = {}) => {
99
- const res = await c.get('/v1/ledger/supply', {}, headerObj);
100
- return res.body;
101
- };
102
- /**
103
- * transactionsByAddress returns all transactions for a PK [addr] in the [first, last] rounds range.
104
- * @param addr - string
105
- * @param first - number, optional
106
- * @param last - number, optional
107
- * @param maxTxns - number, optional
108
- * @param headers, optional
109
- * @returns {Promise<*>}
110
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
111
- */
112
- this.transactionByAddress = async (addr, first = null, last = null, maxTxns = null, headerObj = {}) => {
113
- if (first !== null && !Number.isInteger(first)) {
114
- throw Error('first round should be an integer');
115
- }
116
- if (last !== null && !Number.isInteger(last)) {
117
- throw Error('last round should be an integer');
118
- }
119
- const res = await c.get(`/v1/account/${addr}/transactions`, { firstRound: first, lastRound: last, max: maxTxns }, headerObj);
120
- if (res.statusCode === 200 && res.body.transactions !== undefined) {
121
- for (let i = 0; i < res.body.transactions.length; i++) {
122
- res.body.transactions[i] = noteb64ToNote(res.body.transactions[i]);
123
- }
124
- }
125
- return res.body;
126
- };
127
- /**
128
- * transactionsByAddressAndDate returns all transactions for a PK [addr] in the [fromDate, toDate] date range.
129
- * The date is a string in the YYYY-MM-DD format.
130
- * @param addr - string
131
- * @param fromDate - string
132
- * @param toDate - string
133
- * @param maxTxns - number, optional
134
- * @param headerObj, optional
135
- * @returns {Promise<*>}
136
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
137
- */
138
- this.transactionByAddressAndDate = async (addr, fromDate, toDate, maxTxns = null, headerObj = {}) => {
139
- const res = await c.get(`/v1/account/${addr}/transactions`, { fromDate, toDate, max: maxTxns }, headerObj);
140
- if (res.statusCode === 200 && res.body.transactions !== undefined) {
141
- for (let i = 0; i < res.body.transactions.length; i++) {
142
- res.body.transactions[i] = noteb64ToNote(res.body.transactions[i]);
143
- }
144
- }
145
- return res.body;
146
- };
147
- /**
148
- * transactionById returns the a transaction information of a specific txid [txId]
149
- * Note - This method is allowed only when Indexer is enabled.
150
- * @param txid
151
- * @param headerObj, optional
152
- * @returns {Promise<*>}
153
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
154
- */
155
- this.transactionById = async (txid, headerObj = {}) => {
156
- const res = await c.get(`/v1/transaction/${txid}`, {}, headerObj);
157
- if (res.statusCode === 200) {
158
- res.body = noteb64ToNote(res.body);
159
- }
160
- return res.body;
161
- };
162
- /**
163
- * transactionInformation returns the transaction information of a specific txid and an address
164
- * @param addr
165
- * @param txid
166
- * @param headerObj, optional
167
- * @returns {Promise<*>}
168
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
169
- */
170
- this.transactionInformation = async (addr, txid, headerObj = {}) => {
171
- const res = await c.get(`/v1/account/${addr}/transaction/${txid}`, {}, headerObj);
172
- if (res.statusCode === 200) {
173
- res.body = noteb64ToNote(res.body);
174
- }
175
- return res.body;
176
- };
177
- /**
178
- * pendingTransactionInformation returns the transaction information for a specific txid of a pending transaction
179
- * @param txid
180
- * @param headerObj, optional
181
- * @returns {Promise<*>}
182
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
183
- */
184
- this.pendingTransactionInformation = async (txid, headerObj = {}) => {
185
- const res = await c.get(`/v1/transactions/pending/${txid}`, {}, headerObj);
186
- if (res.statusCode === 200) {
187
- res.body = noteb64ToNote(res.body);
188
- }
189
- return res.body;
190
- };
191
- /**
192
- * accountInformation returns the passed account's information
193
- * @param addr - string
194
- * @param headerObj, optional
195
- * @returns {Promise<*>}
196
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
197
- */
198
- this.accountInformation = async (addr, headerObj = {}) => {
199
- const res = await c.get(`/v1/account/${addr}`, {}, headerObj);
200
- return res.body;
201
- };
202
- /**
203
- * assetInformation returns the information for the asset with the passed creator and index
204
- * @param index - number
205
- * @param headerObj, optional
206
- * @returns {Promise<*>}
207
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
208
- */
209
- this.assetInformation = async (index, headerObj = {}) => {
210
- const res = await c.get(`/v1/asset/${index}`, {}, headerObj);
211
- return res.body;
212
- };
213
- /**
214
- * suggestedFee gets the recommended transaction fee from the node
215
- * @param headerObj, optional
216
- * @returns {Promise<*>}
217
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
218
- */
219
- this.suggestedFee = async (headerObj = {}) => {
220
- const res = await c.get('/v1/transactions/fee', {}, headerObj);
221
- return res.body;
222
- };
223
- /**
224
- * sendRawTransaction gets an encoded SignedTxn and broadcasts it to the network
225
- * @param txn - Uin8Array
226
- * @param headerObj, optional
227
- * @returns {Promise<*>}
228
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
229
- */
230
- this.sendRawTransaction = async (txn, headerObj = {}) => {
231
- const txHeaders = setSendTransactionHeaders(headerObj);
232
- const res = await c.post('/v1/transactions', Buffer.from(txn), txHeaders);
233
- return res.body;
234
- };
235
- /**
236
- * sendRawTransactions gets a list of encoded SignedTxns and broadcasts it to the network
237
- * @param txn - Array of Uin8Array
238
- * @param headerObj, optional
239
- * @returns {Promise<*>}
240
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
241
- */
242
- this.sendRawTransactions = async (txns, headerObj = {}) => {
243
- const txHeaders = setSendTransactionHeaders(headerObj);
244
- const merged = Array.prototype.concat(...txns.map((arr) => Array.from(arr)));
245
- const res = await c.post('/v1/transactions', Buffer.from(merged), txHeaders);
246
- return res.body;
247
- };
248
- /**
249
- * getTransactionParams returns to common needed parameters for a new transaction
250
- * @param headerObj, optional
251
- * @returns {Promise<*>}
252
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
253
- */
254
- this.getTransactionParams = async (headerObj = {}) => {
255
- const res = await c.get('/v1/transactions/params', {}, headerObj);
256
- return res.body;
257
- };
258
- /**
259
- * suggestParams returns to common needed parameters for a new transaction, in a format the transaction builder expects
260
- * @param headerObj, optional
261
- * @returns {Object}
262
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
263
- */
264
- this.suggestParams = async (headerObj = {}) => {
265
- const result = await this.getTransactionParams(headerObj);
266
- return {
267
- flatFee: false,
268
- fee: result.fee,
269
- firstRound: result.lastRound,
270
- lastRound: result.lastRound + 1000,
271
- genesisID: result.genesisID,
272
- genesisHash: result.genesishashb64,
273
- };
274
- };
275
- /**
276
- * block gets the block info for the given round This call blocks
277
- * @param roundNumber
278
- * @param headerObj, optional
279
- * @returns {Promise<*>}
280
- * @deprecated v1 algod APIs are deprecated, please use the v2 client
281
- */
282
- this.block = async (roundNumber, headerObj = {}) => {
283
- if (!Number.isInteger(roundNumber))
284
- throw Error('roundNumber should be an integer');
285
- const res = await c.get(`/v1/block/${roundNumber}`, {}, headerObj);
286
- if (res.statusCode === 200 && res.body.txns.transactions !== undefined) {
287
- for (let i = 0; i < res.body.txns.transactions.length; i++) {
288
- res.body.txns.transactions[i] = noteb64ToNote(res.body.txns.transactions[i]);
289
- }
290
- }
291
- return res.body;
292
- };
293
- }
294
- module.exports = { Algod };
295
- //# sourceMappingURL=algod.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"algod.js","sourceRoot":"","sources":["../../../src/client/algod.js"],"names":[],"mappings":"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"}