algosdk 3.4.0 → 3.5.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 (47) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/algosdk.min.js +1 -1
  3. package/dist/browser/algosdk.min.js.map +1 -1
  4. package/dist/cjs/appAccess.js +261 -0
  5. package/dist/cjs/appAccess.js.map +1 -0
  6. package/dist/cjs/client/v2/indexer/models/types.js +266 -8
  7. package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
  8. package/dist/cjs/composer.js +13 -5
  9. package/dist/cjs/composer.js.map +1 -1
  10. package/dist/cjs/logicsig.js +54 -17
  11. package/dist/cjs/logicsig.js.map +1 -1
  12. package/dist/cjs/makeTxn.js +60 -12
  13. package/dist/cjs/makeTxn.js.map +1 -1
  14. package/dist/cjs/signing.js +4 -4
  15. package/dist/cjs/signing.js.map +1 -1
  16. package/dist/cjs/transaction.js +110 -0
  17. package/dist/cjs/transaction.js.map +1 -1
  18. package/dist/esm/appAccess.js +255 -0
  19. package/dist/esm/appAccess.js.map +1 -0
  20. package/dist/esm/client/v2/indexer/models/types.js +261 -6
  21. package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
  22. package/dist/esm/composer.js +13 -5
  23. package/dist/esm/composer.js.map +1 -1
  24. package/dist/esm/logicsig.js +54 -17
  25. package/dist/esm/logicsig.js.map +1 -1
  26. package/dist/esm/makeTxn.js +60 -12
  27. package/dist/esm/makeTxn.js.map +1 -1
  28. package/dist/esm/signing.js +4 -4
  29. package/dist/esm/signing.js.map +1 -1
  30. package/dist/esm/transaction.js +110 -0
  31. package/dist/esm/transaction.js.map +1 -1
  32. package/dist/types/appAccess.d.ts +28 -0
  33. package/dist/types/client/v2/indexer/models/types.d.ts +157 -8
  34. package/dist/types/composer.d.ts +6 -2
  35. package/dist/types/logicsig.d.ts +2 -0
  36. package/dist/types/makeTxn.d.ts +9 -9
  37. package/dist/types/transaction.d.ts +18 -0
  38. package/dist/types/types/transactions/base.d.ts +76 -0
  39. package/package.json +1 -1
  40. package/src/appAccess.ts +298 -0
  41. package/src/client/v2/indexer/models/types.ts +423 -5
  42. package/src/composer.ts +24 -4
  43. package/src/logicsig.ts +68 -17
  44. package/src/makeTxn.ts +105 -12
  45. package/src/signing.ts +4 -4
  46. package/src/transaction.ts +168 -0
  47. package/src/types/transactions/base.ts +91 -0
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.decodeUnsignedTransaction = exports.encodeUnsignedTransaction = exports.Transaction = void 0;
30
30
  const hi_base32_1 = __importDefault(require("hi-base32"));
31
31
  const boxStorage_js_1 = require("./boxStorage.js");
32
+ const appAccess_js_1 = require("./appAccess.js");
32
33
  const address_js_1 = require("./encoding/address.js");
33
34
  const encoding = __importStar(require("./encoding/encoding.js"));
34
35
  const index_js_1 = require("./encoding/schema/index.js");
@@ -150,6 +151,50 @@ function ensureBoxReference(input) {
150
151
  }
151
152
  throw new Error(`Not a box reference: ${input}`);
152
153
  }
