algosdk 2.3.0 → 2.5.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 (88) 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/client/urlTokenBaseHTTPClient.js +0 -3
  5. package/dist/cjs/client/urlTokenBaseHTTPClient.js.map +1 -1
  6. package/dist/cjs/client/v2/algod/algod.js +51 -0
  7. package/dist/cjs/client/v2/algod/algod.js.map +1 -1
  8. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js +20 -0
  9. package/dist/cjs/client/v2/algod/getLedgerStateDelta.js.map +1 -0
  10. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +20 -0
  11. package/dist/cjs/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -0
  12. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +25 -0
  13. package/dist/cjs/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -0
  14. package/dist/cjs/client/v2/algod/models/types.js +301 -6
  15. package/dist/cjs/client/v2/algod/models/types.js.map +1 -1
  16. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js +2 -3
  17. package/dist/cjs/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  18. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js +2 -1
  19. package/dist/cjs/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  20. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js +2 -4
  21. package/dist/cjs/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  22. package/dist/cjs/client/v2/indexer/searchAccounts.js +2 -1
  23. package/dist/cjs/client/v2/indexer/searchAccounts.js.map +1 -1
  24. package/dist/cjs/client/v2/indexer/searchForTransactions.js +61 -62
  25. package/dist/cjs/client/v2/indexer/searchForTransactions.js.map +1 -1
  26. package/dist/cjs/client/v2/serviceClient.js +3 -0
  27. package/dist/cjs/client/v2/serviceClient.js.map +1 -1
  28. package/dist/cjs/composer.js +1 -1
  29. package/dist/cjs/composer.js.map +1 -1
  30. package/dist/cjs/nacl/naclWrappers.js +4 -0
  31. package/dist/cjs/nacl/naclWrappers.js.map +1 -1
  32. package/dist/cjs/utils/utils.js +13 -1
  33. package/dist/cjs/utils/utils.js.map +1 -1
  34. package/dist/esm/client/urlTokenBaseHTTPClient.js +0 -3
  35. package/dist/esm/client/urlTokenBaseHTTPClient.js.map +1 -1
  36. package/dist/esm/client/v2/algod/algod.js +51 -0
  37. package/dist/esm/client/v2/algod/algod.js.map +1 -1
  38. package/dist/esm/client/v2/algod/getLedgerStateDelta.js +14 -0
  39. package/dist/esm/client/v2/algod/getLedgerStateDelta.js.map +1 -0
  40. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js +14 -0
  41. package/dist/esm/client/v2/algod/getLedgerStateDeltaForTransactionGroup.js.map +1 -0
  42. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js +19 -0
  43. package/dist/esm/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.js.map +1 -0
  44. package/dist/esm/client/v2/algod/models/types.js +292 -5
  45. package/dist/esm/client/v2/algod/models/types.js.map +1 -1
  46. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js +2 -3
  47. package/dist/esm/client/v2/indexer/lookupAccountTransactions.js.map +1 -1
  48. package/dist/esm/client/v2/indexer/lookupAssetBalances.js +2 -1
  49. package/dist/esm/client/v2/indexer/lookupAssetBalances.js.map +1 -1
  50. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js +2 -4
  51. package/dist/esm/client/v2/indexer/lookupAssetTransactions.js.map +1 -1
  52. package/dist/esm/client/v2/indexer/searchAccounts.js +2 -1
  53. package/dist/esm/client/v2/indexer/searchAccounts.js.map +1 -1
  54. package/dist/esm/client/v2/indexer/searchForTransactions.js +61 -62
  55. package/dist/esm/client/v2/indexer/searchForTransactions.js.map +1 -1
  56. package/dist/esm/client/v2/serviceClient.js +3 -0
  57. package/dist/esm/client/v2/serviceClient.js.map +1 -1
  58. package/dist/esm/composer.js +1 -1
  59. package/dist/esm/composer.js.map +1 -1
  60. package/dist/esm/nacl/naclWrappers.js +4 -0
  61. package/dist/esm/nacl/naclWrappers.js.map +1 -1
  62. package/dist/esm/utils/utils.js +11 -0
  63. package/dist/esm/utils/utils.js.map +1 -1
  64. package/dist/types/client/v2/algod/algod.d.ts +45 -0
  65. package/dist/types/client/v2/algod/getLedgerStateDelta.d.ts +8 -0
  66. package/dist/types/client/v2/algod/getLedgerStateDeltaForTransactionGroup.d.ts +8 -0
  67. package/dist/types/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.d.ts +10 -0
  68. package/dist/types/client/v2/algod/models/types.d.ts +242 -5
  69. package/dist/types/client/v2/indexer/lookupAccountTransactions.d.ts +0 -2
  70. package/dist/types/client/v2/indexer/lookupAssetTransactions.d.ts +0 -3
  71. package/dist/types/client/v2/indexer/searchForTransactions.d.ts +54 -56
  72. package/dist/types/utils/utils.d.ts +5 -0
  73. package/package.json +4 -6
  74. package/src/client/urlTokenBaseHTTPClient.ts +0 -3
  75. package/src/client/v2/algod/algod.ts +62 -0
  76. package/src/client/v2/algod/getLedgerStateDelta.ts +16 -0
  77. package/src/client/v2/algod/getLedgerStateDeltaForTransactionGroup.ts +16 -0
  78. package/src/client/v2/algod/getTransactionGroupLedgerStateDeltasForRound.ts +29 -0
  79. package/src/client/v2/algod/models/types.ts +527 -0
  80. package/src/client/v2/indexer/lookupAccountTransactions.ts +2 -3
  81. package/src/client/v2/indexer/lookupAssetBalances.ts +2 -1
  82. package/src/client/v2/indexer/lookupAssetTransactions.ts +2 -4
  83. package/src/client/v2/indexer/searchAccounts.ts +2 -1
  84. package/src/client/v2/indexer/searchForTransactions.ts +63 -64
  85. package/src/client/v2/serviceClient.ts +3 -0
  86. package/src/composer.ts +1 -1
  87. package/src/nacl/naclWrappers.ts +6 -0
  88. package/src/utils/utils.ts +12 -0
