algosdk 3.6.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/browser/algosdk.min.js +1 -1
- package/dist/browser/algosdk.min.js.map +1 -1
- package/dist/cjs/appAccess.js +4 -0
- package/dist/cjs/appAccess.js.map +1 -1
- package/dist/cjs/client/v2/algod/algod.js +0 -18
- package/dist/cjs/client/v2/algod/algod.js.map +1 -1
- package/dist/cjs/client/v2/algod/models/types.js +153 -437
- package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
- package/dist/cjs/client/v2/indexer/models/types.js +163 -12
- package/dist/cjs/client/v2/indexer/models/types.js.map +1 -1
- package/dist/cjs/composer.js +4 -6
- package/dist/cjs/composer.js.map +1 -1
- package/dist/cjs/ed25519-signer.js +76 -0
- package/dist/cjs/ed25519-signer.js.map +1 -0
- package/dist/cjs/encoding/address.js +61 -1
- package/dist/cjs/encoding/address.js.map +1 -1
- package/dist/cjs/falcon-signer.js +17 -0
- package/dist/cjs/falcon-signer.js.map +1 -0
- package/dist/cjs/heartbeat.js +7 -0
- package/dist/cjs/heartbeat.js.map +1 -1
- package/dist/cjs/logicsig.js +201 -16
- package/dist/cjs/logicsig.js.map +1 -1
- package/dist/cjs/main.js +32 -63
- package/dist/cjs/main.js.map +1 -1
- package/dist/cjs/makeTxn.js +11 -2
- package/dist/cjs/makeTxn.js.map +1 -1
- package/dist/cjs/mnemonic/mnemonic.js +26 -1
- package/dist/cjs/mnemonic/mnemonic.js.map +1 -1
- package/dist/cjs/multisigSigning.js +78 -1
- package/dist/cjs/multisigSigning.js.map +1 -1
- package/dist/cjs/pq-signer.js +80 -0
- package/dist/cjs/pq-signer.js.map +1 -0
- package/dist/cjs/signedTransaction.js +15 -1
- package/dist/cjs/signedTransaction.js.map +1 -1
- package/dist/cjs/signer.js.map +1 -1
- package/dist/cjs/signing.js +94 -7
- package/dist/cjs/signing.js.map +1 -1
- package/dist/cjs/transaction.js +17 -1
- package/dist/cjs/transaction.js.map +1 -1
- package/dist/cjs/types/statedelta.js +17 -0
- package/dist/cjs/types/statedelta.js.map +1 -1
- package/dist/cjs/types/transactions/encoded.js +51 -1
- package/dist/cjs/types/transactions/encoded.js.map +1 -1
- package/dist/cjs/utils/ed25519-check.js +69 -0
- package/dist/cjs/utils/ed25519-check.js.map +1 -0
- package/dist/cjs/utils/utils.js +14 -1
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/esm/appAccess.js +4 -0
- package/dist/esm/appAccess.js.map +1 -1
- package/dist/esm/client/v2/algod/algod.js +0 -18
- package/dist/esm/client/v2/algod/algod.js.map +1 -1
- package/dist/esm/client/v2/algod/models/types.js +149 -430
- package/dist/esm/client/v2/algod/models/types.js.map +1 -1
- package/dist/esm/client/v2/indexer/models/types.js +161 -11
- package/dist/esm/client/v2/indexer/models/types.js.map +1 -1
- package/dist/esm/composer.js +4 -6
- package/dist/esm/composer.js.map +1 -1
- package/dist/esm/ed25519-signer.js +72 -0
- package/dist/esm/ed25519-signer.js.map +1 -0
- package/dist/esm/encoding/address.js +58 -0
- package/dist/esm/encoding/address.js.map +1 -1
- package/dist/esm/falcon-signer.js +13 -0
- package/dist/esm/falcon-signer.js.map +1 -0
- package/dist/esm/heartbeat.js +8 -1
- package/dist/esm/heartbeat.js.map +1 -1
- package/dist/esm/logicsig.js +200 -15
- package/dist/esm/logicsig.js.map +1 -1
- package/dist/esm/main.js +8 -56
- package/dist/esm/main.js.map +1 -1
- package/dist/esm/makeTxn.js +11 -2
- package/dist/esm/makeTxn.js.map +1 -1
- package/dist/esm/mnemonic/mnemonic.js +25 -1
- package/dist/esm/mnemonic/mnemonic.js.map +1 -1
- package/dist/esm/multisigSigning.js +75 -0
- package/dist/esm/multisigSigning.js.map +1 -1
- package/dist/esm/pq-signer.js +76 -0
- package/dist/esm/pq-signer.js.map +1 -0
- package/dist/esm/signedTransaction.js +16 -2
- package/dist/esm/signedTransaction.js.map +1 -1
- package/dist/esm/signer.js.map +1 -1
- package/dist/esm/signing.js +91 -8
- package/dist/esm/signing.js.map +1 -1
- package/dist/esm/transaction.js +17 -1
- package/dist/esm/transaction.js.map +1 -1
- package/dist/esm/types/statedelta.js +17 -0
- package/dist/esm/types/statedelta.js.map +1 -1
- package/dist/esm/types/transactions/encoded.js +49 -1
- package/dist/esm/types/transactions/encoded.js.map +1 -1
- package/dist/esm/utils/ed25519-check.js +65 -0
- package/dist/esm/utils/ed25519-check.js.map +1 -0
- package/dist/esm/utils/utils.js +12 -0
- package/dist/esm/utils/utils.js.map +1 -1
- package/dist/types/client/v2/algod/algod.d.ts +0 -16
- package/dist/types/client/v2/algod/models/types.d.ts +90 -220
- package/dist/types/client/v2/indexer/models/types.d.ts +114 -7
- package/dist/types/composer.d.ts +3 -3
- package/dist/types/ed25519-signer.d.ts +7 -0
- package/dist/types/encoding/address.d.ts +37 -0
- package/dist/types/falcon-signer.d.ts +11 -0
- package/dist/types/heartbeat.d.ts +2 -0
- package/dist/types/logicsig.d.ts +72 -1
- package/dist/types/main.d.ts +8 -44
- package/dist/types/makeTxn.d.ts +8 -2
- package/dist/types/mnemonic/mnemonic.d.ts +13 -0
- package/dist/types/multisigSigning.d.ts +49 -0
- package/dist/types/pq-signer.d.ts +8 -0
- package/dist/types/signedTransaction.d.ts +7 -2
- package/dist/types/signer.d.ts +46 -0
- package/dist/types/signing.d.ts +45 -0
- package/dist/types/transaction.d.ts +10 -0
- package/dist/types/types/statedelta.d.ts +18 -0
- package/dist/types/types/transactions/base.d.ts +10 -0
- package/dist/types/types/transactions/encoded.d.ts +27 -0
- package/dist/types/utils/ed25519-check.d.ts +10 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/package.json +2 -1
- package/src/appAccess.ts +5 -0
- package/src/client/v2/algod/algod.ts +0 -19
- package/src/client/v2/algod/models/types.ts +324 -790
- package/src/client/v2/indexer/models/types.ts +280 -8
- package/src/composer.ts +7 -11
- package/src/ed25519-signer.ts +125 -0
- package/src/encoding/address.ts +80 -0
- package/src/falcon-signer.ts +33 -0
- package/src/heartbeat.ts +11 -0
- package/src/logicsig.ts +258 -16
- package/src/main.ts +30 -60
- package/src/makeTxn.ts +13 -4
- package/src/mnemonic/mnemonic.ts +34 -1
- package/src/multisigSigning.ts +111 -0
- package/src/pq-signer.ts +123 -0
- package/src/signedTransaction.ts +24 -0
- package/src/signer.ts +62 -0
- package/src/signing.ts +109 -8
- package/src/transaction.ts +19 -1
- package/src/types/statedelta.ts +34 -0
- package/src/types/transactions/base.ts +11 -0
- package/src/types/transactions/encoded.ts +88 -0
- package/src/utils/ed25519-check.ts +67 -0
- package/src/utils/utils.ts +13 -0
- package/dist/cjs/client/v2/algod/dryrun.js +0 -34
- package/dist/cjs/client/v2/algod/dryrun.js.map +0 -1
- package/dist/cjs/dryrun.js +0 -214
- package/dist/cjs/dryrun.js.map +0 -1
- package/dist/esm/client/v2/algod/dryrun.js +0 -28
- package/dist/esm/client/v2/algod/dryrun.js.map +0 -1
- package/dist/esm/dryrun.js +0 -208
- package/dist/esm/dryrun.js.map +0 -1
- package/dist/types/client/v2/algod/dryrun.d.ts +0 -11
- package/dist/types/dryrun.d.ts +0 -28
- package/src/client/v2/algod/dryrun.ts +0 -38
- package/src/dryrun.ts +0 -292
package/src/types/statedelta.ts
CHANGED
|
@@ -139,6 +139,10 @@ export class AppParams implements Encodable {
|
|
|
139
139
|
{ key: 'lsch', valueSchema: StateSchema.encodingSchema }, // localStateSchema
|
|
140
140
|
{ key: 'gsch', valueSchema: StateSchema.encodingSchema }, // globalStateSchema
|
|
141
141
|
{ key: 'epp', valueSchema: new Uint64Schema() }, // extraProgramPages
|
|
142
|
+
{ key: 'v', valueSchema: new Uint64Schema() }, // version
|
|
143
|
+
{ key: 'ss', valueSchema: new AddressSchema() }, // sizeSponsor
|
|
144
|
+
{ key: 'fbr', valueSchema: new BooleanSchema() }, // foreignBoxReads
|
|
145
|
+
{ key: 'fba', valueSchema: new BooleanSchema() }, // familyBoxAccess
|
|
142
146
|
])
|
|
143
147
|
);
|
|
144
148
|
|
|
@@ -148,6 +152,20 @@ export class AppParams implements Encodable {
|
|
|
148
152
|
public localStateSchema: StateSchema;
|
|
149
153
|
public globalStateSchema: StateSchema;
|
|
150
154
|
public extraProgramPages: number;
|
|
155
|
+
public version: bigint;
|
|
156
|
+
/**
|
|
157
|
+
* If non-zero, the account that must hold MBR for extra program pages and the
|
|
158
|
+
* global schema.
|
|
159
|
+
*/
|
|
160
|
+
public sizeSponsor: Address;
|
|
161
|
+
/**
|
|
162
|
+
* When true, any app may read this app's boxes.
|
|
163
|
+
*/
|
|
164
|
+
public foreignBoxReads: boolean;
|
|
165
|
+
/**
|
|
166
|
+
* When true, apps with the same creator may read and write this app's boxes.
|
|
167
|
+
*/
|
|
168
|
+
public familyBoxAccess: boolean;
|
|
151
169
|
|
|
152
170
|
constructor(params: {
|
|
153
171
|
approvalProgram: Uint8Array;
|
|
@@ -156,6 +174,10 @@ export class AppParams implements Encodable {
|
|
|
156
174
|
localStateSchema: StateSchema;
|
|
157
175
|
globalStateSchema: StateSchema;
|
|
158
176
|
extraProgramPages: number;
|
|
177
|
+
version?: bigint;
|
|
178
|
+
sizeSponsor?: Address;
|
|
179
|
+
foreignBoxReads?: boolean;
|
|
180
|
+
familyBoxAccess?: boolean;
|
|
159
181
|
}) {
|
|
160
182
|
this.approvalProgram = params.approvalProgram;
|
|
161
183
|
this.clearStateProgram = params.clearStateProgram;
|
|
@@ -163,6 +185,10 @@ export class AppParams implements Encodable {
|
|
|
163
185
|
this.localStateSchema = params.localStateSchema;
|
|
164
186
|
this.globalStateSchema = params.globalStateSchema;
|
|
165
187
|
this.extraProgramPages = params.extraProgramPages;
|
|
188
|
+
this.version = params.version ?? BigInt(0);
|
|
189
|
+
this.sizeSponsor = params.sizeSponsor ?? Address.zeroAddress();
|
|
190
|
+
this.foreignBoxReads = params.foreignBoxReads ?? false;
|
|
191
|
+
this.familyBoxAccess = params.familyBoxAccess ?? false;
|
|
166
192
|
}
|
|
167
193
|
|
|
168
194
|
// eslint-disable-next-line class-methods-use-this
|
|
@@ -178,6 +204,10 @@ export class AppParams implements Encodable {
|
|
|
178
204
|
['lsch', this.localStateSchema.toEncodingData()],
|
|
179
205
|
['gsch', this.globalStateSchema.toEncodingData()],
|
|
180
206
|
['epp', this.extraProgramPages],
|
|
207
|
+
['v', this.version],
|
|
208
|
+
['ss', this.sizeSponsor],
|
|
209
|
+
['fbr', this.foreignBoxReads],
|
|
210
|
+
['fba', this.familyBoxAccess],
|
|
181
211
|
]);
|
|
182
212
|
}
|
|
183
213
|
|
|
@@ -195,6 +225,10 @@ export class AppParams implements Encodable {
|
|
|
195
225
|
localStateSchema: StateSchema.fromEncodingData(data.get('lsch')),
|
|
196
226
|
globalStateSchema: StateSchema.fromEncodingData(data.get('gsch')),
|
|
197
227
|
extraProgramPages: Number(data.get('epp')),
|
|
228
|
+
version: data.get('v'),
|
|
229
|
+
sizeSponsor: data.get('ss'),
|
|
230
|
+
foreignBoxReads: data.get('fbr'),
|
|
231
|
+
familyBoxAccess: data.get('fba'),
|
|
198
232
|
});
|
|
199
233
|
}
|
|
200
234
|
}
|
|
@@ -592,6 +592,17 @@ export interface HeartbeatTransactionParams {
|
|
|
592
592
|
* Must match hbAddress account's current KeyDilution.
|
|
593
593
|
*/
|
|
594
594
|
keyDilution: bigint;
|
|
595
|
+
|
|
596
|
+
/**
|
|
597
|
+
* Requests the challenge fee discount: when set, the required fee is reduced
|
|
598
|
+
* by one min fee. The network verifies that hbAddress is actually under
|
|
599
|
+
* challenge before granting it, and a heartbeat claiming the discount may not
|
|
600
|
+
* carry any extra fields (note, lease, group, etc.).
|
|
601
|
+
*
|
|
602
|
+
* Only allowed once transaction size pricing is enabled. Before that, the
|
|
603
|
+
* discount was inferred from an underpaid singleton heartbeat instead.
|
|
604
|
+
*/
|
|
605
|
+
challengeDiscount?: boolean;
|
|
595
606
|
}
|
|
596
607
|
|
|
597
608
|
/**
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
NamedMapSchema,
|
|
3
3
|
FixedLengthByteArraySchema,
|
|
4
|
+
ByteArraySchema,
|
|
4
5
|
Uint64Schema,
|
|
5
6
|
ArraySchema,
|
|
6
7
|
OptionalSchema,
|
|
7
8
|
allOmitEmpty,
|
|
8
9
|
} from '../../encoding/schema/index.js';
|
|
9
10
|
import { ensureSafeUnsignedInteger } from '../../utils/utils.js';
|
|
11
|
+
import { PQ_SALT_MAX, PQ_SCHEME_SIZE } from '../../encoding/address.js';
|
|
10
12
|
|
|
11
13
|
export interface EncodedSubsig {
|
|
12
14
|
/**
|
|
@@ -116,3 +118,89 @@ export function encodedMultiSigToEncodingData(
|
|
|
116
118
|
['subsig', msig.subsig.map(encodedSubsigToEncodingData)],
|
|
117
119
|
]);
|
|
118
120
|
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* A structure for the encoded post-quantum signature transaction authorization
|
|
124
|
+
* proof. Mirrors the `PQSig` struct from go-algorand.
|
|
125
|
+
*/
|
|
126
|
+
export interface EncodedPQSig {
|
|
127
|
+
/**
|
|
128
|
+
* The 2-byte identifier of the post-quantum signature scheme (e.g. "f1"
|
|
129
|
+
* for Falcon-1024).
|
|
130
|
+
*/
|
|
131
|
+
sch: Uint8Array;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* The 1-byte salt used when deriving the post-quantum account address from the
|
|
135
|
+
* public key.
|
|
136
|
+
*/
|
|
137
|
+
slt: number;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The post-quantum public key.
|
|
141
|
+
*/
|
|
142
|
+
pk: Uint8Array;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* The post-quantum signature over the transaction.
|
|
146
|
+
*/
|
|
147
|
+
sig: Uint8Array;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export const ENCODED_PQSIG_SCHEMA = new NamedMapSchema(
|
|
151
|
+
allOmitEmpty([
|
|
152
|
+
{
|
|
153
|
+
key: 'sch',
|
|
154
|
+
valueSchema: new ByteArraySchema(),
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
key: 'slt',
|
|
158
|
+
valueSchema: new Uint64Schema(),
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
key: 'pk',
|
|
162
|
+
valueSchema: new ByteArraySchema(),
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
key: 'sig',
|
|
166
|
+
valueSchema: new ByteArraySchema(),
|
|
167
|
+
},
|
|
168
|
+
])
|
|
169
|
+
);
|
|
170
|
+
|
|
171
|
+
export function encodedPQSigFromEncodingData(data: unknown): EncodedPQSig {
|
|
172
|
+
if (!(data instanceof Map)) {
|
|
173
|
+
throw new Error(`Invalid decoded EncodedPQSig: ${data}`);
|
|
174
|
+
}
|
|
175
|
+
const sch = data.get('sch') as Uint8Array;
|
|
176
|
+
if (sch.length !== PQ_SCHEME_SIZE) {
|
|
177
|
+
throw new Error(
|
|
178
|
+
`Invalid decoded EncodedPQSig: expected a ${PQ_SCHEME_SIZE}-byte scheme, got ${sch.length} bytes`
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
// The salt occupies a single byte of the address preimage, so anything wider
|
|
182
|
+
// could never have produced a valid address.
|
|
183
|
+
const slt = ensureSafeUnsignedInteger(data.get('slt'));
|
|
184
|
+
if (slt > PQ_SALT_MAX) {
|
|
185
|
+
throw new Error(
|
|
186
|
+
`Invalid decoded EncodedPQSig: salt ${slt} exceeds the maximum of ${PQ_SALT_MAX}`
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
sch,
|
|
191
|
+
slt,
|
|
192
|
+
pk: data.get('pk'),
|
|
193
|
+
sig: data.get('sig'),
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export function encodedPQSigToEncodingData(
|
|
198
|
+
pqsig: EncodedPQSig
|
|
199
|
+
): Map<string, unknown> {
|
|
200
|
+
return new Map<string, unknown>([
|
|
201
|
+
['sch', pqsig.sch],
|
|
202
|
+
['slt', pqsig.slt],
|
|
203
|
+
['pk', pqsig.pk],
|
|
204
|
+
['sig', pqsig.sig],
|
|
205
|
+
]);
|
|
206
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/* eslint-disable no-bitwise */
|
|
2
|
+
|
|
3
|
+
const p = (1n << 255n) - 19n;
|
|
4
|
+
|
|
5
|
+
const ED25519_PUBLIC_KEY_LENGTH = 32;
|
|
6
|
+
|
|
7
|
+
function powMod(base: bigint, exp: bigint) {
|
|
8
|
+
let res = 1n;
|
|
9
|
+
|
|
10
|
+
let currentExp = exp;
|
|
11
|
+
let currentBase = ((base % p) + p) % p;
|
|
12
|
+
|
|
13
|
+
while (currentExp > 0n) {
|
|
14
|
+
if (currentExp & 1n) res = (res * currentBase) % p;
|
|
15
|
+
currentBase = (currentBase * currentBase) % p;
|
|
16
|
+
currentExp >>= 1n;
|
|
17
|
+
}
|
|
18
|
+
return res;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const d = (((-121665n * powMod(121666n, p - 2n)) % p) + p) % p;
|
|
22
|
+
const I = powMod(2n, (p - 1n) / 4n);
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Decode the little-endian y coordinate of an Ed25519 point encoding, dropping
|
|
26
|
+
* the sign-of-x bit. The result is not reduced mod p; `hasValidX` reduces it.
|
|
27
|
+
*/
|
|
28
|
+
function decodeY(keyBytes: Uint8Array): bigint {
|
|
29
|
+
const bytes = keyBytes.slice();
|
|
30
|
+
bytes[31] &= 0x7f;
|
|
31
|
+
let y = 0n;
|
|
32
|
+
for (let i = 31; i >= 0; i--) y = (y << 8n) | BigInt(bytes[i]);
|
|
33
|
+
return y;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function hasValidX(y: bigint): boolean {
|
|
37
|
+
// Reducing here is what makes this the broad predicate: non-canonical
|
|
38
|
+
// encodings with y >= p are accepted if their reduced value is on the curve.
|
|
39
|
+
const yr = ((y % p) + p) % p;
|
|
40
|
+
const y2 = (yr * yr) % p;
|
|
41
|
+
const u = (y2 - 1n + p) % p;
|
|
42
|
+
const v = (d * y2 + 1n) % p;
|
|
43
|
+
if (v === 0n) return false; // no x exists for this y
|
|
44
|
+
const vInv = powMod(v, p - 2n);
|
|
45
|
+
const x2 = (u * vInv) % p;
|
|
46
|
+
const x1 = powMod(x2, (p + 3n) / 8n);
|
|
47
|
+
if ((x1 * x1) % p === x2) return true;
|
|
48
|
+
const x1b = (x1 * I) % p;
|
|
49
|
+
if ((x1b * x1b) % p === x2) return true;
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Report whether the given bytes decode to an Edwards25519 curve point.
|
|
55
|
+
*
|
|
56
|
+
* This over-approximates whatever the verifier's decoder accepts: small-order
|
|
57
|
+
* points and non-canonical encodings (such as y == p) count as curve points,
|
|
58
|
+
* matching decoders like filippo.io/edwards25519. Over-approximating is the
|
|
59
|
+
* safe direction here, because the only caller uses this to *reject* candidate
|
|
60
|
+
* post-quantum addresses that an Ed25519 key could also occupy.
|
|
61
|
+
*/
|
|
62
|
+
export function couldBeCurvePoint(keyBytes: Uint8Array): boolean {
|
|
63
|
+
// An Ed25519 public key is always exactly 32 bytes, so nothing else can
|
|
64
|
+
// collide with one.
|
|
65
|
+
if (keyBytes.length !== ED25519_PUBLIC_KEY_LENGTH) return false;
|
|
66
|
+
return hasValidX(decodeY(keyBytes));
|
|
67
|
+
}
|
package/src/utils/utils.ts
CHANGED
|
@@ -205,3 +205,16 @@ export function ensureUint64(value: unknown): bigint {
|
|
|
205
205
|
}
|
|
206
206
|
return bigIntValue;
|
|
207
207
|
}
|
|
208
|
+
|
|
209
|
+
export function isEmptyObject(obj: any) {
|
|
210
|
+
if (!obj || typeof obj !== 'object') return false;
|
|
211
|
+
|
|
212
|
+
for (const key in obj) {
|
|
213
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
214
|
+
if (obj[key] !== undefined) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const encoding_js_1 = require("../../../encoding/encoding.js");
|
|
7
|
-
const jsonrequest_js_1 = __importDefault(require("../jsonrequest.js"));
|
|
8
|
-
const compile_js_1 = require("./compile.js");
|
|
9
|
-
const types_js_1 = require("./models/types.js");
|
|
10
|
-
class Dryrun extends jsonrequest_js_1.default {
|
|
11
|
-
constructor(c, dr) {
|
|
12
|
-
super(c);
|
|
13
|
-
this.blob = (0, encoding_js_1.encodeMsgpack)(dr);
|
|
14
|
-
}
|
|
15
|
-
// eslint-disable-next-line class-methods-use-this
|
|
16
|
-
path() {
|
|
17
|
-
return '/v2/teal/dryrun';
|
|
18
|
-
}
|
|
19
|
-
executeRequest(headers, customOptions) {
|
|
20
|
-
const txHeaders = (0, compile_js_1.setHeaders)(headers);
|
|
21
|
-
return this.c.post({
|
|
22
|
-
relativePath: this.path(),
|
|
23
|
-
data: this.blob,
|
|
24
|
-
requestHeaders: txHeaders,
|
|
25
|
-
customOptions,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
// eslint-disable-next-line class-methods-use-this
|
|
29
|
-
prepare(response) {
|
|
30
|
-
return (0, encoding_js_1.decodeJSON)(response.getJSONText(), types_js_1.DryrunResponse);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
exports.default = Dryrun;
|
|
34
|
-
//# sourceMappingURL=dryrun.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dryrun.js","sourceRoot":"","sources":["../../../../../src/client/v2/algod/dryrun.ts"],"names":[],"mappings":";;;;;AACA,+DAA0E;AAC1E,uEAA4C;AAC5C,6CAA0C;AAC1C,gDAAmD;AAGnD,MAAqB,MAAO,SAAQ,wBAA2B;IAG7D,YAAY,CAAa,EAAE,EAA0B;QACnD,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,GAAG,IAAA,2BAAa,EAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kDAAkD;IAClD,IAAI;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,cAAc,CACtB,OAAgC,EAChC,aAAuC;QAEvC,MAAM,SAAS,GAAG,IAAA,uBAAU,EAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,SAAS;YACzB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,QAA4B;QAClC,OAAO,IAAA,wBAAU,EAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,yBAAc,CAAC,CAAC;IAC5D,CAAC;CACF;AA9BD,yBA8BC"}
|
package/dist/cjs/dryrun.js
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dryrunTxnResultLogicSigTrace = exports.dryrunTxnResultAppTrace = exports.createDryrun = void 0;
|
|
4
|
-
const types_js_1 = require("./client/v2/algod/models/types.js");
|
|
5
|
-
const address_js_1 = require("./encoding/address.js");
|
|
6
|
-
const binarydata_js_1 = require("./encoding/binarydata.js");
|
|
7
|
-
const index_js_1 = require("./types/transactions/index.js");
|
|
8
|
-
const utils_js_1 = require("./utils/utils.js");
|
|
9
|
-
const defaultAppId = 1380011588;
|
|
10
|
-
const defaultMaxWidth = 30;
|
|
11
|
-
/**
|
|
12
|
-
* createDryrun takes an Algod Client (from algod.AlgodV2Client) and an array of Signed Transactions
|
|
13
|
-
* from (transaction.SignedTransaction) and creates a DryrunRequest object with relevant balances
|
|
14
|
-
* @param client - the AlgodClient to make requests against
|
|
15
|
-
* @param txns - the array of SignedTransaction to use for generating the DryrunRequest object
|
|
16
|
-
* @param protocolVersion - the string representing the protocol version to use
|
|
17
|
-
* @param latestTimestamp - the timestamp
|
|
18
|
-
* @param round - the round available to some TEAL scripts. Defaults to the current round on the network.
|
|
19
|
-
* @param sources - TEAL source text that gets uploaded, compiled, and inserted into transactions or application state.
|
|
20
|
-
* @returns the DryrunRequest object constructed from the SignedTransactions passed
|
|
21
|
-
*/
|
|
22
|
-
async function createDryrun({ client, txns, protocolVersion, latestTimestamp, round, sources, }) {
|
|
23
|
-
const appInfos = [];
|
|
24
|
-
const acctInfos = [];
|
|
25
|
-
const apps = [];
|
|
26
|
-
const assets = [];
|
|
27
|
-
const accts = [];
|
|
28
|
-
for (const t of txns) {
|
|
29
|
-
if (t.txn.type === index_js_1.TransactionType.appl) {
|
|
30
|
-
accts.push(t.txn.sender.toString());
|
|
31
|
-
accts.push(...t.txn.applicationCall.accounts.map((a) => a.toString()));
|
|
32
|
-
apps.push(...t.txn.applicationCall.foreignApps);
|
|
33
|
-
accts.push(...t.txn
|
|
34
|
-
.applicationCall.foreignApps.map(address_js_1.getApplicationAddress)
|
|
35
|
-
.map((a) => a.toString()));
|
|
36
|
-
assets.push(...t.txn.applicationCall.foreignAssets);
|
|
37
|
-
// Create application,
|
|
38
|
-
if (t.txn.applicationCall.appIndex === BigInt(0)) {
|
|
39
|
-
appInfos.push(new types_js_1.Application({
|
|
40
|
-
id: defaultAppId,
|
|
41
|
-
params: new types_js_1.ApplicationParams({
|
|
42
|
-
creator: t.txn.sender.toString(),
|
|
43
|
-
approvalProgram: t.txn.applicationCall.approvalProgram,
|
|
44
|
-
clearStateProgram: t.txn.applicationCall.clearProgram,
|
|
45
|
-
localStateSchema: new types_js_1.ApplicationStateSchema({
|
|
46
|
-
numUint: t.txn.applicationCall.numLocalInts,
|
|
47
|
-
numByteSlice: t.txn.applicationCall.numLocalByteSlices,
|
|
48
|
-
}),
|
|
49
|
-
globalStateSchema: new types_js_1.ApplicationStateSchema({
|
|
50
|
-
numUint: t.txn.applicationCall.numGlobalInts,
|
|
51
|
-
numByteSlice: t.txn.applicationCall.numGlobalByteSlices,
|
|
52
|
-
}),
|
|
53
|
-
}),
|
|
54
|
-
}));
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const { appIndex } = t.txn.applicationCall;
|
|
58
|
-
apps.push(appIndex);
|
|
59
|
-
accts.push((0, address_js_1.getApplicationAddress)(appIndex).toString());
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Dedupe and add creator to accts array
|
|
64
|
-
const assetPromises = [];
|
|
65
|
-
for (const assetId of new Set(assets)) {
|
|
66
|
-
assetPromises.push(client
|
|
67
|
-
.getAssetByID(assetId)
|
|
68
|
-
.do()
|
|
69
|
-
.then((assetInfo) => {
|
|
70
|
-
accts.push(assetInfo.params.creator);
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
// Wait for assets to finish since we append to accts array
|
|
74
|
-
await Promise.all(assetPromises);
|
|
75
|
-
// Dedupe and get app info for all apps
|
|
76
|
-
const appPromises = [];
|
|
77
|
-
for (const appId of new Set(apps)) {
|
|
78
|
-
appPromises.push(client
|
|
79
|
-
.getApplicationByID(appId)
|
|
80
|
-
.do()
|
|
81
|
-
.then((appInfo) => {
|
|
82
|
-
appInfos.push(appInfo);
|
|
83
|
-
accts.push(appInfo.params.creator.toString());
|
|
84
|
-
}));
|
|
85
|
-
}
|
|
86
|
-
await Promise.all(appPromises);
|
|
87
|
-
const acctPromises = [];
|
|
88
|
-
for (const acct of new Set(accts)) {
|
|
89
|
-
acctPromises.push(client
|
|
90
|
-
.accountInformation(acct)
|
|
91
|
-
.do()
|
|
92
|
-
.then((acctInfo) => {
|
|
93
|
-
acctInfos.push(acctInfo);
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
await Promise.all(acctPromises);
|
|
97
|
-
return new types_js_1.DryrunRequest({
|
|
98
|
-
txns: txns.slice(),
|
|
99
|
-
accounts: acctInfos,
|
|
100
|
-
apps: appInfos,
|
|
101
|
-
latestTimestamp: latestTimestamp ?? 0,
|
|
102
|
-
round: round ?? 0,
|
|
103
|
-
protocolVersion: protocolVersion ?? '',
|
|
104
|
-
sources: sources ?? [],
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
exports.createDryrun = createDryrun;
|
|
108
|
-
function truncate(str, maxValueWidth) {
|
|
109
|
-
if (str.length > maxValueWidth && maxValueWidth > 0) {
|
|
110
|
-
return `${str.slice(0, maxValueWidth)}...`;
|
|
111
|
-
}
|
|
112
|
-
return str;
|
|
113
|
-
}
|
|
114
|
-
function scratchToString(prevScratch, currScratch) {
|
|
115
|
-
if (currScratch.length === 0)
|
|
116
|
-
return '';
|
|
117
|
-
let newScratchIdx = null;
|
|
118
|
-
for (let idx = 0; idx < currScratch.length; idx++) {
|
|
119
|
-
if (idx > prevScratch.length) {
|
|
120
|
-
newScratchIdx = idx;
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
if ((0, utils_js_1.stringifyJSON)(prevScratch[idx]) !== (0, utils_js_1.stringifyJSON)(currScratch[idx])) {
|
|
124
|
-
newScratchIdx = idx;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (newScratchIdx == null)
|
|
128
|
-
return '';
|
|
129
|
-
const newScratch = currScratch[newScratchIdx];
|
|
130
|
-
if (newScratch.bytes.length > 0) {
|
|
131
|
-
return `${newScratchIdx} = 0x${(0, binarydata_js_1.bytesToHex)(newScratch.bytes)}`;
|
|
132
|
-
}
|
|
133
|
-
return `${newScratchIdx} = ${newScratch.uint.toString()}`;
|
|
134
|
-
}
|
|
135
|
-
function stackToString(stack, reverse) {
|
|
136
|
-
const svs = reverse ? stack.reverse() : stack;
|
|
137
|
-
return `[${svs
|
|
138
|
-
.map((sv) => {
|
|
139
|
-
switch (sv.type) {
|
|
140
|
-
case 1:
|
|
141
|
-
return `0x${(0, binarydata_js_1.bytesToHex)(sv.bytes)}`;
|
|
142
|
-
case 2:
|
|
143
|
-
return sv.uint.toString();
|
|
144
|
-
default:
|
|
145
|
-
return '';
|
|
146
|
-
}
|
|
147
|
-
})
|
|
148
|
-
.join(', ')}]`;
|
|
149
|
-
}
|
|
150
|
-
function dryrunTrace(trace, disassembly, spc) {
|
|
151
|
-
const maxWidth = spc.maxValueWidth || defaultMaxWidth;
|
|
152
|
-
// Create the array of arrays, each sub array contains N columns
|
|
153
|
-
const lines = [['pc#', 'ln#', 'source', 'scratch', 'stack']];
|
|
154
|
-
for (let idx = 0; idx < trace.length; idx++) {
|
|
155
|
-
const { line, error, pc, scratch, stack } = trace[idx];
|
|
156
|
-
const currScratch = scratch !== undefined ? scratch : [];
|
|
157
|
-
const prevScratch = idx > 0 && trace[idx - 1].scratch !== undefined
|
|
158
|
-
? trace[idx - 1].scratch
|
|
159
|
-
: [];
|
|
160
|
-
const src = !error ? disassembly[line] : `!! ${error} !!`;
|
|
161
|
-
lines.push([
|
|
162
|
-
pc.toString().padEnd(3, ' '),
|
|
163
|
-
line.toString().padEnd(3, ' '),
|
|
164
|
-
truncate(src, maxWidth),
|
|
165
|
-
truncate(scratchToString(prevScratch, currScratch), maxWidth),
|
|
166
|
-
truncate(stackToString(stack, spc.topOfStackFirst), maxWidth),
|
|
167
|
-
]);
|
|
168
|
-
}
|
|
169
|
-
// Get the max length for each column
|
|
170
|
-
const maxLengths = lines.reduce((prev, curr) => {
|
|
171
|
-
const newVal = new Array(lines[0].length).fill(0);
|
|
172
|
-
for (let idx = 0; idx < prev.length; idx++) {
|
|
173
|
-
newVal[idx] = curr[idx].length > prev[idx] ? curr[idx].length : prev[idx];
|
|
174
|
-
}
|
|
175
|
-
return newVal;
|
|
176
|
-
}, new Array(lines[0].length).fill(0));
|
|
177
|
-
return `${lines
|
|
178
|
-
.map((line) => line
|
|
179
|
-
.map((v, idx) => v.padEnd(maxLengths[idx] + 1, ' '))
|
|
180
|
-
.join('|')
|
|
181
|
-
.trim())
|
|
182
|
-
.join('\n')}\n`;
|
|
183
|
-
}
|
|
184
|
-
function dryrunTxnResultAppTrace(result, spc) {
|
|
185
|
-
if (!result.appCallTrace || !result.disassembly)
|
|
186
|
-
return '';
|
|
187
|
-
let conf = spc;
|
|
188
|
-
if (spc !== undefined)
|
|
189
|
-
conf = spc;
|
|
190
|
-
else {
|
|
191
|
-
conf = {
|
|
192
|
-
maxValueWidth: defaultMaxWidth,
|
|
193
|
-
topOfStackFirst: false,
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
return dryrunTrace(result.appCallTrace, result.disassembly, conf);
|
|
197
|
-
}
|
|
198
|
-
exports.dryrunTxnResultAppTrace = dryrunTxnResultAppTrace;
|
|
199
|
-
function dryrunTxnResultLogicSigTrace(result, spc) {
|
|
200
|
-
if (!result.logicSigTrace || !result.logicSigDisassembly)
|
|
201
|
-
return '';
|
|
202
|
-
let conf;
|
|
203
|
-
if (spc !== undefined)
|
|
204
|
-
conf = spc;
|
|
205
|
-
else {
|
|
206
|
-
conf = {
|
|
207
|
-
maxValueWidth: defaultMaxWidth,
|
|
208
|
-
topOfStackFirst: true,
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
return dryrunTrace(result.logicSigTrace, result.logicSigDisassembly, conf);
|
|
212
|
-
}
|
|
213
|
-
exports.dryrunTxnResultLogicSigTrace = dryrunTxnResultLogicSigTrace;
|
|
214
|
-
//# sourceMappingURL=dryrun.js.map
|
package/dist/cjs/dryrun.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dryrun.js","sourceRoot":"","sources":["../../src/dryrun.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { decodeJSON, encodeMsgpack } from '../../../encoding/encoding.js';
|
|
2
|
-
import JSONRequest from '../jsonrequest.js';
|
|
3
|
-
import { setHeaders } from './compile.js';
|
|
4
|
-
import { DryrunResponse } from './models/types.js';
|
|
5
|
-
export default class Dryrun extends JSONRequest {
|
|
6
|
-
constructor(c, dr) {
|
|
7
|
-
super(c);
|
|
8
|
-
this.blob = encodeMsgpack(dr);
|
|
9
|
-
}
|
|
10
|
-
// eslint-disable-next-line class-methods-use-this
|
|
11
|
-
path() {
|
|
12
|
-
return '/v2/teal/dryrun';
|
|
13
|
-
}
|
|
14
|
-
executeRequest(headers, customOptions) {
|
|
15
|
-
const txHeaders = setHeaders(headers);
|
|
16
|
-
return this.c.post({
|
|
17
|
-
relativePath: this.path(),
|
|
18
|
-
data: this.blob,
|
|
19
|
-
requestHeaders: txHeaders,
|
|
20
|
-
customOptions,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
// eslint-disable-next-line class-methods-use-this
|
|
24
|
-
prepare(response) {
|
|
25
|
-
return decodeJSON(response.getJSONText(), DryrunResponse);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=dryrun.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dryrun.js","sourceRoot":"","sources":["../../../../../src/client/v2/algod/dryrun.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAA2B;IAG7D,YAAY,CAAa,EAAE,EAA0B;QACnD,KAAK,CAAC,CAAC,CAAC,CAAC;QACT,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,kDAAkD;IAClD,IAAI;QACF,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAES,cAAc,CACtB,OAAgC,EAChC,aAAuC;QAEvC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjB,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,SAAS;YACzB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,OAAO,CAAC,QAA4B;QAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC;CACF"}
|