154
+ function ensureHoldingReference(input) {
155
+ if (input != null && typeof input === 'object') {
156
+ const { assetIndex, address } = input;
157
+ return {
158
+ assetIndex: utils.ensureUint64(assetIndex),
159
+ address: ensureAddress(address),
160
+ };
161
+ }
162
+ throw new Error(`Not a holding reference: ${input}`);
163
+ }
164
+ function ensureLocalsReference(input) {
165
+ if (input != null && typeof input === 'object') {
166
+ const { appIndex, address } = input;
167
+ return {
168
+ appIndex: utils.ensureUint64(appIndex),
169
+ address: ensureAddress(address),
170
+ };
171
+ }
172
+ throw new Error(`Not a locals reference: ${input}`);
173
+ }
174
+ function ensureResourceReference(input) {
175
+ if (input != null && typeof input === 'object') {
176
+ const { address, appIndex, assetIndex, holding, locals, box } = input;
177
+ if (address !== undefined) {
178
+ return { address: ensureAddress(address) };
179
+ }
180
+ if (appIndex !== undefined) {
181
+ return { appIndex: utils.ensureUint64(appIndex) };
182
+ }
183
+ if (assetIndex !== undefined) {
184
+ return { assetIndex: utils.ensureUint64(assetIndex) };
185
+ }
186
+ if (holding !== undefined) {
187
+ return { holding: ensureHoldingReference(holding) };
188
+ }
189
+ if (locals !== undefined) {
190
+ return { locals: ensureLocalsReference(locals) };
191
+ }
192
+ if (box !== undefined) {
193
+ return { box: ensureBoxReference(box) };
194
+ }
195
+ }
196
+ throw new Error(`Not a resource reference: ${input}`);
197
+ }
153
198
  const TX_TAG = new TextEncoder().encode('TX');