@@ -1397,6 +1397,69 @@ export class AssetParams extends BaseModel {
1397
1397
  }
1398
1398
  }
1399
1399
 
1400
+ /**
1401
+ * Represents an AVM value.
1402
+ */
1403
+ export class AvmValue extends BaseModel {
1404
+ /**
1405
+ * value type. Value `1` refers to **bytes**, value `2` refers to **uint64**
1406
+ */
1407
+ public type: number | bigint;
1408
+
1409
+ /**
1410
+ * bytes value.
1411
+ */
1412
+ public bytes?: Uint8Array;
1413
+
1414
+ /**
1415
+ * uint value.
1416
+ */
1417
+ public uint?: number | bigint;
1418
+
1419
+ /**
1420
+ * Creates a new `AvmValue` object.
1421
+ * @param type - value type. Value `1` refers to **bytes**, value `2` refers to **uint64**
1422
+ * @param bytes - bytes value.
1423
+ * @param uint - uint value.
1424
+ */
1425
+ constructor({
1426
+ type,
1427
+ bytes,
1428
+ uint,
1429
+ }: {
1430
+ type: number | bigint;
1431
+ bytes?: string | Uint8Array;
1432
+ uint?: number | bigint;
1433
+ }) {
1434
+ super();
1435
+ this.type = type;
1436
+ this.bytes =
1437
+ typeof bytes === 'string'
1438
+ ? new Uint8Array(Buffer.from(bytes, 'base64'))
1439
+ : bytes;
1440
+ this.uint = uint;
1441
+
1442
+ this.attribute_map = {
1443
+ type: 'type',
1444
+ bytes: 'bytes',
1445
+ uint: 'uint',
1446
+ };
1447
+ }
1448
+
1449
+ // eslint-disable-next-line camelcase
1450
+ static from_obj_for_encoding(data: Record<string, any>): AvmValue {
1451
+ /* eslint-disable dot-notation */
1452
+ if (typeof data['type'] === 'undefined')
1453
+ throw new Error(`Response is missing required field 'type': ${data}`);
1454
+ return new AvmValue({
1455
+ type: data['type'],
1456
+ bytes: data['bytes'],
1457
+ uint: data['uint'],
1458
+ });
1459
+ /* eslint-enable dot-notation */
1460
+ }
1461
+ }
1462
+
1400
1463
  /**
1401
1464
  * Hash of a block header.
1402
1465
  */