154
199
  /**
155
200
  * Transaction enables construction of Algorand transactions
@@ -304,6 +349,8 @@ class Transaction {
304
349
  foreignApps: ensureArray(params.appCallParams.foreignApps ?? []).map(utils.ensureUint64),
305
350
  foreignAssets: ensureArray(params.appCallParams.foreignAssets ?? []).map(utils.ensureUint64),
306
351
  boxes: ensureArray(params.appCallParams.boxes ?? []).map(ensureBoxReference),
352
+ access: ensureArray(params.appCallParams.access ?? []).map(ensureResourceReference),
353
+ rejectVersion: utils.ensureSafeUnsignedInteger(params.appCallParams.rejectVersion ?? 0),
307
354
  };
308
355
  }
309
356
  if (params.stateProofParams) {
@@ -408,6 +455,7 @@ class Transaction {
408
455
  data.set('apas', this.applicationCall.foreignAssets);
409
456
  data.set('apfa', this.applicationCall.foreignApps);
410
457
  data.set('apbx', (0, boxStorage_js_1.boxReferencesToEncodingData)(this.applicationCall.boxes, this.applicationCall.foreignApps, this.applicationCall.appIndex));
458
+ data.set('al', (0, appAccess_js_1.resourceReferencesToEncodingData)(this.applicationCall.appIndex, this.applicationCall.access));
411
459
  data.set('apap', this.applicationCall.approvalProgram);
412
460
  data.set('apsu', this.applicationCall.clearProgram);
413
461
  data.set('apls', new Map([
@@ -419,6 +467,7 @@ class Transaction {
419
467
  ['nbs', this.applicationCall.numGlobalByteSlices],
420
468
  ]));
421
469
  data.set('apep', this.applicationCall.extraPages);
470
+ data.set('aprv', this.applicationCall.rejectVersion);
422
471
  return data;
423
472
  }
424
473
  if (this.stateProof) {
@@ -554,6 +603,7 @@ class Transaction {
554
603
  approvalProgram: data.get('apap'),
555
604
  clearProgram: data.get('apsu'),
556
605
  extraPages: data.get('apep'),
606
+ rejectVersion: data.get('aprv') ?? 0,
557
607
  };
558
608
  const localSchema = data.get('apls');
559
609
  if (localSchema) {
@@ -590,6 +640,10 @@ class Transaction {
590
640
  };
591
641
  });
592
642
  }
643
+ const references = data.get('al');
644
+ if (references) {
645
+ appCallParams.access = (0, appAccess_js_1.convertIndicesToResourceReferences)(references);
646
+ }
593
647
  params.appCallParams = appCallParams;
594
648
  }
595
649
  else if (params.type === base_js_1.TransactionType.stpf) {
@@ -823,6 +877,62 @@ Transaction.encodingSchema = new index_js_1.NamedMapSchema((0, index_js_1.allOmi
823
877
  },
824
878
  ])))),
825
879
  },
880
+ {
881
+ key: 'al',
882
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.ArraySchema(new index_js_1.NamedMapSchema((0, index_js_1.allOmitEmpty)([
883
+ {
884
+ key: 'd',
885
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.AddressSchema()),
886
+ },
887
+ {
888
+ key: 's',
889
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.Uint64Schema()),
890
+ },
891
+ {
892
+ key: 'p',
893
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.Uint64Schema()),
894
+ },
895
+ {
896
+ key: 'h',
897
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.NamedMapSchema((0, index_js_1.allOmitEmpty)([
898
+ {
899
+ key: 'd',
900
+ valueSchema: new index_js_1.Uint64Schema(),
901
+ },
902
+ {
903
+ key: 's',
904
+ valueSchema: new index_js_1.Uint64Schema(),
905
+ },
906
+ ]))),
907
+ },
908
+ {
909
+ key: 'l',
910
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.NamedMapSchema((0, index_js_1.allOmitEmpty)([
911
+ {
912
+ key: 'd',
913
+ valueSchema: new index_js_1.Uint64Schema(),
914
+ },
915
+ {
916
+ key: 'p',
917
+ valueSchema: new index_js_1.Uint64Schema(),
918
+ },
919
+ ]))),
920
+ },
921
+ {
922
+ key: 'b',
923
+ valueSchema: new index_js_1.OptionalSchema(new index_js_1.NamedMapSchema((0, index_js_1.allOmitEmpty)([
924
+ {
925
+ key: 'i',
926
+ valueSchema: new index_js_1.Uint64Schema(),
927
+ },
928
+ {
929
+ key: 'n',
930
+ valueSchema: new index_js_1.ByteArraySchema(),
931
+ },
932
+ ]))),
933
+ },
934
+ ])))),
935
+ },
826
936
  { key: 'apap', valueSchema: new index_js_1.OptionalSchema(new index_js_1.ByteArraySchema()) },
827
937
  { key: 'apsu', valueSchema: new index_js_1.OptionalSchema(new index_js_1.ByteArraySchema()) },
828
938
  {
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ import { Address } from './encoding/address.js';
2
+ import { ensureSafeUnsignedInteger } from './utils/utils.js';
3
+ /**
4
+ * resourceReferencesToEncodingData translates an array of ResourceReferences into an array of encoding data
5
+ * maps.
6
+ */
7
+ export function resourceReferencesToEncodingData(appIndex, references) {
8
+ const accessList = [];
9
+ function ensure(target) {
10
+ for (let idx = 0; idx < accessList.length; idx++) {
11
+ const a = accessList[idx];
12
+ if (a.get('d') === target.address &&
13
+ a.get('s') === target.assetIndex &&
14
+ a.get('p') === target.appIndex) {
15
+ return idx + 1; // 1-based index
16
+ }
17
+ }
18
+ if (target.address) {
19
+ accessList.push(new Map([['d', target.address]]));
20
+ }
21
+ if (target.assetIndex) {
22
+ accessList.push(new Map([['s', target.assetIndex]]));
23
+ }
24
+ if (target.appIndex) {
25
+ accessList.push(new Map([['p', target.appIndex]]));
26
+ }
27
+ return accessList.length; // length is 1-based position of new element
28
+ }
29
+ const zeroAddr = Address.zeroAddress();
30
+ for (const rr of references) {
31
+ if (rr.address || rr.assetIndex || rr.appIndex) {
32
+ ensure(rr);
33
+ continue;
34
+ }
35
+ if (rr.holding) {
36
+ const h = rr.holding;
37
+ let addrIdx = 0;
38
+ if (h.address && !h.address.equals(zeroAddr)) {
39
+ addrIdx = ensure({ address: h.address });
40
+ }
41
+ const assetIdx = ensure({ assetIndex: h.assetIndex });
42
+ accessList.push(new Map([
43
+ [
44
+ 'h',
45
+ new Map([
46
+ ['d', addrIdx],
47
+ ['s', assetIdx],
48
+ ]),
49
+ ],
50
+ ]));
51
+ continue;
52
+ }
53
+ if (rr.locals) {
54
+ const l = rr.locals;
55
+ let addrIdx = 0;
56
+ if (l.address && !l.address.equals(zeroAddr)) {
57
+ addrIdx = ensure({ address: l.address });
58
+ }
59
+ let appIdx = 0;
60
+ if (l.appIndex && BigInt(l.appIndex) !== appIndex) {
61
+ appIdx = ensure({ appIndex: l.appIndex });
62
+ }
63
+ accessList.push(new Map([
64
+ [
65
+ 'l',
66
+ new Map([
67
+ ['d', addrIdx],
68
+ ['p', appIdx],
69
+ ]),
70
+ ],
71
+ ]));
72
+ continue;
73
+ }
74
+ if (rr.box) {
75
+ const b = rr.box;
76
+ let appIdx = 0;
77
+ if (b.appIndex && BigInt(b.appIndex) !== appIndex) {
78
+ appIdx = ensure({ appIndex: b.appIndex });
79
+ }
80
+ accessList.push(new Map([
81
+ [
82
+ 'b',
83
+ new Map([
84
+ ['i', appIdx],
85
+ ['n', b.name],
86
+ ]),
87
+ ],
88
+ ]));
89
+ }
90
+ }
91
+ return accessList;
92
+ }
93
+ export function convertIndicesToResourceReferences(accessList) {
94
+ const references = [];
95
+ for (const item of accessList) {
96
+ const address = item.get('d');
97
+ const assetIndex = item.get('s');
98
+ const appIndex = item.get('p');
99
+ if (address) {
100
+ references.push({ address });
101
+ continue;
102
+ }
103
+ if (assetIndex) {
104
+ references.push({ assetIndex });
105
+ continue;
106
+ }
107
+ if (appIndex) {
108
+ references.push({ appIndex });
109
+ continue;
110
+ }
111
+ const holding = item.get('h');
112
+ if (holding) {
113
+ const hAddressIndex = ensureSafeUnsignedInteger(holding.get('d') ?? 0);
114
+ const hAssetIndex = ensureSafeUnsignedInteger(holding.get('s'));
115
+ if (!hAssetIndex) {
116
+ throw new Error(`Holding missing asset index: ${holding}`);
117
+ }
118
+ const hAddress = hAddressIndex === 0
119
+ ? Address.zeroAddress()
120
+ : references[hAddressIndex - 1].address;
121
+ const asset = references[hAssetIndex - 1].assetIndex;
122
+ references.push({ holding: { address: hAddress, assetIndex: asset } });
123
+ continue;
124
+ }
125
+ const locals = item.get('l');
126
+ if (locals) {
127
+ const lAddressIndex = ensureSafeUnsignedInteger(locals.get('d') ?? 0);
128
+ const lAppIndex = ensureSafeUnsignedInteger(locals.get('p') ?? 0);
129
+ const lAddress = lAddressIndex === 0
130
+ ? Address.zeroAddress()
131
+ : references[lAddressIndex - 1].address;
132
+ const app = lAppIndex === 0
133
+ ? BigInt(0)
134
+ : references[lAppIndex - 1].appIndex;
135
+ references.push({ locals: { address: lAddress, appIndex: app } });
136
+ continue;
137
+ }
138
+ const box = item.get('b');
139
+ if (box) {
140
+ const bAppIndex = ensureSafeUnsignedInteger(box.get('i') ?? 0);
141
+ const name = box.get('n');
142
+ if (!name) {
143
+ throw new Error(`Box missing name: ${box}`);
144
+ }
145
+ const app = bAppIndex === 0
146
+ ? BigInt(0)
147
+ : references[bAppIndex - 1].appIndex;
148
+ references.push({ box: { appIndex: app, name } });
149
+ }
150
+ }
151
+ return references;
152
+ }
153
+ /**
154
+ * foreignArraysToResourceReferences makes a single array of ResourceReferences from various foreign resource arrays.
155
+ * Note, runtime representation of ResourceReference uses addresses, app and asset identifiers, not indexes.
156
+ *
157
+ * @param accounts - optional array of accounts
158
+ * @param foreignAssets - optional array of foreign assets
159
+ * @param foreignApps - optional array of foreign apps
160
+ * @param holdings - optional array of holdings
161
+ * @param locals - optional array of locals
162
+ * @param boxes - optional array of boxes
163
+ */
164
+ export function foreignArraysToResourceReferences({ appIndex, accounts, foreignAssets, foreignApps, holdings, locals, boxes, }) {
165
+ const accessList = [];
166
+ function ensureAddress(addr) {
167
+ let addr2;
168
+ if (typeof addr === 'string') {
169
+ if (addr === '') {
170
+ return;
171
+ }
172
+ addr2 = Address.fromString(addr);
173
+ }
174
+ else {
175
+ addr2 = addr;
176
+ }
177
+ if (addr2.equals(Address.zeroAddress())) {
178
+ return;
179
+ }
180
+ let addrFound = false;
181
+ for (const rr of accessList) {
182
+ if (!rr.address) {
183
+ continue;
184
+ }
185
+ let rrAddress = rr.address;
186
+ if (typeof rr.address === 'string') {
187
+ rrAddress = Address.fromString(rr.address);
188
+ }
189
+ if (rrAddress.equals(addr2)) {
190
+ addrFound = true;
191
+ break;
192
+ }
193
+ }
194
+ if (!addrFound) {
195
+ accessList.push({ address: addr });
196
+ }
197
+ }
198
+ function ensureAsset(asset) {
199
+ let assetFound = false;
200
+ for (const rr of accessList) {
201
+ if (rr.assetIndex === asset) {
202
+ assetFound = true;
203
+ break;
204
+ }
205
+ }
206
+ if (!assetFound) {
207
+ accessList.push({ assetIndex: asset });
208
+ }
209
+ }
210
+ function ensureApp(app) {
211
+ let appFound = false;
212
+ for (const rr of accessList) {
213
+ if (rr.appIndex === app) {
214
+ appFound = true;
215
+ break;
216
+ }
217
+ }
218
+ if (!appFound) {
219
+ accessList.push({ appIndex: app });
220
+ }
221
+ }
222
+ for (const acct of accounts ?? []) {
223
+ ensureAddress(acct);
224
+ }
225
+ for (const asset of foreignAssets ?? []) {
226
+ ensureAsset(asset);
227
+ }
228
+ for (const app of foreignApps ?? []) {
229
+ ensureApp(app);
230
+ }
231
+ for (const holding of holdings ?? []) {
232
+ if (holding.address) {
233
+ ensureAddress(holding.address);
234
+ }
235
+ ensureAsset(holding.assetIndex);
236
+ accessList.push({ holding });
237
+ }
238
+ for (const local of locals ?? []) {
239
+ if (local.address) {
240
+ ensureAddress(local.address);
241
+ }
242
+ if (local.appIndex && BigInt(local.appIndex) !== appIndex) {
243
+ ensureApp(local.appIndex);
244
+ }
245
+ accessList.push({ locals: local });
246
+ }
247
+ for (const box of boxes ?? []) {
248
+ if (box.appIndex && BigInt(box.appIndex) !== appIndex) {
249
+ ensureApp(box.appIndex);
250
+ }
251
+ accessList.push({ box });
252
+ }
253
+ return accessList;
254
+ }
255
+ //# sourceMappingURL=appAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appAccess.js","sourceRoot":"","sources":["../../src/appAccess.ts"],"names":[],"mappings":"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"}