@@ -1493,6 +1556,11 @@ export class Box extends BaseModel {
1493
1556
  */
1494
1557
  public name: Uint8Array;
1495
1558
 
1559
+ /**
1560
+ * The round for which this information is relevant
1561
+ */
1562
+ public round: number | bigint;
1563
+
1496
1564
  /**
1497
1565
  * (value) box value, base64 encoded.
1498
1566
  */
@@ -1501,13 +1569,16 @@ export class Box extends BaseModel {
1501
1569
  /**
1502
1570
  * Creates a new `Box` object.
1503
1571
  * @param name - (name) box name, base64 encoded
1572
+ * @param round - The round for which this information is relevant
1504
1573
  * @param value - (value) box value, base64 encoded.
1505
1574
  */
1506
1575
  constructor({
1507
1576
  name,
1577
+ round,
1508
1578
  value,
1509
1579
  }: {
1510
1580
  name: string | Uint8Array;
1581
+ round: number | bigint;
1511
1582
  value: string | Uint8Array;
1512
1583
  }) {
1513
1584
  super();
@@ -1515,6 +1586,7 @@ export class Box extends BaseModel {
1515
1586
  typeof name === 'string'
1516
1587
  ? new Uint8Array(Buffer.from(name, 'base64'))
1517
1588
  : name;
1589
+ this.round = round;
1518
1590
  this.value =
1519
1591
  typeof value === 'string'
1520
1592
  ? new Uint8Array(Buffer.from(value, 'base64'))
@@ -1522,6 +1594,7 @@ export class Box extends BaseModel {
1522
1594
 
1523
1595
  this.attribute_map = {
1524
1596
  name: 'name',
1597
+ round: 'round',
1525
1598
  value: 'value',
1526
1599
  };
1527
1600
  }
@@ -1531,10 +1604,13 @@ export class Box extends BaseModel {
1531
1604
  /* eslint-disable dot-notation */
1532
1605
  if (typeof data['name'] === 'undefined')
1533
1606
  throw new Error(`Response is missing required field 'name': ${data}`);
1607
+ if (typeof data['round'] === 'undefined')
1608
+ throw new Error(`Response is missing required field 'round': ${data}`);
1534
1609
  if (typeof data['value'] === 'undefined')
1535
1610
  throw new Error(`Response is missing required field 'value': ${data}`);
1536
1611
  return new Box({
1537
1612
  name: data['name'],
1613
+ round: data['round'],
1538
1614
  value: data['value'],
1539
1615
  });
1540
1616
  /* eslint-enable dot-notation */
@@ -2558,6 +2634,52 @@ export class KvDelta extends BaseModel {
2558
2634
  }
2559
2635
  }
2560
2636
 
2637
+ /**
2638
+ * Contains a ledger delta for a single transaction group
2639
+ */
2640
+ export class LedgerStateDeltaForTransactionGroup extends BaseModel {
2641
+ /**
2642
+ * Ledger StateDelta object
2643
+ */
2644
+ public delta: Record<string, any>;
2645
+
2646
+ public ids: string[];
2647
+
2648
+ /**
2649
+ * Creates a new `LedgerStateDeltaForTransactionGroup` object.
2650
+ * @param delta - Ledger StateDelta object
2651
+ * @param ids -
2652
+ */
2653
+ constructor({ delta, ids }: { delta: Record<string, any>; ids: string[] }) {
2654
+ super();
2655
+ this.delta = delta;
2656
+ this.ids = ids;
2657
+
2658
+ this.attribute_map = {
2659
+ delta: 'Delta',
2660
+ ids: 'Ids',
2661
+ };
2662
+ }
2663
+
2664
+ // eslint-disable-next-line camelcase
2665
+ static from_obj_for_encoding(
2666
+ data: Record<string, any>
2667
+ ): LedgerStateDeltaForTransactionGroup {
2668
+ /* eslint-disable dot-notation */
2669
+ if (typeof data['Delta'] === 'undefined')
2670
+ throw new Error(`Response is missing required field 'Delta': ${data}`);
2671
+ if (!Array.isArray(data['Ids']))
2672
+ throw new Error(
2673
+ `Response is missing required array field 'Ids': ${data}`
2674
+ );
2675
+ return new LedgerStateDeltaForTransactionGroup({
2676
+ delta: data['Delta'],
2677
+ ids: data['Ids'],
2678
+ });
2679
+ /* eslint-enable dot-notation */
2680
+ }
2681
+ }
2682
+
2561
2683
  /**
2562
2684
  * Proof of membership and position of a light block header.
2563
2685
  */
@@ -3298,6 +3420,59 @@ export class PostTransactionsResponse extends BaseModel {
3298
3420
  }
3299
3421
  }
3300
3422
 
3423
+ /**
3424
+ * A write operation into a scratch slot.
3425
+ */
3426
+ export class ScratchChange extends BaseModel {
3427
+ /**
3428
+ * Represents an AVM value.
3429
+ */
3430
+ public newValue: AvmValue;
3431
+
3432
+ /**
3433
+ * The scratch slot written.
3434
+ */
3435
+ public slot: number | bigint;
3436
+
3437
+ /**
3438
+ * Creates a new `ScratchChange` object.
3439
+ * @param newValue - Represents an AVM value.
3440
+ * @param slot - The scratch slot written.
3441
+ */
3442
+ constructor({
3443
+ newValue,
3444
+ slot,
3445
+ }: {
3446
+ newValue: AvmValue;
3447
+ slot: number | bigint;
3448
+ }) {
3449
+ super();
3450
+ this.newValue = newValue;
3451
+ this.slot = slot;
3452
+
3453
+ this.attribute_map = {
3454
+ newValue: 'new-value',
3455
+ slot: 'slot',
3456
+ };
3457
+ }
3458
+
3459
+ // eslint-disable-next-line camelcase
3460
+ static from_obj_for_encoding(data: Record<string, any>): ScratchChange {
3461
+ /* eslint-disable dot-notation */
3462
+ if (typeof data['new-value'] === 'undefined')
3463
+ throw new Error(
3464
+ `Response is missing required field 'new-value': ${data}`
3465
+ );
3466
+ if (typeof data['slot'] === 'undefined')
3467
+ throw new Error(`Response is missing required field 'slot': ${data}`);
3468
+ return new ScratchChange({
3469
+ newValue: AvmValue.from_obj_for_encoding(data['new-value']),
3470
+ slot: data['slot'],
3471
+ });
3472
+ /* eslint-enable dot-notation */
3473
+ }
3474
+ }
3475
+
3301
3476
  /**
3302
3477
  * Request type for simulation endpoint.
3303
3478
  */
@@ -3318,31 +3493,51 @@ export class SimulateRequest extends BaseModel {
3318
3493
  */
3319
3494
  public allowMoreLogging?: boolean;
3320
3495
 
3496
+ /**
3497
+ * An object that configures simulation execution trace.
3498
+ */
3499
+ public execTraceConfig?: SimulateTraceConfig;
3500
+
3501
+ /**
3502
+ * Applies extra opcode budget during simulation for each transaction group.
3503
+ */
3504
+ public extraOpcodeBudget?: number | bigint;
3505
+
3321
3506
  /**
3322
3507
  * Creates a new `SimulateRequest` object.
3323
3508
  * @param txnGroups - The transaction groups to simulate.
3324
3509
  * @param allowEmptySignatures - Allow transactions without signatures to be simulated as if they had correct
3325
3510
  * signatures.
3326
3511
  * @param allowMoreLogging - Lifts limits on log opcode usage during simulation.
3512
+ * @param execTraceConfig - An object that configures simulation execution trace.
3513
+ * @param extraOpcodeBudget - Applies extra opcode budget during simulation for each transaction group.
3327
3514
  */
3328
3515
  constructor({
3329
3516
  txnGroups,
3330
3517
  allowEmptySignatures,
3331
3518
  allowMoreLogging,
3519
+ execTraceConfig,
3520
+ extraOpcodeBudget,
3332
3521
  }: {
3333
3522
  txnGroups: SimulateRequestTransactionGroup[];
3334
3523
  allowEmptySignatures?: boolean;
3335
3524
  allowMoreLogging?: boolean;
3525
+ execTraceConfig?: SimulateTraceConfig;
3526
+ extraOpcodeBudget?: number | bigint;
3336
3527
  }) {
3337
3528
  super();
3338
3529
  this.txnGroups = txnGroups;
3339
3530
  this.allowEmptySignatures = allowEmptySignatures;
3340
3531
  this.allowMoreLogging = allowMoreLogging;
3532
+ this.execTraceConfig = execTraceConfig;
3533
+ this.extraOpcodeBudget = extraOpcodeBudget;
3341
3534
 
3342
3535
  this.attribute_map = {
3343
3536
  txnGroups: 'txn-groups',
3344
3537
  allowEmptySignatures: 'allow-empty-signatures',
3345
3538
  allowMoreLogging: 'allow-more-logging',
3539
+ execTraceConfig: 'exec-trace-config',
3540
+ extraOpcodeBudget: 'extra-opcode-budget',
3346
3541
  };
3347
3542
  }
3348
3543
 
@@ -3359,6 +3554,11 @@ export class SimulateRequest extends BaseModel {
3359
3554
  ),
3360
3555
  allowEmptySignatures: data['allow-empty-signatures'],
3361
3556
  allowMoreLogging: data['allow-more-logging'],
3557
+ execTraceConfig:
3558
+ typeof data['exec-trace-config'] !== 'undefined'
3559
+ ? SimulateTraceConfig.from_obj_for_encoding(data['exec-trace-config'])
3560
+ : undefined,
3561
+ extraOpcodeBudget: data['extra-opcode-budget'],
3362
3562
  });
3363
3563
  /* eslint-enable dot-notation */
3364
3564
  }
@@ -3429,6 +3629,11 @@ export class SimulateResponse extends BaseModel {
3429
3629
  */
3430
3630
  public evalOverrides?: SimulationEvalOverrides;
3431
3631
 
3632
+ /**
3633
+ * An object that configures simulation execution trace.
3634
+ */
3635
+ public execTraceConfig?: SimulateTraceConfig;
3636
+
3432
3637
  /**
3433
3638
  * Creates a new `SimulateResponse` object.
3434
3639
  * @param lastRound - The round immediately preceding this simulation. State changes through this
@@ -3438,29 +3643,34 @@ export class SimulateResponse extends BaseModel {
3438
3643
  * @param evalOverrides - The set of parameters and limits override during simulation. If this set of
3439
3644
  * parameters is present, then evaluation parameters may differ from standard
3440
3645
  * evaluation in certain ways.
3646
+ * @param execTraceConfig - An object that configures simulation execution trace.
3441
3647
  */
3442
3648
  constructor({
3443
3649
  lastRound,
3444
3650
  txnGroups,
3445
3651
  version,
3446
3652
  evalOverrides,
3653
+ execTraceConfig,
3447
3654
  }: {
3448
3655
  lastRound: number | bigint;
3449
3656
  txnGroups: SimulateTransactionGroupResult[];
3450
3657
  version: number | bigint;
3451
3658
  evalOverrides?: SimulationEvalOverrides;
3659
+ execTraceConfig?: SimulateTraceConfig;
3452
3660
  }) {
3453
3661
  super();
3454
3662
  this.lastRound = lastRound;
3455
3663
  this.txnGroups = txnGroups;
3456
3664
  this.version = version;
3457
3665
  this.evalOverrides = evalOverrides;
3666
+ this.execTraceConfig = execTraceConfig;
3458
3667
 
3459
3668
  this.attribute_map = {
3460
3669
  lastRound: 'last-round',
3461
3670
  txnGroups: 'txn-groups',
3462
3671
  version: 'version',
3463
3672
  evalOverrides: 'eval-overrides',
3673
+ execTraceConfig: 'exec-trace-config',
3464
3674
  };
3465
3675
  }
3466
3676
 
@@ -3489,6 +3699,72 @@ export class SimulateResponse extends BaseModel {
3489
3699
  data['eval-overrides']
3490
3700
  )
3491
3701
  : undefined,
3702
+ execTraceConfig:
3703
+ typeof data['exec-trace-config'] !== 'undefined'
3704
+ ? SimulateTraceConfig.from_obj_for_encoding(data['exec-trace-config'])
3705
+ : undefined,
3706
+ });
3707
+ /* eslint-enable dot-notation */
3708
+ }
3709
+ }
3710
+
3711
+ /**
3712
+ * An object that configures simulation execution trace.
3713
+ */
3714
+ export class SimulateTraceConfig extends BaseModel {
3715
+ /**
3716
+ * A boolean option for opting in execution trace features simulation endpoint.
3717
+ */
3718
+ public enable?: boolean;
3719
+
3720
+ /**
3721
+ * A boolean option enabling returning scratch slot changes together with execution
3722
+ * trace during simulation.
3723
+ */
3724
+ public scratchChange?: boolean;
3725
+
3726
+ /**
3727
+ * A boolean option enabling returning stack changes together with execution trace
3728
+ * during simulation.
3729
+ */
3730
+ public stackChange?: boolean;
3731
+
3732
+ /**
3733
+ * Creates a new `SimulateTraceConfig` object.
3734
+ * @param enable - A boolean option for opting in execution trace features simulation endpoint.
3735
+ * @param scratchChange - A boolean option enabling returning scratch slot changes together with execution
3736
+ * trace during simulation.
3737
+ * @param stackChange - A boolean option enabling returning stack changes together with execution trace
3738
+ * during simulation.
3739
+ */
3740
+ constructor({
3741
+ enable,
3742
+ scratchChange,
3743
+ stackChange,
3744
+ }: {
3745
+ enable?: boolean;
3746
+ scratchChange?: boolean;
3747
+ stackChange?: boolean;
3748
+ }) {
3749
+ super();
3750
+ this.enable = enable;
3751
+ this.scratchChange = scratchChange;
3752
+ this.stackChange = stackChange;
3753
+
3754
+ this.attribute_map = {
3755
+ enable: 'enable',
3756
+ scratchChange: 'scratch-change',
3757
+ stackChange: 'stack-change',
3758
+ };
3759
+ }
3760
+
3761
+ // eslint-disable-next-line camelcase
3762
+ static from_obj_for_encoding(data: Record<string, any>): SimulateTraceConfig {
3763
+ /* eslint-disable dot-notation */
3764
+ return new SimulateTraceConfig({
3765
+ enable: data['enable'],
3766
+ scratchChange: data['scratch-change'],
3767
+ stackChange: data['stack-change'],
3492
3768
  });
3493
3769
  /* eslint-enable dot-notation */
3494
3770
  }
@@ -3606,6 +3882,12 @@ export class SimulateTransactionResult extends BaseModel {
3606
3882
  */
3607
3883
  public appBudgetConsumed?: number | bigint;
3608
3884
 
3885
+ /**
3886
+ * The execution trace of calling an app or a logic sig, containing the inner app
3887
+ * call trace in a recursive way.
3888
+ */
3889
+ public execTrace?: SimulationTransactionExecTrace;
3890
+
3609
3891
  /**
3610
3892
  * Budget used during execution of a logic sig transaction.
3611
3893
  */
@@ -3617,25 +3899,31 @@ export class SimulateTransactionResult extends BaseModel {
3617
3899
  * includes confirmation details like the round and reward details.
3618
3900
  * @param appBudgetConsumed - Budget used during execution of an app call transaction. This value includes
3619
3901
  * budged used by inner app calls spawned by this transaction.
3902
+ * @param execTrace - The execution trace of calling an app or a logic sig, containing the inner app
3903
+ * call trace in a recursive way.
3620
3904
  * @param logicSigBudgetConsumed - Budget used during execution of a logic sig transaction.
3621
3905
  */
3622
3906
  constructor({
3623
3907
  txnResult,
3624
3908
  appBudgetConsumed,
3909
+ execTrace,
3625
3910
  logicSigBudgetConsumed,
3626
3911
  }: {
3627
3912
  txnResult: PendingTransactionResponse;
3628
3913
  appBudgetConsumed?: number | bigint;
3914
+ execTrace?: SimulationTransactionExecTrace;
3629
3915
  logicSigBudgetConsumed?: number | bigint;
3630
3916
  }) {
3631
3917
  super();
3632
3918
  this.txnResult = txnResult;
3633
3919
  this.appBudgetConsumed = appBudgetConsumed;
3920
+ this.execTrace = execTrace;
3634
3921
  this.logicSigBudgetConsumed = logicSigBudgetConsumed;
3635
3922
 
3636
3923
  this.attribute_map = {
3637
3924
  txnResult: 'txn-result',
3638
3925
  appBudgetConsumed: 'app-budget-consumed',
3926
+ execTrace: 'exec-trace',
3639
3927
  logicSigBudgetConsumed: 'logic-sig-budget-consumed',
3640
3928
  };
3641
3929
  }
@@ -3654,6 +3942,12 @@ export class SimulateTransactionResult extends BaseModel {
3654
3942
  data['txn-result']
3655
3943
  ),
3656
3944
  appBudgetConsumed: data['app-budget-consumed'],
3945
+ execTrace:
3946
+ typeof data['exec-trace'] !== 'undefined'
3947
+ ? SimulationTransactionExecTrace.from_obj_for_encoding(
3948
+ data['exec-trace']
3949
+ )
3950
+ : undefined,
3657
3951
  logicSigBudgetConsumed: data['logic-sig-budget-consumed'],
3658
3952
  });
3659
3953
  /* eslint-enable dot-notation */
@@ -3672,6 +3966,11 @@ export class SimulationEvalOverrides extends BaseModel {
3672
3966
  */
3673
3967
  public allowEmptySignatures?: boolean;
3674
3968
 
3969
+ /**
3970
+ * The extra opcode budget added to each transaction group during simulation
3971
+ */
3972
+ public extraOpcodeBudget?: number | bigint;
3973
+
3675
3974
  /**
3676
3975
  * The maximum log calls one can make during simulation
3677
3976
  */
@@ -3686,25 +3985,30 @@ export class SimulationEvalOverrides extends BaseModel {
3686
3985
  * Creates a new `SimulationEvalOverrides` object.
3687
3986
  * @param allowEmptySignatures - If true, transactions without signatures are allowed and simulated as if they
3688
3987
  * were properly signed.
3988
+ * @param extraOpcodeBudget - The extra opcode budget added to each transaction group during simulation
3689
3989
  * @param maxLogCalls - The maximum log calls one can make during simulation
3690
3990
  * @param maxLogSize - The maximum byte number to log during simulation
3691
3991
  */
3692
3992
  constructor({
3693
3993
  allowEmptySignatures,
3994
+ extraOpcodeBudget,
3694
3995
  maxLogCalls,
3695
3996
  maxLogSize,
3696
3997
  }: {
3697
3998
  allowEmptySignatures?: boolean;
3999
+ extraOpcodeBudget?: number | bigint;
3698
4000
  maxLogCalls?: number | bigint;
3699
4001
  maxLogSize?: number | bigint;
3700
4002
  }) {
3701
4003
  super();
3702
4004
  this.allowEmptySignatures = allowEmptySignatures;
4005
+ this.extraOpcodeBudget = extraOpcodeBudget;
3703
4006
  this.maxLogCalls = maxLogCalls;
3704
4007
  this.maxLogSize = maxLogSize;
3705
4008
 
3706
4009
  this.attribute_map = {
3707
4010
  allowEmptySignatures: 'allow-empty-signatures',
4011
+ extraOpcodeBudget: 'extra-opcode-budget',
3708
4012
  maxLogCalls: 'max-log-calls',
3709
4013
  maxLogSize: 'max-log-size',
3710
4014
  };
@@ -3717,6 +4021,7 @@ export class SimulationEvalOverrides extends BaseModel {
3717
4021
  /* eslint-disable dot-notation */
3718
4022
  return new SimulationEvalOverrides({
3719
4023
  allowEmptySignatures: data['allow-empty-signatures'],
4024
+ extraOpcodeBudget: data['extra-opcode-budget'],
3720
4025
  maxLogCalls: data['max-log-calls'],
3721
4026
  maxLogSize: data['max-log-size'],
3722
4027
  });
@@ -3724,6 +4029,190 @@ export class SimulationEvalOverrides extends BaseModel {
3724
4029
  }
3725
4030
  }
3726
4031
 
4032
+ /**
4033
+ * The set of trace information and effect from evaluating a single opcode.
4034
+ */
4035
+ export class SimulationOpcodeTraceUnit extends BaseModel {
4036
+ /**
4037
+ * The program counter of the current opcode being evaluated.
4038
+ */
4039
+ public pc: number | bigint;
4040
+
4041
+ /**
4042
+ * The writes into scratch slots.
4043
+ */
4044
+ public scratchChanges?: ScratchChange[];
4045
+
4046
+ /**
4047
+ * The indexes of the traces for inner transactions spawned by this opcode, if any.
4048
+ */
4049
+ public spawnedInners?: (number | bigint)[];
4050
+
4051
+ /**
4052
+ * The values added by this opcode to the stack.
4053
+ */
4054
+ public stackAdditions?: AvmValue[];
4055
+
4056
+ /**
4057
+ * The number of deleted stack values by this opcode.
4058
+ */
4059
+ public stackPopCount?: number | bigint;
4060
+
4061
+ /**
4062
+ * Creates a new `SimulationOpcodeTraceUnit` object.
4063
+ * @param pc - The program counter of the current opcode being evaluated.
4064
+ * @param scratchChanges - The writes into scratch slots.
4065
+ * @param spawnedInners - The indexes of the traces for inner transactions spawned by this opcode, if any.
4066
+ * @param stackAdditions - The values added by this opcode to the stack.
4067
+ * @param stackPopCount - The number of deleted stack values by this opcode.
4068
+ */
4069
+ constructor({
4070
+ pc,
4071
+ scratchChanges,
4072
+ spawnedInners,
4073
+ stackAdditions,
4074
+ stackPopCount,
4075
+ }: {
4076
+ pc: number | bigint;
4077
+ scratchChanges?: ScratchChange[];
4078
+ spawnedInners?: (number | bigint)[];
4079
+ stackAdditions?: AvmValue[];
4080
+ stackPopCount?: number | bigint;
4081
+ }) {
4082
+ super();
4083
+ this.pc = pc;
4084
+ this.scratchChanges = scratchChanges;
4085
+ this.spawnedInners = spawnedInners;
4086
+ this.stackAdditions = stackAdditions;
4087
+ this.stackPopCount = stackPopCount;
4088
+
4089
+ this.attribute_map = {
4090
+ pc: 'pc',
4091
+ scratchChanges: 'scratch-changes',
4092
+ spawnedInners: 'spawned-inners',
4093
+ stackAdditions: 'stack-additions',
4094
+ stackPopCount: 'stack-pop-count',
4095
+ };
4096
+ }
4097
+
4098
+ // eslint-disable-next-line camelcase
4099
+ static from_obj_for_encoding(
4100
+ data: Record<string, any>
4101
+ ): SimulationOpcodeTraceUnit {
4102
+ /* eslint-disable dot-notation */
4103
+ if (typeof data['pc'] === 'undefined')
4104
+ throw new Error(`Response is missing required field 'pc': ${data}`);
4105
+ return new SimulationOpcodeTraceUnit({
4106
+ pc: data['pc'],
4107
+ scratchChanges:
4108
+ typeof data['scratch-changes'] !== 'undefined'
4109
+ ? data['scratch-changes'].map(ScratchChange.from_obj_for_encoding)
4110
+ : undefined,
4111
+ spawnedInners: data['spawned-inners'],
4112
+ stackAdditions:
4113
+ typeof data['stack-additions'] !== 'undefined'
4114
+ ? data['stack-additions'].map(AvmValue.from_obj_for_encoding)
4115
+ : undefined,
4116
+ stackPopCount: data['stack-pop-count'],
4117
+ });
4118
+ /* eslint-enable dot-notation */
4119
+ }
4120
+ }
4121
+
4122
+ /**
4123
+ * The execution trace of calling an app or a logic sig, containing the inner app
4124
+ * call trace in a recursive way.
4125
+ */
4126
+ export class SimulationTransactionExecTrace extends BaseModel {
4127
+ /**
4128
+ * Program trace that contains a trace of opcode effects in an approval program.
4129
+ */
4130
+ public approvalProgramTrace?: SimulationOpcodeTraceUnit[];
4131
+
4132
+ /**
4133
+ * Program trace that contains a trace of opcode effects in a clear state program.
4134
+ */
4135
+ public clearStateProgramTrace?: SimulationOpcodeTraceUnit[];
4136
+
4137
+ /**
4138
+ * An array of SimulationTransactionExecTrace representing the execution trace of
4139
+ * any inner transactions executed.
4140
+ */
4141
+ public innerTrace?: SimulationTransactionExecTrace[];
4142
+
4143
+ /**
4144
+ * Program trace that contains a trace of opcode effects in a logic sig.
4145
+ */
4146
+ public logicSigTrace?: SimulationOpcodeTraceUnit[];
4147
+
4148
+ /**
4149
+ * Creates a new `SimulationTransactionExecTrace` object.
4150
+ * @param approvalProgramTrace - Program trace that contains a trace of opcode effects in an approval program.
4151
+ * @param clearStateProgramTrace - Program trace that contains a trace of opcode effects in a clear state program.
4152
+ * @param innerTrace - An array of SimulationTransactionExecTrace representing the execution trace of
4153
+ * any inner transactions executed.
4154
+ * @param logicSigTrace - Program trace that contains a trace of opcode effects in a logic sig.
4155
+ */
4156
+ constructor({
4157
+ approvalProgramTrace,
4158
+ clearStateProgramTrace,
4159
+ innerTrace,
4160
+ logicSigTrace,
4161
+ }: {
4162
+ approvalProgramTrace?: SimulationOpcodeTraceUnit[];
4163
+ clearStateProgramTrace?: SimulationOpcodeTraceUnit[];
4164
+ innerTrace?: SimulationTransactionExecTrace[];
4165
+ logicSigTrace?: SimulationOpcodeTraceUnit[];
4166
+ }) {
4167
+ super();
4168
+ this.approvalProgramTrace = approvalProgramTrace;
4169
+ this.clearStateProgramTrace = clearStateProgramTrace;
4170
+ this.innerTrace = innerTrace;
4171
+ this.logicSigTrace = logicSigTrace;
4172
+
4173
+ this.attribute_map = {
4174
+ approvalProgramTrace: 'approval-program-trace',
4175
+ clearStateProgramTrace: 'clear-state-program-trace',
4176
+ innerTrace: 'inner-trace',
4177
+ logicSigTrace: 'logic-sig-trace',
4178
+ };
4179
+ }
4180
+
4181
+ // eslint-disable-next-line camelcase
4182
+ static from_obj_for_encoding(
4183
+ data: Record<string, any>
4184
+ ): SimulationTransactionExecTrace {
4185
+ /* eslint-disable dot-notation */
4186
+ return new SimulationTransactionExecTrace({
4187
+ approvalProgramTrace:
4188
+ typeof data['approval-program-trace'] !== 'undefined'
4189
+ ? data['approval-program-trace'].map(
4190
+ SimulationOpcodeTraceUnit.from_obj_for_encoding
4191
+ )
4192
+ : undefined,
4193
+ clearStateProgramTrace:
4194
+ typeof data['clear-state-program-trace'] !== 'undefined'
4195
+ ? data['clear-state-program-trace'].map(
4196
+ SimulationOpcodeTraceUnit.from_obj_for_encoding
4197
+ )
4198
+ : undefined,
4199
+ innerTrace:
4200
+ typeof data['inner-trace'] !== 'undefined'
4201
+ ? data['inner-trace'].map(
4202
+ SimulationTransactionExecTrace.from_obj_for_encoding
4203
+ )
4204
+ : undefined,
4205
+ logicSigTrace:
4206
+ typeof data['logic-sig-trace'] !== 'undefined'
4207
+ ? data['logic-sig-trace'].map(
4208
+ SimulationOpcodeTraceUnit.from_obj_for_encoding
4209
+ )
4210
+ : undefined,
4211
+ });
4212
+ /* eslint-enable dot-notation */
4213
+ }
4214
+ }
4215
+
3727
4216
  /**
3728
4217
  * Represents a state proof and its corresponding message
3729
4218
  */
@@ -4066,6 +4555,44 @@ export class TealValue extends BaseModel {
4066
4555
  }
4067
4556
  }
4068
4557
 
4558
+ /**
4559
+ * Response containing all ledger state deltas for transaction groups, with their
4560
+ * associated Ids, in a single round.
4561
+ */
4562
+ export class TransactionGroupLedgerStateDeltasForRoundResponse extends BaseModel {
4563
+ public deltas: LedgerStateDeltaForTransactionGroup[];
4564
+
4565
+ /**
4566
+ * Creates a new `TransactionGroupLedgerStateDeltasForRoundResponse` object.
4567
+ * @param deltas -
4568
+ */
4569
+ constructor({ deltas }: { deltas: LedgerStateDeltaForTransactionGroup[] }) {
4570
+ super();
4571
+ this.deltas = deltas;
4572
+
4573
+ this.attribute_map = {
4574
+ deltas: 'Deltas',
4575
+ };
4576
+ }
4577
+
4578
+ // eslint-disable-next-line camelcase
4579
+ static from_obj_for_encoding(
4580
+ data: Record<string, any>
4581
+ ): TransactionGroupLedgerStateDeltasForRoundResponse {
4582
+ /* eslint-disable dot-notation */
4583
+ if (!Array.isArray(data['Deltas']))
4584
+ throw new Error(
4585
+ `Response is missing required array field 'Deltas': ${data}`
4586
+ );
4587
+ return new TransactionGroupLedgerStateDeltasForRoundResponse({
4588
+ deltas: data['Deltas'].map(
4589
+ LedgerStateDeltaForTransactionGroup.from_obj_for_encoding
4590
+ ),
4591
+ });
4592
+ /* eslint-enable dot-notation */
4593
+ }
4594
+ }
4595
+
4069
4596
  /**
4070
4597
  * TransactionParams contains the parameters that help a client construct a new
4071
4598
  * transaction.